You can get familiar with the DSF code on GitHub. Branching follows the git-flow model, for the latest development version see branch developopen in new window. Additionally, you can find more information here in the documentation.
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 issuesopen in new window are for.
The GECKO Instituteopen in new window is a research institution of Heilbronn University of Applied Sciencesopen in new window 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.
The LIFE Instituteopen in new window of the University of Leipzig manages collaborative and follow-on projects in the fields of medicine, public health, medical informatics, and biobanking.
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).
HiGHmedopen in new window 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 Instituteopen in new window 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).
+
+
+
diff --git a/assets/404.html-CMAq4TQ3.js b/assets/404.html-CMAq4TQ3.js
new file mode 100644
index 000000000..fbe252f85
--- /dev/null
+++ b/assets/404.html-CMAq4TQ3.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as e,c as o,a as n}from"./app-kq9lCQfY.js";const a={},r=n("p",null,"404 Not Found",-1),s=[r];function c(l,_){return e(),o("div",null,s)}const m=t(a,[["render",c],["__file","404.html.vue"]]),p=JSON.parse('{"path":"/404.html","title":"","lang":"en-US","frontmatter":{"layout":"NotFound"},"headers":[],"git":{},"readingTime":{"minutes":0.01,"words":3},"filePathRelative":null,"excerpt":"
404 Not Found
\\n"}');export{m as comp,p as data};
diff --git a/assets/GMDS2022-dev.html-DlHHIr-I.js b/assets/GMDS2022-dev.html-DlHHIr-I.js
new file mode 100644
index 000000000..dbb137813
--- /dev/null
+++ b/assets/GMDS2022-dev.html-DlHHIr-I.js
@@ -0,0 +1 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as n,c as r,a as t,b as e,d as s,w as l}from"./app-kq9lCQfY.js";const c={},m=t("meta",{"http-equiv":"refresh",content:"0; URL=/oldstable/tutorial/"},null,-1);function d(h,u){const o=i("RouteLink");return n(),r("div",null,[t("p",null,[e("Redirect to "),s(o,{to:"/oldstable/tutorial/"},{default:l(()=>[e("this webpage")]),_:1}),e(".")]),m])}const f=a(c,[["render",d],["__file","GMDS2022-dev.html.vue"]]),b=JSON.parse('{"path":"/intro/tutorials/GMDS2022-dev.html","title":"GMDS2022 - Process Development","lang":"en-US","frontmatter":{"title":"GMDS2022 - Process Development","icon":"code"},"headers":[],"git":{"createdTime":1690461865000,"updatedTime":1699955216000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"intro/tutorials/GMDS2022-dev.md","localizedDate":"July 27, 2023","excerpt":"
\\n\\n"}');export{f as comp,b as data};
diff --git a/assets/MIE2023.html-MrPY5Efy.js b/assets/MIE2023.html-MrPY5Efy.js
new file mode 100644
index 000000000..0de228329
--- /dev/null
+++ b/assets/MIE2023.html-MrPY5Efy.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as n,c as o,a as e,b as t,d as i,e as l}from"./app-kq9lCQfY.js";const d="/photos/tutorials/dsf-architecture.svg",c={},h=e("h2",{id:"abstract",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#abstract"},[e("span",null,"Abstract")])],-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},p={href:"https://www.medizininformatik-initiative.de/en/start",target:"_blank",rel:"noopener noreferrer"},m=l('
The use of real-world data collected by healthcare providers for bio-medical research requires the data to be available and accessible. This is especially important when considering the usage of data across organizations. Distributed processes such as feasibility studies, record linkage, and data sharing need to be established for effective consolidation and analysis. While even multi-center retrospective studies using real-world data become commonplace, maintaining infrastructure components for every project conducted is not sustainable. To address this, the Data Sharing Framework (DSF) was developed as an open source, use case independent distributed business process engine to execute cross-organizational research and healthcare delivery processes.
The tutorial will cover the fundamental concepts of distributed processes and will provide an overview of the DSF's architecture and key standards such as HL7 FHIR and BPMN 2.0 that are used in the framework. The tutorial will present real-world examples to illustrate the DSFs capabilities and delve into specific issues the DSF addresses for the German Medical Informatics Initiative (MII).
Participants will have the opportunity to gain hands-on experience with the DSF by working with different processes in a lab setting. Technical aspects such as authentication and authorization, onboarding of new organizations and guidance on using the DSF for other use cases, such as specific research projects or new infrastructure developments, will be covered. Finally, the tutorial will present lessons learned from the last years of using the DSF in test and production environments in multiple research consortia and will present ideas for future improvements based on feedback from end-users, process developers, project managers and administrative staff.
Decision makers and project members with data sharing ideas looking for an architecture, as well as medical informatics professionals and software developers tasked with building multi-centric data sharing applications, are the target audience for this tutorial.
… gain knowledge on various distributed processes specific to bio-medical research.
… understand the unique challenges and considerations from the German MII resulting in the design and architecture of the DSF.
… be introduced to the key concepts of the DSF and the various contexts in which it can be applied.
… learn how to evaluate if the DSF is appropriate for their particular project or application your planning.
… understand the difficulties that can occur when implementing distributed processes, as well as strategies for addressing them.
',12);function f(g,w){const a=s("ExternalLinkIcon");return n(),o("div",null,[h,e("p",null,[t("With this tutorial, participants will gain a detailed insight into the Data Sharing Framework (DSF) ("),e("a",u,[t("https://github.com/highmed/highmed-dsf"),i(a)]),t("). The open source DSF enables users to execute biomedical research and healthcare delivery processes across organizations, and the tutorial will demonstrate this with examples from the German Medical Informatics Initiative (MII) ("),e("a",p,[t("https://www.medizininformatik-initiative.de/en/start"),i(a)]),t(") funded by the Federal Ministry of Education and Research (BMBF). The tutorial will cover fundamental concepts of distributed processes, the DSFs architecture and key standards such as HL7 FHIR and BPMN 2.0. Participants will have the opportunity to gain hands-on experience with the DSF by working with different processes in a lab setting. Technical aspects such as authentication and authorization will be covered, as well as guidance on using the DSF for other use cases. This tutorial is designed for those involved in distributed research projects, including project members and software developers, as well as individuals interested in multi-organizational research projects.")]),m])}const y=r(c,[["render",f],["__file","MIE2023.html.vue"]]),k=JSON.parse('{"path":"/intro/tutorials/MIE2023.html","title":"MIE May 2023","lang":"en-US","frontmatter":{"title":"MIE May 2023","icon":"info"},"headers":[{"level":2,"title":"Abstract","slug":"abstract","link":"#abstract","children":[]},{"level":2,"title":"Topic","slug":"topic","link":"#topic","children":[]},{"level":2,"title":"Target Group","slug":"target-group","link":"#target-group","children":[]},{"level":2,"title":"What you need","slug":"what-you-need","link":"#what-you-need","children":[]},{"level":2,"title":"What you will learn","slug":"what-you-will-learn","link":"#what-you-will-learn","children":[]}],"git":{"createdTime":1690461865000,"updatedTime":1690461865000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.95,"words":585},"filePathRelative":"intro/tutorials/MIE2023.md","localizedDate":"July 27, 2023","excerpt":"
Abstract
\\n
With this tutorial, participants will gain a detailed insight into the Data Sharing Framework (DSF) (https://github.com/highmed/highmed-dsf). The open source DSF enables users to execute biomedical research and healthcare delivery processes across organizations, and the tutorial will demonstrate this with examples from the German Medical Informatics Initiative (MII) (https://www.medizininformatik-initiative.de/en/start) funded by the Federal Ministry of Education and Research (BMBF). The tutorial will cover fundamental concepts of distributed processes, the DSFs architecture and key standards such as HL7 FHIR and BPMN 2.0. Participants will have the opportunity to gain hands-on experience with the DSF by working with different processes in a lab setting. Technical aspects such as authentication and authorization will be covered, as well as guidance on using the DSF for other use cases. This tutorial is designed for those involved in distributed research projects, including project members and software developers, as well as individuals interested in multi-organizational research projects.
"}');export{y as comp,k as data};
diff --git a/assets/SearchResult-CAA_SdMH.js b/assets/SearchResult-CAA_SdMH.js
new file mode 100644
index 000000000..4293e055f
--- /dev/null
+++ b/assets/SearchResult-CAA_SdMH.js
@@ -0,0 +1 @@
+import{u as G,f as Z,g as ee,h as _,i as te,j as ae,t as ie,k as le,l as P,m as D,n as ne,p as N,q as a,s as re,R as O,v as oe,x as se,y as me,z as j,A as B,B as ve,C as he,D as ue,E as ce,O as de,F as pe,G as fe,P as ge,H as be,I as ye,J as L}from"./app-kq9lCQfY.js";const xe=["/","/about/","/for-you/","/for-you/learn.html","/hackathon/","/intro/","/intro/publications.html","/oldstable/","/oldstable/introduction.html","/security/","/sprechstunde/","/stable/dsf-for-dev.html","/stable/","/stable/process-plugins-advanced.html","/v1.0.0/dsf-for-dev.html","/v1.0.0/","/v1.0.0/process-plugins-advanced.html","/v1.1.0/dsf-for-dev.html","/v1.1.0/","/v1.1.0/process-plugins-advanced.html","/v1.2.0/dsf-for-dev.html","/v1.2.0/","/v1.2.0/process-plugins-advanced.html","/v1.3.0/dsf-for-dev.html","/v1.3.0/","/v1.3.0/process-plugins-advanced.html","/v1.3.1/dsf-for-dev.html","/v1.3.1/","/v1.3.1/process-plugins-advanced.html","/v1.3.2/dsf-for-dev.html","/v1.3.2/","/v1.3.2/process-plugins-advanced.html","/v1.4.0/dsf-for-dev.html","/v1.4.0/","/v1.4.0/process-plugins-advanced.html","/v1.5.0/dsf-for-dev.html","/v1.5.0/","/v1.5.0/process-plugins-advanced.html","/v1.5.1/dsf-for-dev.html","/v1.5.1/","/v1.5.1/process-plugins-advanced.html","/v1.5.2/dsf-for-dev.html","/v1.5.2/","/v1.5.2/process-plugins-advanced.html","/about/learnmore/","/about/learnmore/contact.html","/about/learnmore/partners.html","/about/learnmore/public.html","/about/learnmore/team.html","/intro/info/allowList.html","/intro/info/architecture.html","/intro/info/basics.html","/intro/info/introduction.html","/intro/info/networkSetup.html","/intro/info/process-plugins.html","/intro/info/security.html","/intro/tutorials/GMDS2022-dev.html","/intro/tutorials/MIE2023.html","/intro/tutorials/","/intro/tutorials/Talks.html","/intro/use-cases/","/intro/use-cases/feasibility.html","/intro/use-cases/num.html","/oldstable/build/","/oldstable/build/build.html","/oldstable/build/proxyTestTool.html","/oldstable/build/releaseANewVersion.html","/oldstable/code/","/oldstable/code/addingANewFhirR.html","/oldstable/code/addingANewMpiClient.html","/oldstable/code/addingANewOpenEhrClient.html","/oldstable/code/changingBpmnProcesses.html","/oldstable/code/code.html","/oldstable/code/eclipseContent.html","/oldstable/code/intelliJContent.html","/oldstable/code/libraries.html","/oldstable/code/usingTheGitHubMaven.html","/oldstable/generalinformation/","/oldstable/generalinformation/authentication.html","/oldstable/generalinformation/networkSetup.html","/oldstable/releases/","/oldstable/releases/configBpe.html","/oldstable/releases/configFhir.html","/oldstable/releases/configFhirReverseProxy.html","/oldstable/releases/highmedInstall.html","/oldstable/releases/num-codexInstall.html","/oldstable/releases/upgradeFrom7.html","/oldstable/releases/upgradeFrom8.html","/oldstable/releases/upgradeFrom90.html","/oldstable/releases/upgradeFrom91.html","/oldstable/releases/upgradeFrom92.html","/oldstable/tutorial/","/oldstable/tutorial/ex11-docker-composeyml.html","/oldstable/tutorial/exercise1-simpleProcess.html","/oldstable/tutorial/exercise11-processDebugging.html","/oldstable/tutorial/exercise2-inputParameters.html","/oldstable/tutorial/exercise3-messageEvents.html","/oldstable/tutorial/exercise4-exclusiveGateways.html","/oldstable/tutorial/exercise5-eventBasedGateways.html","/oldstable/tutorial/prerequisites.html","/stable/contribute/code.html","/stable/contribute/documentation.html","/stable/contribute/","/stable/develop/","/stable/develop/create.html","/stable/develop/upgrade-from-0.html","/stable/maintain/","/stable/maintain/allowList-mgm.html","/stable/maintain/install-plugins.html","/stable/maintain/install.html","/stable/maintain/upgrade-from-0.html","/stable/maintain/upgrade-from-1.html","/v1.0.0/develop/","/v1.0.0/develop/create.html","/v1.0.0/develop/upgrade-from-0.html","/v1.0.0/maintain/","/v1.0.0/maintain/allowList-mgm.html","/v1.0.0/maintain/install.html","/v1.0.0/maintain/upgrade-from-0.html","/v1.1.0/develop/","/v1.1.0/develop/create.html","/v1.1.0/develop/upgrade-from-0.html","/v1.1.0/maintain/","/v1.1.0/maintain/allowList-mgm.html","/v1.1.0/maintain/install.html","/v1.1.0/maintain/upgrade-from-0.html","/v1.1.0/maintain/upgrade-from-1.html","/v1.2.0/develop/","/v1.2.0/develop/create.html","/v1.2.0/develop/upgrade-from-0.html","/v1.2.0/maintain/","/v1.2.0/maintain/allowList-mgm.html","/v1.2.0/maintain/install.html","/v1.2.0/maintain/upgrade-from-0.html","/v1.2.0/maintain/upgrade-from-1.html","/v1.3.0/develop/","/v1.3.0/develop/create.html","/v1.3.0/develop/upgrade-from-0.html","/v1.3.0/maintain/","/v1.3.0/maintain/allowList-mgm.html","/v1.3.0/maintain/install-plugins.html","/v1.3.0/maintain/install.html","/v1.3.0/maintain/upgrade-from-0.html","/v1.3.0/maintain/upgrade-from-1.html","/v1.3.1/develop/","/v1.3.1/develop/create.html","/v1.3.1/develop/upgrade-from-0.html","/v1.3.1/maintain/","/v1.3.1/maintain/allowList-mgm.html","/v1.3.1/maintain/install-plugins.html","/v1.3.1/maintain/install.html","/v1.3.1/maintain/upgrade-from-0.html","/v1.3.1/maintain/upgrade-from-1.html","/v1.3.2/develop/","/v1.3.2/develop/create.html","/v1.3.2/develop/upgrade-from-0.html","/v1.3.2/maintain/","/v1.3.2/maintain/allowList-mgm.html","/v1.3.2/maintain/install-plugins.html","/v1.3.2/maintain/install.html","/v1.3.2/maintain/upgrade-from-0.html","/v1.3.2/maintain/upgrade-from-1.html","/v1.4.0/contribute/code.html","/v1.4.0/contribute/documentation.html","/v1.4.0/contribute/","/v1.4.0/develop/","/v1.4.0/develop/create.html","/v1.4.0/develop/upgrade-from-0.html","/v1.4.0/maintain/","/v1.4.0/maintain/allowList-mgm.html","/v1.4.0/maintain/install-plugins.html","/v1.4.0/maintain/install.html","/v1.4.0/maintain/upgrade-from-0.html","/v1.4.0/maintain/upgrade-from-1.html","/v1.5.0/contribute/code.html","/v1.5.0/contribute/documentation.html","/v1.5.0/contribute/","/v1.5.0/develop/","/v1.5.0/develop/create.html","/v1.5.0/develop/upgrade-from-0.html","/v1.5.0/maintain/","/v1.5.0/maintain/allowList-mgm.html","/v1.5.0/maintain/install-plugins.html","/v1.5.0/maintain/install.html","/v1.5.0/maintain/upgrade-from-0.html","/v1.5.0/maintain/upgrade-from-1.html","/v1.5.1/contribute/code.html","/v1.5.1/contribute/documentation.html","/v1.5.1/contribute/","/v1.5.1/develop/","/v1.5.1/develop/create.html","/v1.5.1/develop/upgrade-from-0.html","/v1.5.1/maintain/","/v1.5.1/maintain/allowList-mgm.html","/v1.5.1/maintain/install-plugins.html","/v1.5.1/maintain/install.html","/v1.5.1/maintain/upgrade-from-0.html","/v1.5.1/maintain/upgrade-from-1.html","/v1.5.2/contribute/code.html","/v1.5.2/contribute/documentation.html","/v1.5.2/contribute/","/v1.5.2/develop/","/v1.5.2/develop/create.html","/v1.5.2/develop/upgrade-from-0.html","/v1.5.2/maintain/","/v1.5.2/maintain/allowList-mgm.html","/v1.5.2/maintain/install-plugins.html","/v1.5.2/maintain/install.html","/v1.5.2/maintain/upgrade-from-0.html","/v1.5.2/maintain/upgrade-from-1.html","/stable/maintain/bpe/","/stable/maintain/bpe/access-control.html","/stable/maintain/bpe/configuration.html","/stable/maintain/bpe/oidc.html","/stable/maintain/bpe-reverse-proxy/","/stable/maintain/bpe-reverse-proxy/configuration.html","/stable/maintain/fhir/","/stable/maintain/fhir/access-control.html","/stable/maintain/fhir/configuration.html","/stable/maintain/fhir/oidc.html","/stable/maintain/fhir-reverse-proxy/","/stable/maintain/fhir-reverse-proxy/configuration.html","/v1.0.0/maintain/configuration/","/v1.0.0/maintain/configuration/bpe.html","/v1.0.0/maintain/configuration/common.html","/v1.0.0/maintain/configuration/fhir.html","/v1.0.0/maintain/configuration/reverseproxy.html","/v1.1.0/maintain/bpe/","/v1.1.0/maintain/bpe/configuration.html","/v1.1.0/maintain/fhir/","/v1.1.0/maintain/fhir/access-control.html","/v1.1.0/maintain/fhir/configuration.html","/v1.1.0/maintain/fhir/oidc.html","/v1.1.0/maintain/fhir-reverse-proxy/","/v1.1.0/maintain/fhir-reverse-proxy/configuration.html","/v1.2.0/maintain/bpe/","/v1.2.0/maintain/bpe/configuration.html","/v1.2.0/maintain/fhir/","/v1.2.0/maintain/fhir/access-control.html","/v1.2.0/maintain/fhir/configuration.html","/v1.2.0/maintain/fhir/oidc.html","/v1.2.0/maintain/fhir-reverse-proxy/","/v1.2.0/maintain/fhir-reverse-proxy/configuration.html","/v1.3.0/maintain/bpe/","/v1.3.0/maintain/bpe/configuration.html","/v1.3.0/maintain/fhir/","/v1.3.0/maintain/fhir/access-control.html","/v1.3.0/maintain/fhir/configuration.html","/v1.3.0/maintain/fhir/oidc.html","/v1.3.0/maintain/fhir-reverse-proxy/","/v1.3.0/maintain/fhir-reverse-proxy/configuration.html","/v1.3.1/maintain/bpe/","/v1.3.1/maintain/bpe/configuration.html","/v1.3.1/maintain/fhir/","/v1.3.1/maintain/fhir/access-control.html","/v1.3.1/maintain/fhir/configuration.html","/v1.3.1/maintain/fhir/oidc.html","/v1.3.1/maintain/fhir-reverse-proxy/","/v1.3.1/maintain/fhir-reverse-proxy/configuration.html","/v1.3.2/maintain/bpe/","/v1.3.2/maintain/bpe/configuration.html","/v1.3.2/maintain/fhir/","/v1.3.2/maintain/fhir/access-control.html","/v1.3.2/maintain/fhir/configuration.html","/v1.3.2/maintain/fhir/oidc.html","/v1.3.2/maintain/fhir-reverse-proxy/","/v1.3.2/maintain/fhir-reverse-proxy/configuration.html","/v1.4.0/maintain/bpe/","/v1.4.0/maintain/bpe/configuration.html","/v1.4.0/maintain/fhir/","/v1.4.0/maintain/fhir/access-control.html","/v1.4.0/maintain/fhir/configuration.html","/v1.4.0/maintain/fhir/oidc.html","/v1.4.0/maintain/fhir-reverse-proxy/","/v1.4.0/maintain/fhir-reverse-proxy/configuration.html","/v1.5.0/maintain/bpe/","/v1.5.0/maintain/bpe/access-control.html","/v1.5.0/maintain/bpe/configuration.html","/v1.5.0/maintain/bpe/oidc.html","/v1.5.0/maintain/bpe-reverse-proxy/","/v1.5.0/maintain/bpe-reverse-proxy/configuration.html","/v1.5.0/maintain/fhir/","/v1.5.0/maintain/fhir/access-control.html","/v1.5.0/maintain/fhir/configuration.html","/v1.5.0/maintain/fhir/oidc.html","/v1.5.0/maintain/fhir-reverse-proxy/","/v1.5.0/maintain/fhir-reverse-proxy/configuration.html","/v1.5.1/maintain/bpe/","/v1.5.1/maintain/bpe/access-control.html","/v1.5.1/maintain/bpe/configuration.html","/v1.5.1/maintain/bpe/oidc.html","/v1.5.1/maintain/bpe-reverse-proxy/","/v1.5.1/maintain/bpe-reverse-proxy/configuration.html","/v1.5.1/maintain/fhir/","/v1.5.1/maintain/fhir/access-control.html","/v1.5.1/maintain/fhir/configuration.html","/v1.5.1/maintain/fhir/oidc.html","/v1.5.1/maintain/fhir-reverse-proxy/","/v1.5.1/maintain/fhir-reverse-proxy/configuration.html","/v1.5.2/maintain/bpe/","/v1.5.2/maintain/bpe/access-control.html","/v1.5.2/maintain/bpe/configuration.html","/v1.5.2/maintain/bpe/oidc.html","/v1.5.2/maintain/bpe-reverse-proxy/","/v1.5.2/maintain/bpe-reverse-proxy/configuration.html","/v1.5.2/maintain/fhir/","/v1.5.2/maintain/fhir/access-control.html","/v1.5.2/maintain/fhir/configuration.html","/v1.5.2/maintain/fhir/oidc.html","/v1.5.2/maintain/fhir-reverse-proxy/","/v1.5.2/maintain/fhir-reverse-proxy/configuration.html","/404.html","/intro/info/"],we="SEARCH_PRO_QUERY_HISTORY",d=G(we,[]),He=()=>{const{queryHistoryCount:i}=L,l=i>0;return{enabled:l,queryHistory:d,addQueryHistory:n=>{l&&(d.value.length{d.value=[...d.value.slice(0,n),...d.value.slice(n+1)]}}},T=i=>xe[i.id]+("anchor"in i?`#${i.anchor}`:""),Re="SEARCH_PRO_RESULT_HISTORY",{resultHistoryCount:E}=L,p=G(Re,[]),ke=()=>{const i=E>0;return{enabled:i,resultHistory:p,addResultHistory:l=>{if(i){const n={link:T(l),display:l.display};"header"in l&&(n.header=l.header),p.value.length{p.value=[...p.value.slice(0,l),...p.value.slice(l+1)]}}},Le=i=>{const l=ve(),n=_(),Q=he(),o=P(!1),b=ue([]);return ce(()=>{const{search:w,terminate:f}=de(),H=()=>{b.value=[],o.value=!1},y=ye(v=>{const x=v.join(" "),{searchFilter:C=c=>c,splitWord:S,suggestionsFilter:I,...g}=l.value;o.value=!0,x?w(v.join(" "),n.value,g).then(c=>C(c,x,n.value,Q.value)).then(c=>{b.value=c,o.value=!1}).catch(c=>{console.error(c),H()}):H()},L.searchDelay-L.suggestDelay);N([i,n],([v])=>y(v),{immediate:!0}),pe(()=>{f()})}),{searching:o,results:b}};var Ce=Z({name:"SearchResult",props:{queries:{type:Array,required:!0},isFocusing:Boolean},emits:["close","updateQuery"],setup(i,{emit:l}){const n=ee(),Q=_(),o=te(ae),{enabled:b,addQueryHistory:w,queryHistory:f,removeQueryHistory:H}=He(),{enabled:y,resultHistory:v,addResultHistory:x,removeResultHistory:C}=ke(),S=b||y,I=ie(i,"queries"),{results:g,searching:c}=Le(I),r=le({isQuery:!0,index:0}),h=P(0),u=P(0),$=D(()=>S&&(f.value.length>0||v.value.length>0)),q=D(()=>g.value.length>0),F=D(()=>g.value[h.value]||null),U=()=>{const{isQuery:e,index:t}=r;t===0?(r.isQuery=!e,r.index=e?v.value.length-1:f.value.length-1):r.index=t-1},J=()=>{const{isQuery:e,index:t}=r;t===(e?f.value.length-1:v.value.length-1)?(r.isQuery=!e,r.index=0):r.index=t+1},V=()=>{h.value=h.value>0?h.value-1:g.value.length-1,u.value=F.value.contents.length-1},Y=()=>{h.value=h.value{u.value{u.value>0?u.value-=1:V()},A=e=>e.map(t=>fe(t)?t:a(t[0],t[1])),W=e=>{if(e.type==="customField"){const t=ge[e.index]||"$content",[s,k=""]=be(t)?t[Q.value].split("$content"):t.split("$content");return e.display.map(m=>a("div",A([s,...m,k])))}return e.display.map(t=>a("div",A(t)))},R=()=>{h.value=0,u.value=0,l("updateQuery",""),l("close")};return ne("keydown",e=>{if(i.isFocusing){if(q.value){if(e.key==="ArrowUp")K();else if(e.key==="ArrowDown")z();else if(e.key==="Enter"){const t=F.value.contents[u.value];w(i.queries.join(" ")),x(t),n.push(T(t)),R()}}else if(y){if(e.key==="ArrowUp")U();else if(e.key==="ArrowDown")J();else if(e.key==="Enter"){const{index:t}=r;r.isQuery?(l("updateQuery",f.value[t]),e.preventDefault()):(n.push(v.value[t].link),R())}}}}),N([h,u],()=>{var e;(e=document.querySelector(".search-pro-result-list-item.active .search-pro-result-item.active"))==null||e.scrollIntoView(!1)},{flush:"post"}),()=>a("div",{class:["search-pro-result-wrapper",{empty:i.queries.length?!q.value:!$.value}],id:"search-pro-results"},i.queries.length?c.value?a(re,{hint:o.value.searching}):q.value?a("ul",{class:"search-pro-result-list"},g.value.map(({title:e,contents:t},s)=>{const k=h.value===s;return a("li",{class:["search-pro-result-list-item",{active:k}]},[a("div",{class:"search-pro-result-title"},e||o.value.defaultTitle),t.map((m,X)=>{const M=k&&u.value===X;return a(O,{to:T(m),class:["search-pro-result-item",{active:M,"aria-selected":M}],onClick:()=>{w(i.queries.join(" ")),x(m),R()}},()=>[m.type==="text"?null:a(m.type==="title"?oe:m.type==="heading"?se:me,{class:"search-pro-result-type"}),a("div",{class:"search-pro-result-content"},[m.type==="text"&&m.header?a("div",{class:"content-header"},m.header):null,a("div",W(m))])])})])})):o.value.emptyResult:S?$.value?[b?a("ul",{class:"search-pro-result-list"},a("li",{class:"search-pro-result-list-item"},[a("div",{class:"search-pro-result-title"},o.value.queryHistory),f.value.map((e,t)=>a("div",{class:["search-pro-result-item",{active:r.isQuery&&r.index===t}],onClick:()=>{l("updateQuery",e)}},[a(j,{class:"search-pro-result-type"}),a("div",{class:"search-pro-result-content"},e),a("button",{class:"search-pro-remove-icon",innerHTML:B,onClick:s=>{s.preventDefault(),s.stopPropagation(),H(t)}})]))])):null,y?a("ul",{class:"search-pro-result-list"},a("li",{class:"search-pro-result-list-item"},[a("div",{class:"search-pro-result-title"},o.value.resultHistory),v.value.map((e,t)=>a(O,{to:e.link,class:["search-pro-result-item",{active:!r.isQuery&&r.index===t}],onClick:()=>{R()}},()=>[a(j,{class:"search-pro-result-type"}),a("div",{class:"search-pro-result-content"},[e.header?a("div",{class:"content-header"},e.header):null,a("div",e.display.map(s=>A(s)).flat())]),a("button",{class:"search-pro-remove-icon",innerHTML:B,onClick:s=>{s.preventDefault(),s.stopPropagation(),C(t)}})]))])):null]:o.value.emptyHistory:o.value.emptyResult)}});export{Ce as default};
diff --git a/assets/Talks.html-35con64A.js b/assets/Talks.html-35con64A.js
new file mode 100644
index 000000000..2ea04b177
--- /dev/null
+++ b/assets/Talks.html-35con64A.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as i,c as s,a as t,b as e,d as n,w as r}from"./app-kq9lCQfY.js";const d={},c=t("meta",{"http-equiv":"refresh",content:"0; URL=/oldstable/guideline/publications.html#recorded-talks"},null,-1);function m(u,p){const a=l("RouteLink");return i(),s("div",null,[t("p",null,[e("Redirect to "),n(a,{to:"/oldstable/guideline/publications.html#recorded-talks"},{default:r(()=>[e("this webpage")]),_:1}),e(".")]),c])}const b=o(d,[["render",m],["__file","Talks.html.vue"]]),k=JSON.parse('{"path":"/intro/tutorials/Talks.html","title":"Recorded talks","lang":"en-US","frontmatter":{"title":"Recorded talks","icon":"globe"},"headers":[],"git":{"createdTime":1690461865000,"updatedTime":1690461865000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.08,"words":23},"filePathRelative":"intro/tutorials/Talks.md","localizedDate":"July 27, 2023","excerpt":"
\\n\\n"}');export{b as comp,k as data};
diff --git a/assets/access-control.html-B8WDW2yd.js b/assets/access-control.html-B8WDW2yd.js
new file mode 100644
index 000000000..df650df20
--- /dev/null
+++ b/assets/access-control.html-B8WDW2yd.js
@@ -0,0 +1,46 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c,a,b as e,d as s,e as i}from"./app-kq9lCQfY.js";const l={},d=a("h2",{id:"overview",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#overview"},[a("span",null,"Overview")])],-1),p={href:"http://hl7.org/fhir/R4/http.html",target:"_blank",rel:"noopener noreferrer"},h=a("a",{href:"configuration#dev-dsf-fhir-server-organization-thumbprint"},"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT",-1),u=i(`
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF FHIR server OpenID Connect configuration page.
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. 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:
The list of user roles above contains a single entry example_read_only_role, matching the user via a client certificate SHA-512 thumprint and assigning three DSF roles.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
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:
`,9);function y(T,F){const n=r("ExternalLinkIcon");return o(),c("div",null,[d,a("p",null,[e("The DSF FHIR server implements a subset of the FHIR R4 "),a("a",p,[e("REST API"),s(n)]),e(". 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: "),h]),u,a("p",null,[e("Using the property "),m,e(" 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 "),f,e(),a("a",v,[e("claim"),s(n)]),e(" from the access token will be matched against the property values.")]),b,a("p",null,[e("In order to allow users to start processes, the property "),g,e(" can be used to assign codes from FHIR "),a("a",_,[e("CodeSystem"),s(n)]),e(" resources. Codes are specified in the form "),E,e("."),R,e(" If the uses has a code specified here that match with a "),S,e(" extension within the process plugin's "),a("a",k,[e("ActivityDefinition"),s(n)]),e(" resource, the user can start the process if he also has the "),D,e(),I,e(".")]),A])}const w=t(l,[["render",y],["__file","access-control.html.vue"]]),x=JSON.parse('{"path":"/v1.3.1/maintain/fhir/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1698748420000,"updatedTime":1698748420000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.47,"words":742},"filePathRelative":"v1.3.1/maintain/fhir/access-control.md","localizedDate":"October 31, 2023","excerpt":"
Overview
\\n
The DSF FHIR server implements a subset of the FHIR R4 REST API. 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
"}');export{w as comp,x as data};
diff --git a/assets/access-control.html-B_zcP1LF.js b/assets/access-control.html-B_zcP1LF.js
new file mode 100644
index 000000000..f34092a0f
--- /dev/null
+++ b/assets/access-control.html-B_zcP1LF.js
@@ -0,0 +1,46 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c,a,b as e,d as s,e as i}from"./app-kq9lCQfY.js";const l={},d=a("h2",{id:"overview",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#overview"},[a("span",null,"Overview")])],-1),p={href:"http://hl7.org/fhir/R4/http.html",target:"_blank",rel:"noopener noreferrer"},h=a("a",{href:"configuration#dev-dsf-fhir-server-organization-thumbprint"},"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT",-1),u=i(`
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF FHIR server OpenID Connect configuration page.
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. 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:
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.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
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:
`,9);function A(T,F){const n=r("ExternalLinkIcon");return o(),c("div",null,[d,a("p",null,[e("The DSF FHIR server implements a subset of the FHIR R4 "),a("a",p,[e("REST API"),s(n)]),e(". 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: "),h]),u,a("p",null,[e("Using the property "),m,e(" 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 "),f,e(),a("a",v,[e("claim"),s(n)]),e(" from the access token will be matched against the property values.")]),b,a("p",null,[e("In order to allow users to start processes, the property "),g,e(" can be used to assign codes from FHIR "),a("a",_,[e("CodeSystem"),s(n)]),e(" resources. Codes are specified in the form "),E,e("."),R,e(" If the uses has a code specified here that match with a "),S,e(" extension within the process plugin's "),a("a",k,[e("ActivityDefinition"),s(n)]),e(" resource, the user can start the process if he also has the "),D,e(),I,e(".")]),y])}const w=t(l,[["render",A],["__file","access-control.html.vue"]]),x=JSON.parse('{"path":"/stable/maintain/fhir/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":null,"updatedTime":null,"contributors":[]},"readingTime":{"minutes":2.52,"words":755},"filePathRelative":"stable/maintain/fhir/access-control.md","excerpt":"
Overview
\\n
The DSF FHIR server implements a subset of the FHIR R4 REST API. 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
"}');export{w as comp,x as data};
diff --git a/assets/access-control.html-CG007Yhx.js b/assets/access-control.html-CG007Yhx.js
new file mode 100644
index 000000000..9fa9c1d9e
--- /dev/null
+++ b/assets/access-control.html-CG007Yhx.js
@@ -0,0 +1,46 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c,a,b as e,d as s,e as i}from"./app-kq9lCQfY.js";const l={},d=a("h2",{id:"overview",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#overview"},[a("span",null,"Overview")])],-1),p={href:"http://hl7.org/fhir/R4/http.html",target:"_blank",rel:"noopener noreferrer"},h=a("a",{href:"configuration#dev-dsf-fhir-server-organization-thumbprint"},"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT",-1),u=i(`
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF FHIR server OpenID Connect configuration page.
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. 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:
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.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
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:
`,9);function y(T,F){const n=r("ExternalLinkIcon");return o(),c("div",null,[d,a("p",null,[e("The DSF FHIR server implements a subset of the FHIR R4 "),a("a",p,[e("REST API"),s(n)]),e(". 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: "),h]),u,a("p",null,[e("Using the property "),m,e(" 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 "),f,e(),a("a",v,[e("claim"),s(n)]),e(" from the access token will be matched against the property values.")]),b,a("p",null,[e("In order to allow users to start processes, the property "),g,e(" can be used to assign codes from FHIR "),a("a",_,[e("CodeSystem"),s(n)]),e(" resources. Codes are specified in the form "),E,e("."),R,e(" If the uses has a code specified here that match with a "),S,e(" extension within the process plugin's "),a("a",k,[e("ActivityDefinition"),s(n)]),e(" resource, the user can start the process if he also has the "),D,e(),I,e(".")]),A])}const O=t(l,[["render",y],["__file","access-control.html.vue"]]),x=JSON.parse('{"path":"/v1.5.1/maintain/fhir/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.52,"words":755},"filePathRelative":"v1.5.1/maintain/fhir/access-control.md","localizedDate":"April 17, 2024","excerpt":"
Overview
\\n
The DSF FHIR server implements a subset of the FHIR R4 REST API. 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
"}');export{O as comp,x as data};
diff --git a/assets/access-control.html-CM5qpa53.js b/assets/access-control.html-CM5qpa53.js
new file mode 100644
index 000000000..be21fac51
--- /dev/null
+++ b/assets/access-control.html-CM5qpa53.js
@@ -0,0 +1,46 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c,a,b as e,d as s,e as i}from"./app-kq9lCQfY.js";const l={},d=a("h2",{id:"overview",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#overview"},[a("span",null,"Overview")])],-1),p={href:"http://hl7.org/fhir/R4/http.html",target:"_blank",rel:"noopener noreferrer"},h=a("a",{href:"configuration#dev-dsf-fhir-server-organization-thumbprint"},"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT",-1),u=i(`
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF FHIR server OpenID Connect configuration page.
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. 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:
The list of user roles above contains a single entry example_read_only_role, matching the user via a client certificate SHA-512 thumprint and assigning three DSF roles.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
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:
`,9);function y(T,F){const n=r("ExternalLinkIcon");return o(),c("div",null,[d,a("p",null,[e("The DSF FHIR server implements a subset of the FHIR R4 "),a("a",p,[e("REST API"),s(n)]),e(". 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: "),h]),u,a("p",null,[e("Using the property "),m,e(" 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 "),f,e(),a("a",v,[e("claim"),s(n)]),e(" from the access token will be matched against the property values.")]),b,a("p",null,[e("In order to allow users to start processes, the property "),g,e(" can be used to assign codes from FHIR "),a("a",_,[e("CodeSystem"),s(n)]),e(" resources. Codes are specified in the form "),E,e("."),R,e(" If the uses has a code specified here that match with a "),S,e(" extension within the process plugin's "),a("a",k,[e("ActivityDefinition"),s(n)]),e(" resource, the user can start the process if he also has the "),D,e(),I,e(".")]),A])}const w=t(l,[["render",y],["__file","access-control.html.vue"]]),x=JSON.parse('{"path":"/v1.3.0/maintain/fhir/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1696944513000,"updatedTime":1696944513000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.47,"words":742},"filePathRelative":"v1.3.0/maintain/fhir/access-control.md","localizedDate":"October 10, 2023","excerpt":"
Overview
\\n
The DSF FHIR server implements a subset of the FHIR R4 REST API. 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
"}');export{w as comp,x as data};
diff --git a/assets/access-control.html-Ci80SYtc.js b/assets/access-control.html-Ci80SYtc.js
new file mode 100644
index 000000000..3de58b2d1
--- /dev/null
+++ b/assets/access-control.html-Ci80SYtc.js
@@ -0,0 +1,46 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c,a,b as e,d as s,e as i}from"./app-kq9lCQfY.js";const l={},d=a("h2",{id:"overview",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#overview"},[a("span",null,"Overview")])],-1),p={href:"http://hl7.org/fhir/R4/http.html",target:"_blank",rel:"noopener noreferrer"},h=a("a",{href:"configuration#dev-dsf-fhir-server-organization-thumbprint"},"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT",-1),u=i(`
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF FHIR server OpenID Connect configuration page.
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. 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:
The list of user roles above contains a single entry example_read_only_role, matching the user via a client certificate SHA-512 thumprint and assigning three DSF roles.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
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:
`,9);function y(T,F){const n=r("ExternalLinkIcon");return o(),c("div",null,[d,a("p",null,[e("The DSF FHIR server implements a subset of the FHIR R4 "),a("a",p,[e("REST API"),s(n)]),e(". 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: "),h]),u,a("p",null,[e("Using the property "),m,e(" 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 "),f,e(),a("a",v,[e("claim"),s(n)]),e(" from the access token will be matched against the property values.")]),b,a("p",null,[e("In order to allow users to start processes, the property "),g,e(" can be used to assign codes from FHIR "),a("a",_,[e("CodeSystem"),s(n)]),e(" resources. Codes are specified in the form "),E,e("."),R,e(" If the uses has a code specified here that match with a "),S,e(" extension within the process plugin's "),a("a",k,[e("ActivityDefinition"),s(n)]),e(" resource, the user can start the process if he also has the "),D,e(),I,e(".")]),A])}const O=t(l,[["render",y],["__file","access-control.html.vue"]]),x=JSON.parse('{"path":"/v1.3.2/maintain/fhir/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.47,"words":742},"filePathRelative":"v1.3.2/maintain/fhir/access-control.md","localizedDate":"December 4, 2023","excerpt":"
Overview
\\n
The DSF FHIR server implements a subset of the FHIR R4 REST API. 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
"}');export{O as comp,x as data};
diff --git a/assets/access-control.html-CpcmB-vr.js b/assets/access-control.html-CpcmB-vr.js
new file mode 100644
index 000000000..386a57feb
--- /dev/null
+++ b/assets/access-control.html-CpcmB-vr.js
@@ -0,0 +1,26 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as t,o as r,c,a,b as e,d as o,e as n}from"./app-kq9lCQfY.js";const l={},d=n(`
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.
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF BPE server OpenID Connect configuration page.
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. 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:
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.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
`,16);function f(v,b){const s=t("ExternalLinkIcon");return r(),c("div",null,[d,a("p",null,[e("Using the property "),p,e(" 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 "),h,e(),a("a",u,[e("claim"),o(s)]),e(" from the access token will be matched against the property values.")]),m])}const k=i(l,[["render",f],["__file","access-control.html.vue"]]),E=JSON.parse('{"path":"/v1.5.1/maintain/bpe/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.94,"words":583},"filePathRelative":"v1.5.1/maintain/bpe/access-control.md","localizedDate":"April 17, 2024","excerpt":"
Overview
\\n
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.
\\n
\\n
OpenID Connect
\\n
To enable OpenID Connect authentication of local user, see the DSF BPE server OpenID Connect configuration page.
\\n
"}');export{k as comp,E as data};
diff --git a/assets/access-control.html-D-piCDJX.js b/assets/access-control.html-D-piCDJX.js
new file mode 100644
index 000000000..c987d43ca
--- /dev/null
+++ b/assets/access-control.html-D-piCDJX.js
@@ -0,0 +1,46 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c,a,b as e,d as s,e as i}from"./app-kq9lCQfY.js";const l={},d=a("h2",{id:"overview",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#overview"},[a("span",null,"Overview")])],-1),p={href:"http://hl7.org/fhir/R4/http.html",target:"_blank",rel:"noopener noreferrer"},h=a("a",{href:"configuration#dev-dsf-fhir-server-organization-thumbprint"},"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT",-1),u=i(`
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF FHIR server OpenID Connect configuration page.
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. 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:
The list of user roles above contains a single entry example_read_only_role, matching the user via a client certificate SHA-512 thumprint and assigning three DSF roles.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
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:
`,9);function y(T,F){const n=r("ExternalLinkIcon");return o(),c("div",null,[d,a("p",null,[e("The DSF FHIR server implements a subset of the FHIR R4 "),a("a",p,[e("REST API"),s(n)]),e(". 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: "),h]),u,a("p",null,[e("Using the property "),m,e(" 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 "),f,e(),a("a",v,[e("claim"),s(n)]),e(" from the access token will be matched against the property values.")]),b,a("p",null,[e("In order to allow users to start processes, the property "),g,e(" can be used to assign codes from FHIR "),a("a",_,[e("CodeSystem"),s(n)]),e(" resources. Codes are specified in the form "),E,e("."),R,e(" If the uses has a code specified here that match with a "),S,e(" extension within the process plugin's "),a("a",k,[e("ActivityDefinition"),s(n)]),e(" resource, the user can start the process if he also has the "),D,e(),I,e(".")]),A])}const O=t(l,[["render",y],["__file","access-control.html.vue"]]),x=JSON.parse('{"path":"/v1.2.0/maintain/fhir/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1694544770000,"updatedTime":1694544770000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.47,"words":742},"filePathRelative":"v1.2.0/maintain/fhir/access-control.md","localizedDate":"September 12, 2023","excerpt":"
Overview
\\n
The DSF FHIR server implements a subset of the FHIR R4 REST API. 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
"}');export{O as comp,x as data};
diff --git a/assets/access-control.html-DMHcMgwJ.js b/assets/access-control.html-DMHcMgwJ.js
new file mode 100644
index 000000000..34274a5a8
--- /dev/null
+++ b/assets/access-control.html-DMHcMgwJ.js
@@ -0,0 +1,26 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as t,o as r,c,a,b as e,d as o,e as n}from"./app-kq9lCQfY.js";const l={},d=n(`
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.
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF BPE server OpenID Connect configuration page.
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. 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:
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.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
`,16);function f(v,b){const s=t("ExternalLinkIcon");return r(),c("div",null,[d,a("p",null,[e("Using the property "),p,e(" 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 "),h,e(),a("a",u,[e("claim"),o(s)]),e(" from the access token will be matched against the property values.")]),m])}const k=i(l,[["render",f],["__file","access-control.html.vue"]]),y=JSON.parse('{"path":"/v1.5.2/maintain/bpe/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.94,"words":583},"filePathRelative":"v1.5.2/maintain/bpe/access-control.md","localizedDate":"July 8, 2024","excerpt":"
Overview
\\n
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.
\\n
\\n
OpenID Connect
\\n
To enable OpenID Connect authentication of local user, see the DSF BPE server OpenID Connect configuration page.
\\n
"}');export{k as comp,y as data};
diff --git a/assets/access-control.html-DMJizDq8.js b/assets/access-control.html-DMJizDq8.js
new file mode 100644
index 000000000..5205c1496
--- /dev/null
+++ b/assets/access-control.html-DMJizDq8.js
@@ -0,0 +1,26 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as t,o as r,c,a,b as e,d as o,e as n}from"./app-kq9lCQfY.js";const l={},d=n(`
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.
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF BPE server OpenID Connect configuration page.
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. 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:
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.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
`,16);function f(v,b){const s=t("ExternalLinkIcon");return r(),c("div",null,[d,a("p",null,[e("Using the property "),p,e(" 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 "),h,e(),a("a",u,[e("claim"),o(s)]),e(" from the access token will be matched against the property values.")]),m])}const k=i(l,[["render",f],["__file","access-control.html.vue"]]),y=JSON.parse('{"path":"/v1.5.0/maintain/bpe/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1708517817000,"updatedTime":1708517817000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.94,"words":583},"filePathRelative":"v1.5.0/maintain/bpe/access-control.md","localizedDate":"February 21, 2024","excerpt":"
Overview
\\n
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.
\\n
\\n
OpenID Connect
\\n
To enable OpenID Connect authentication of local user, see the DSF BPE server OpenID Connect configuration page.
\\n
"}');export{k as comp,y as data};
diff --git a/assets/access-control.html-DyFJhXMW.js b/assets/access-control.html-DyFJhXMW.js
new file mode 100644
index 000000000..dc84a55d9
--- /dev/null
+++ b/assets/access-control.html-DyFJhXMW.js
@@ -0,0 +1,46 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c,a,b as e,d as s,e as i}from"./app-kq9lCQfY.js";const l={},d=a("h2",{id:"overview",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#overview"},[a("span",null,"Overview")])],-1),h={href:"http://hl7.org/fhir/R4/http.html",target:"_blank",rel:"noopener noreferrer"},p=a("a",{href:"configuration#dev-dsf-fhir-server-organization-thumbprint"},"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT",-1),u=i(`
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF FHIR server OpenID Connect configuration page.
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. 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:
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.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
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:
`,9);function A(T,F){const n=r("ExternalLinkIcon");return o(),c("div",null,[d,a("p",null,[e("The DSF FHIR server implements a subset of the FHIR R4 "),a("a",h,[e("REST API"),s(n)]),e(". 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: "),p]),u,a("p",null,[e("Using the property "),m,e(" 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 "),f,e(),a("a",v,[e("claim"),s(n)]),e(" from the access token will be matched against the property values.")]),b,a("p",null,[e("In order to allow users to start processes, the property "),g,e(" can be used to assign codes from FHIR "),a("a",_,[e("CodeSystem"),s(n)]),e(" resources. Codes are specified in the form "),E,e("."),R,e(" If the uses has a code specified here that match with a "),S,e(" extension within the process plugin's "),a("a",k,[e("ActivityDefinition"),s(n)]),e(" resource, the user can start the process if he also has the "),D,e(),I,e(".")]),y])}const O=t(l,[["render",A],["__file","access-control.html.vue"]]),x=JSON.parse('{"path":"/v1.5.0/maintain/fhir/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1708419681000,"updatedTime":1708517817000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.52,"words":755},"filePathRelative":"v1.5.0/maintain/fhir/access-control.md","localizedDate":"February 20, 2024","excerpt":"
Overview
\\n
The DSF FHIR server implements a subset of the FHIR R4 REST API. 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
"}');export{O as comp,x as data};
diff --git a/assets/access-control.html-Dzq0BBpF.js b/assets/access-control.html-Dzq0BBpF.js
new file mode 100644
index 000000000..7d6d0474b
--- /dev/null
+++ b/assets/access-control.html-Dzq0BBpF.js
@@ -0,0 +1,46 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c,a,b as e,d as s,e as i}from"./app-kq9lCQfY.js";const l={},d=a("h2",{id:"overview",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#overview"},[a("span",null,"Overview")])],-1),p={href:"http://hl7.org/fhir/R4/http.html",target:"_blank",rel:"noopener noreferrer"},h=a("a",{href:"configuration#dev-dsf-fhir-server-organization-thumbprint"},"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT",-1),u=i(`
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF FHIR server OpenID Connect configuration page.
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. 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:
The list of user roles above contains a single entry example_read_only_role, matching the user via a client certificate SHA-512 thumprint and assigning three DSF roles.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
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:
`,9);function y(T,F){const n=r("ExternalLinkIcon");return o(),c("div",null,[d,a("p",null,[e("The DSF FHIR server implements a subset of the FHIR R4 "),a("a",p,[e("REST API"),s(n)]),e(". 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: "),h]),u,a("p",null,[e("Using the property "),m,e(" 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 "),f,e(),a("a",v,[e("claim"),s(n)]),e(" from the access token will be matched against the property values.")]),b,a("p",null,[e("In order to allow users to start processes, the property "),g,e(" can be used to assign codes from FHIR "),a("a",_,[e("CodeSystem"),s(n)]),e(" resources. Codes are specified in the form "),E,e("."),R,e(" If the uses has a code specified here that match with a "),S,e(" extension within the process plugin's "),a("a",k,[e("ActivityDefinition"),s(n)]),e(" resource, the user can start the process if he also has the "),D,e(),I,e(".")]),A])}const O=t(l,[["render",y],["__file","access-control.html.vue"]]),x=JSON.parse('{"path":"/v1.4.0/maintain/fhir/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1702917645000,"updatedTime":1702917645000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.47,"words":742},"filePathRelative":"v1.4.0/maintain/fhir/access-control.md","localizedDate":"December 18, 2023","excerpt":"
Overview
\\n
The DSF FHIR server implements a subset of the FHIR R4 REST API. 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
"}');export{O as comp,x as data};
diff --git a/assets/access-control.html-TnCObO8b.js b/assets/access-control.html-TnCObO8b.js
new file mode 100644
index 000000000..b7cb34cb1
--- /dev/null
+++ b/assets/access-control.html-TnCObO8b.js
@@ -0,0 +1,46 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c,a,b as e,d as s,e as i}from"./app-kq9lCQfY.js";const l={},d=a("h2",{id:"overview",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#overview"},[a("span",null,"Overview")])],-1),h={href:"http://hl7.org/fhir/R4/http.html",target:"_blank",rel:"noopener noreferrer"},p=a("a",{href:"configuration#dev-dsf-fhir-server-organization-thumbprint"},"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT",-1),u=i(`
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF FHIR server OpenID Connect configuration page.
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. 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:
The list of user roles above contains a single entry example_read_only_role, matching the user via a client certificate SHA-512 thumprint and assigning three DSF roles.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
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:
`,9);function y(T,F){const n=r("ExternalLinkIcon");return o(),c("div",null,[d,a("p",null,[e("The DSF FHIR server implements a subset of the FHIR R4 "),a("a",h,[e("REST API"),s(n)]),e(". 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: "),p]),u,a("p",null,[e("Using the property "),m,e(" 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 "),f,e(),a("a",v,[e("claim"),s(n)]),e(" from the access token will be matched against the property values.")]),b,a("p",null,[e("In order to allow users to start processes, the property "),g,e(" can be used to assign codes from FHIR "),a("a",_,[e("CodeSystem"),s(n)]),e(" resources. Codes are specified in the form "),E,e("."),R,e(" If the uses has a code specified here that match with a "),S,e(" extension within the process plugin's "),a("a",k,[e("ActivityDefinition"),s(n)]),e(" resource, the user can start the process if he also has the "),D,e(),I,e(".")]),A])}const O=t(l,[["render",y],["__file","access-control.html.vue"]]),x=JSON.parse('{"path":"/v1.1.0/maintain/fhir/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1693251017000,"updatedTime":1693555301000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.47,"words":742},"filePathRelative":"v1.1.0/maintain/fhir/access-control.md","localizedDate":"August 28, 2023","excerpt":"
Overview
\\n
The DSF FHIR server implements a subset of the FHIR R4 REST API. 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
"}');export{O as comp,x as data};
diff --git a/assets/access-control.html-WWQBmNVa.js b/assets/access-control.html-WWQBmNVa.js
new file mode 100644
index 000000000..45b9e9a37
--- /dev/null
+++ b/assets/access-control.html-WWQBmNVa.js
@@ -0,0 +1,46 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c,a,b as e,d as s,e as i}from"./app-kq9lCQfY.js";const l={},d=a("h2",{id:"overview",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#overview"},[a("span",null,"Overview")])],-1),p={href:"http://hl7.org/fhir/R4/http.html",target:"_blank",rel:"noopener noreferrer"},h=a("a",{href:"configuration#dev-dsf-fhir-server-organization-thumbprint"},"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT",-1),u=i(`
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF FHIR server OpenID Connect configuration page.
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. 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:
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.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
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:
`,9);function A(T,F){const n=r("ExternalLinkIcon");return o(),c("div",null,[d,a("p",null,[e("The DSF FHIR server implements a subset of the FHIR R4 "),a("a",p,[e("REST API"),s(n)]),e(". 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: "),h]),u,a("p",null,[e("Using the property "),m,e(" 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 "),f,e(),a("a",v,[e("claim"),s(n)]),e(" from the access token will be matched against the property values.")]),b,a("p",null,[e("In order to allow users to start processes, the property "),g,e(" can be used to assign codes from FHIR "),a("a",_,[e("CodeSystem"),s(n)]),e(" resources. Codes are specified in the form "),E,e("."),R,e(" If the uses has a code specified here that match with a "),S,e(" extension within the process plugin's "),a("a",k,[e("ActivityDefinition"),s(n)]),e(" resource, the user can start the process if he also has the "),D,e(),I,e(".")]),y])}const w=t(l,[["render",A],["__file","access-control.html.vue"]]),x=JSON.parse('{"path":"/v1.5.2/maintain/fhir/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.52,"words":755},"filePathRelative":"v1.5.2/maintain/fhir/access-control.md","localizedDate":"July 8, 2024","excerpt":"
Overview
\\n
The DSF FHIR server implements a subset of the FHIR R4 REST API. 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
"}');export{w as comp,x as data};
diff --git a/assets/access-control.html-hritXxa7.js b/assets/access-control.html-hritXxa7.js
new file mode 100644
index 000000000..400194909
--- /dev/null
+++ b/assets/access-control.html-hritXxa7.js
@@ -0,0 +1,26 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as t,o as r,c,a,b as e,d as o,e as n}from"./app-kq9lCQfY.js";const l={},d=n(`
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.
OpenID Connect
To enable OpenID Connect authentication of local user, see the DSF BPE server OpenID Connect configuration page.
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. 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:
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.
Certificate Thumbprints
SHA-512 certificate thumbprints in HEX form [a-f0-9]{128} can be calculated using:
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 if no roles should be configured.
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.
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.
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.
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:
`,16);function f(v,b){const s=t("ExternalLinkIcon");return r(),c("div",null,[d,a("p",null,[e("Using the property "),p,e(" 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 "),h,e(),a("a",u,[e("claim"),o(s)]),e(" from the access token will be matched against the property values.")]),m])}const k=i(l,[["render",f],["__file","access-control.html.vue"]]),E=JSON.parse('{"path":"/stable/maintain/bpe/access-control.html","title":"Access Control","lang":"en-US","frontmatter":{"title":"Access Control","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Matching Users","slug":"matching-users","link":"#matching-users","children":[]},{"level":2,"title":"DSF and Practitioner Roles","slug":"dsf-and-practitioner-roles","link":"#dsf-and-practitioner-roles","children":[]},{"level":2,"title":"Examples","slug":"examples","link":"#examples","children":[]}],"git":{"createdTime":null,"updatedTime":null,"contributors":[]},"readingTime":{"minutes":1.94,"words":583},"filePathRelative":"stable/maintain/bpe/access-control.md","excerpt":"
Overview
\\n
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.
\\n
\\n
OpenID Connect
\\n
To enable OpenID Connect authentication of local user, see the DSF BPE server OpenID Connect configuration page.
\\n
"}');export{k as comp,E as data};
diff --git a/assets/addingANewFhirR.html-DKFGMdMx.js b/assets/addingANewFhirR.html-DKFGMdMx.js
new file mode 100644
index 000000000..6e12d4795
--- /dev/null
+++ b/assets/addingANewFhirR.html-DKFGMdMx.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as a,e as r}from"./app-kq9lCQfY.js";const o={},i=r('
This wiki entry walks through the steps to add a new FHIR resource to the server
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)
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
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
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)
This wiki entry walks through the steps to add a new FHIR resource to the server
\\n
Database
\\n
\\n
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)
\\n
dsf-fhir-server > resources > db > db.changelog.xml include new generated db changelog file (are in alphabetic order)
\\n
dsf-fhir-server > resources > db > trigger_functions copy/paste existing functions for insert/update triggers and change content to new resource
\\n
dsf-fhir-server > resources > db > db.read_access.changelog.xml include new generated functions for insert/update triggers (are in alphabetic order)
\\n
"}`);export{h as comp,f as data};
diff --git a/assets/addingANewMpiClient.html-Dly4qn4C.js b/assets/addingANewMpiClient.html-Dly4qn4C.js
new file mode 100644
index 000000000..0c5ef9934
--- /dev/null
+++ b/assets/addingANewMpiClient.html-Dly4qn4C.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as r,c as s,a as e,b as t,d as i}from"./app-kq9lCQfY.js";const d={},l=e("code",null,"org.highmed.dsf.bpe.mpi.webservice.factory.class",-1),c={href:"https://github.com/highmed/highmed-dsf/blob/master/dsf-mpi/dsf-mpi-client/src/main/java/org/highmed/mpi/client/MasterPatientIndexClientFactory.java",target:"_blank",rel:"noopener noreferrer"},h=e("code",null,"MasterPatientIndexClientFactory",-1),m=e("p",null,[t("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 "),e("code",null,"dsf-mpi-client-pdq"),t(" module to the "),e("code",null,"plugin"),t(" configuration folder and set the property value to "),e("code",null,"org.highmed.mpi.client.pdq.MasterPatientIndexClientPdqFactory"),t(".")],-1),p=e("p",null,"To implement a new MPI client, the following has to be taken into account:",-1),f={href:"https://github.com/highmed/highmed-dsf/blob/master/dsf-mpi/dsf-mpi-client/src/main/java/org/highmed/mpi/client/MasterPatientIndexClientFactory.java",target:"_blank",rel:"noopener noreferrer"},g=e("code",null,"MasterPatientIndexClientFactory",-1),u={href:"https://github.com/highmed/highmed-dsf/tree/master/dsf-mpi/dsf-mpi-client",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"dsf-mpi-client",-1),b=e("li",null,[t("The resources folder must contain a file with the name "),e("code",null,"META-INF/services/org.highmed.mpi.client.MasterPatientIndexClientFactory"),t(" containing the name of the new MPI client factory including the full package name.")],-1),P={href:"https://github.com/highmed/highmed-dsf/blob/master/dsf-mpi/dsf-mpi-client/src/main/java/org/highmed/mpi/client/MasterPatientIndexClient.java",target:"_blank",rel:"noopener noreferrer"},I=e("code",null,"MasterPatientIndexClient",-1),M={href:"https://github.com/highmed/highmed-dsf/blob/master/dsf-mpi/dsf-mpi-client/src/main/java/org/highmed/mpi/client/Idat.java",target:"_blank",rel:"noopener noreferrer"},y=e("code",null,"Idat",-1),v={href:"https://github.com/highmed/highmed-dsf/tree/master/dsf-mpi/dsf-mpi-client-pdq",target:"_blank",rel:"noopener noreferrer"},x=e("code",null,"dsf-mpi-client-pdq",-1);function w(C,k){const n=a("ExternalLinkIcon");return r(),s("div",null,[e("p",null,[t("The Master Patient Index (MPI) client that will be used by the Business Process Engine (BPE) is determined by the property "),l,t(" and loaded using a service loader, which searches for a class of type "),e("a",c,[h,i(n)]),t(" on startup of the BPE.")]),m,p,e("ul",null,[e("li",null,[t("The plugin needs to supply an MPI client factory implementing the interface "),e("a",f,[g,i(n)]),t(" from the "),e("a",u,[_,i(n)]),t(" module.")]),b,e("li",null,[t("The client needs to implement the interface "),e("a",P,[I,i(n)]),t(". The interface defines a method returning instances of the interface "),e("a",M,[y,i(n)]),t(" based on patient-ids used within the openEHR repository.")])]),e("p",null,[t("An example of an MPI client implementation can be found in the "),e("a",v,[x,i(n)]),t(" module.")])])}const j=o(d,[["render",w],["__file","addingANewMpiClient.html.vue"]]),A=JSON.parse('{"path":"/oldstable/code/addingANewMpiClient.html","title":"Adding MPI Clients","lang":"en-US","frontmatter":{"title":"Adding MPI Clients","icon":"code"},"headers":[],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.77,"words":232},"filePathRelative":"oldstable/code/addingANewMpiClient.md","localizedDate":"August 23, 2023","excerpt":"
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 on startup of the BPE.
"}');export{j as comp,A as data};
diff --git a/assets/addingANewOpenEhrClient.html-C1usEhCm.js b/assets/addingANewOpenEhrClient.html-C1usEhCm.js
new file mode 100644
index 000000000..85d93f70d
--- /dev/null
+++ b/assets/addingANewOpenEhrClient.html-C1usEhCm.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as h,c as l,a as e,b as n,d as o}from"./app-kq9lCQfY.js";const a={},s=e("code",null,"org.highmed.dsf.bpe.openehr.webservice.factory.class",-1),d={href:"https://github.com/highmed/highmed-dsf/blob/master/dsf-openehr/dsf-openehr-client/src/main/java/org/highmed/openehr/client/OpenEhrClientFactory.java",target:"_blank",rel:"noopener noreferrer"},c=e("code",null,"OpenEhrClientFactory",-1),p=e("p",null,[n("The framework currently includes an openEHR Jersey REST client using basic authentication. To use it, add the jar of the "),e("code",null,"dsf-openehr-client-impl"),n(" module to the "),e("code",null,"plugin"),n(" configuration folder and set the property value to "),e("code",null,"org.highmed.openehr.client.impl.OpenEhrClientJerseyFactory"),n(".")],-1),m=e("p",null,"To implement a new openEHR client, the following has to be taken into account:",-1),f={href:"https://github.com/highmed/highmed-dsf/blob/master/dsf-openehr/dsf-openehr-client/src/main/java/org/highmed/openehr/client/OpenEhrClientFactory.java",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"OpenEhrClientFactory",-1),g={href:"https://github.com/highmed/highmed-dsf/tree/master/dsf-openehr/dsf-openehr-client",target:"_blank",rel:"noopener noreferrer"},_=e("code",null,"dsf-openehr-client",-1),b=e("li",null,[n("The resources folder must contain a file with the name "),e("code",null,"META-INF/services/org.highmed.openehr.client.OpenEhrClientFactory"),n(" containing the name of the new openehr client factory including the full package name.")],-1),E={href:"https://github.com/highmed/highmed-dsf/blob/master/dsf-openehr/dsf-openehr-client/src/main/java/org/highmed/openehr/client/OpenEhrClient.java",target:"_blank",rel:"noopener noreferrer"},y=e("code",null,"OpenEhrClient",-1),v={href:"https://github.com/highmed/highmed-dsf/blob/master/dsf-openehr/dsf-openehr-model/src/main/java/org/highmed/openehr/model/structure/ResultSet.java",target:"_blank",rel:"noopener noreferrer"},C=e("code",null,"ResultSet",-1),k={href:"https://github.com/highmed/highmed-dsf/tree/master/dsf-openehr/dsf-openehr-client-impl",target:"_blank",rel:"noopener noreferrer"},w=e("code",null,"dsf-openehr-client-impl",-1);function O(T,R){const t=i("ExternalLinkIcon");return h(),l("div",null,[e("p",null,[n("The openEHR client that will be used by the Business Process Engine (BPE) is determined by the property "),s,n(" and loaded using a service loader, which searches for a class of type "),e("a",d,[c,o(t)]),n(" on startup of the BPE.")]),p,m,e("ul",null,[e("li",null,[n("The plugin needs to supply an openEHR client factory implementing the interface "),e("a",f,[u,o(t)]),n(" from the "),e("a",g,[_,o(t)]),n(" module.")]),b,e("li",null,[n("The client needs to implement the interface "),e("a",E,[y,o(t)]),n(". The interface defines a method executing an openEHR query returning an instance of an openEHR "),e("a",v,[C,o(t)]),n(".")])]),e("p",null,[n("An example of an openEHR client implementation can be found in the "),e("a",k,[w,o(t)]),n(" module.")])])}const x=r(a,[["render",O],["__file","addingANewOpenEhrClient.html.vue"]]),A=JSON.parse('{"path":"/oldstable/code/addingANewOpenEhrClient.html","title":"Adding openEHR Clients","lang":"en-US","frontmatter":{"title":"Adding openEHR Clients","icon":"code"},"headers":[],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.74,"words":221},"filePathRelative":"oldstable/code/addingANewOpenEhrClient.md","localizedDate":"August 23, 2023","excerpt":"
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 on startup of the BPE.
"}');export{x as comp,A as data};
diff --git a/assets/allowList-mgm.html--HvZHaB9.js b/assets/allowList-mgm.html--HvZHaB9.js
new file mode 100644
index 000000000..ac6b08fbd
--- /dev/null
+++ b/assets/allowList-mgm.html--HvZHaB9.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as i,w as c,e as h}from"./app-kq9lCQfY.js";const u={},d=h('
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.
When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
',7),m={href:"https://allowlist-test.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},f=e("strong",null,"Test",-1),p={href:"https://allowlist.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},w=e("strong",null,"Production",-1),g=e("p",null,[t("We use different highlight colors for the DSF Allow List Management Tool: Green for the "),e("strong",null,"Test"),t(" environment and blue for the "),e("strong",null,"Production"),t(" 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.")],-1),b=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Ideas for improvement?"),e("p",null,[t("Have you found an error or is something unclear to you? Then please feel free to contact us on the "),e("a",{href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29"},"MII-Zulip Channel"),t(" or write us at "),e("a",{href:"mailto:dsf-gecko@hs-heilbronn.de"},"gth-gecko@hs-heilbronn.de"),t(". Thank you very much!")])],-1);function v(_,y){const a=r("RouteLink"),o=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("You can read all about the concept of Allow Lists "),i(a,{to:"/intro/info/allowList.html"},{default:c(()=>[t("in our introduction")]),_:1}),t(".")]),d,e("ul",null,[e("li",null,[e("a",m,[f,t(" infrastructure"),i(o)])]),e("li",null,[e("a",p,[w,t(" infrastructure"),i(o)])])]),g,b])}const T=n(u,[["render",v],["__file","allowList-mgm.html.vue"]]),S=JSON.parse('{"path":"/v1.3.1/maintain/allowList-mgm.html","title":"Allow List Management","lang":"en-US","frontmatter":{"title":"Allow List Management","icon":"share"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Start here","slug":"start-here","link":"#start-here","children":[]}],"git":{"createdTime":1698748420000,"updatedTime":1699815669000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.15,"words":345},"filePathRelative":"v1.3.1/maintain/allowList-mgm.md","localizedDate":"October 31, 2023","excerpt":"
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.
"}');export{T as comp,S as data};
diff --git a/assets/allowList-mgm.html-9siK4PZs.js b/assets/allowList-mgm.html-9siK4PZs.js
new file mode 100644
index 000000000..99b082543
--- /dev/null
+++ b/assets/allowList-mgm.html-9siK4PZs.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as l,c as h,a as e,b as t,d as o,w as c,e as n}from"./app-kq9lCQfY.js";const u={},d=n('
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 your personal client certificate or the client certificate from your DSF BPE, which needs to be added to your webbrowser. For instructions on how to add a client certificate to your browser, please follow here.
',4),p=e("li",null,[t("Deployed DSF instance (test or production infrastructure)"),e("br"),t(" 1.1 If none exists yet, read "),e("a",{href:"install"},"the installation guide")],-1),f=e("li",null,[t("Certificate"),e("br"),t(" 2.1 If none exists yet, read "),e("a",{href:"install#client-server-certificates"},"the certificate requirements")],-1),m={href:"http://hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},w={href:"https://gth.gecko.hs-heilbronn.de/fhir",target:"_blank",rel:"noopener noreferrer"},g=e("li",null,"Contact details from a responsible person of your organization",-1),b=e("li",null,"Access to the E-Mail address from your organization for verification",-1),v=n('
We use different colors for the DSF Allow List Management Tools in the Test (green) and Production (blue) infastructure.
At the beginning, a popup will appear where you have to select your certificate. Only then you will have access to the website.
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!
',7);function _(y,L){const a=r("RouteLink"),i=r("ExternalLinkIcon");return l(),h("div",null,[e("p",null,[t("You can read all about the concept of Allow Lists "),o(a,{to:"/intro/info/allowList.html"},{default:c(()=>[t("in our introduction")]),_:1}),t(".")]),d,e("ol",null,[p,f,e("li",null,[t("Organization identifier (FQDN of your organization website, e.g. "),e("em",null,[e("a",m,[t("hs-heilbronn.de"),o(i)])]),t(")")]),e("li",null,[t("FHIR Endpoint URL (e.g. "),e("em",null,[e("a",w,[t("https://gth.gecko.hs-heilbronn.de/fhir"),o(i)])]),t(" )")]),g,b]),v])}const T=s(u,[["render",_],["__file","allowList-mgm.html.vue"]]),A=JSON.parse('{"path":"/v1.3.0/maintain/allowList-mgm.html","title":"Allow List Management","lang":"en-US","frontmatter":{"title":"Allow List Management","icon":"share"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Start here","slug":"start-here","link":"#start-here","children":[]}],"git":{"createdTime":1696944513000,"updatedTime":1698658900000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":1.31,"words":392},"filePathRelative":"v1.3.0/maintain/allowList-mgm.md","localizedDate":"October 10, 2023","excerpt":"
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.
"}');export{T as comp,A as data};
diff --git a/assets/allowList-mgm.html-Bkt24hWo.js b/assets/allowList-mgm.html-Bkt24hWo.js
new file mode 100644
index 000000000..e4ec4e656
--- /dev/null
+++ b/assets/allowList-mgm.html-Bkt24hWo.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as i,w as c,e as h}from"./app-kq9lCQfY.js";const u={},d=h('
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.
When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
',7),m={href:"https://allowlist-test.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},f=e("strong",null,"Test",-1),p={href:"https://allowlist.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},w=e("strong",null,"Production",-1),g=e("p",null,[t("We use different highlight colors for the DSF Allow List Management Tool: Green for the "),e("strong",null,"Test"),t(" environment and blue for the "),e("strong",null,"Production"),t(" 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.")],-1),b=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Ideas for improvement?"),e("p",null,[t("Have you found an error or is something unclear to you? Then please feel free to contact us on the "),e("a",{href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29"},"MII-Zulip Channel"),t(" or write us at "),e("a",{href:"mailto:dsf-gecko@hs-heilbronn.de"},"gth-gecko@hs-heilbronn.de"),t(". Thank you very much!")])],-1);function v(_,y){const a=r("RouteLink"),o=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("You can read all about the concept of Allow Lists "),i(a,{to:"/intro/info/allowList.html"},{default:c(()=>[t("in our introduction")]),_:1}),t(".")]),d,e("ul",null,[e("li",null,[e("a",m,[f,t(" infrastructure"),i(o)])]),e("li",null,[e("a",p,[w,t(" infrastructure"),i(o)])])]),g,b])}const T=n(u,[["render",v],["__file","allowList-mgm.html.vue"]]),S=JSON.parse('{"path":"/v1.4.0/maintain/allowList-mgm.html","title":"Allow List Management","lang":"en-US","frontmatter":{"title":"Allow List Management","icon":"share"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Start here","slug":"start-here","link":"#start-here","children":[]}],"git":{"createdTime":1702917645000,"updatedTime":1702917645000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.15,"words":345},"filePathRelative":"v1.4.0/maintain/allowList-mgm.md","localizedDate":"December 18, 2023","excerpt":"
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.
"}');export{T as comp,S as data};
diff --git a/assets/allowList-mgm.html-BtC1Sjv9.js b/assets/allowList-mgm.html-BtC1Sjv9.js
new file mode 100644
index 000000000..4a5c42284
--- /dev/null
+++ b/assets/allowList-mgm.html-BtC1Sjv9.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as i,w as c,e as h}from"./app-kq9lCQfY.js";const u={},d=h('
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.
When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
',7),f={href:"https://allowlist-test.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},m=e("strong",null,"Test",-1),p={href:"https://allowlist.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},w=e("strong",null,"Production",-1),g=e("p",null,[t("We use different highlight colors for the DSF Allow List Management Tool: Green for the "),e("strong",null,"Test"),t(" environment and blue for the "),e("strong",null,"Production"),t(" 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.")],-1),b=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Ideas for improvement?"),e("p",null,[t("Have you found an error or is something unclear to you? Then please feel free to contact us on the "),e("a",{href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29"},"MII-Zulip Channel"),t(" or write us at "),e("a",{href:"mailto:dsf-gecko@hs-heilbronn.de"},"gth-gecko@hs-heilbronn.de"),t(". Thank you very much!")])],-1);function v(_,y){const a=r("RouteLink"),o=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("You can read all about the concept of Allow Lists "),i(a,{to:"/intro/info/allowList.html"},{default:c(()=>[t("in our introduction")]),_:1}),t(".")]),d,e("ul",null,[e("li",null,[e("a",f,[m,t(" infrastructure"),i(o)])]),e("li",null,[e("a",p,[w,t(" infrastructure"),i(o)])])]),g,b])}const T=n(u,[["render",v],["__file","allowList-mgm.html.vue"]]),S=JSON.parse('{"path":"/v1.5.0/maintain/allowList-mgm.html","title":"Allow List Management","lang":"en-US","frontmatter":{"title":"Allow List Management","icon":"share"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Start here","slug":"start-here","link":"#start-here","children":[]}],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.15,"words":345},"filePathRelative":"v1.5.0/maintain/allowList-mgm.md","localizedDate":"February 20, 2024","excerpt":"
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.
"}');export{T as comp,S as data};
diff --git a/assets/allowList-mgm.html-CIV-y8qc.js b/assets/allowList-mgm.html-CIV-y8qc.js
new file mode 100644
index 000000000..4e2c64116
--- /dev/null
+++ b/assets/allowList-mgm.html-CIV-y8qc.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as i,w as c,e as h}from"./app-kq9lCQfY.js";const u={},d=h('
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.
When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
',7),m={href:"https://allowlist-test.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},f=e("strong",null,"Test",-1),p={href:"https://allowlist.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},w=e("strong",null,"Production",-1),g=e("p",null,[t("We use different highlight colors for the DSF Allow List Management Tool: Green for the "),e("strong",null,"Test"),t(" environment and blue for the "),e("strong",null,"Production"),t(" 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.")],-1),b=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Ideas for improvement?"),e("p",null,[t("Have you found an error or is something unclear to you? Then please feel free to contact us on the "),e("a",{href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29"},"MII-Zulip Channel"),t(" or write us at "),e("a",{href:"mailto:dsf-gecko@hs-heilbronn.de"},"gth-gecko@hs-heilbronn.de"),t(". Thank you very much!")])],-1);function v(_,y){const a=r("RouteLink"),o=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("You can read all about the concept of Allow Lists "),i(a,{to:"/intro/info/allowList.html"},{default:c(()=>[t("in our introduction")]),_:1}),t(".")]),d,e("ul",null,[e("li",null,[e("a",m,[f,t(" infrastructure"),i(o)])]),e("li",null,[e("a",p,[w,t(" infrastructure"),i(o)])])]),g,b])}const S=n(u,[["render",v],["__file","allowList-mgm.html.vue"]]),T=JSON.parse('{"path":"/stable/maintain/allowList-mgm.html","title":"Allow List Management","lang":"en-US","frontmatter":{"title":"Allow List Management","icon":"share"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Start here","slug":"start-here","link":"#start-here","children":[]}],"git":{"createdTime":1691410780000,"updatedTime":1692790324000,"contributors":[{"name":"Maximilian Kurscheidt","email":"maximilian.kurscheidt@hs-heilbronn.de","commits":3},{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":2},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.15,"words":345},"filePathRelative":"stable/maintain/allowList-mgm.md","localizedDate":"August 7, 2023","excerpt":"
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.
"}');export{S as comp,T as data};
diff --git a/assets/allowList-mgm.html-CYJul8nr.js b/assets/allowList-mgm.html-CYJul8nr.js
new file mode 100644
index 000000000..3755e4a9e
--- /dev/null
+++ b/assets/allowList-mgm.html-CYJul8nr.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as i,w as c,e as h}from"./app-kq9lCQfY.js";const u={},d=h('
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.
When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
',7),f={href:"https://allowlist-test.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},m=e("strong",null,"Test",-1),p={href:"https://allowlist.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},w=e("strong",null,"Production",-1),g=e("p",null,[t("We use different highlight colors for the DSF Allow List Management Tool: Green for the "),e("strong",null,"Test"),t(" environment and blue for the "),e("strong",null,"Production"),t(" 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.")],-1),b=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Ideas for improvement?"),e("p",null,[t("Have you found an error or is something unclear to you? Then please feel free to contact us on the "),e("a",{href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29"},"MII-Zulip Channel"),t(" or write us at "),e("a",{href:"mailto:dsf-gecko@hs-heilbronn.de"},"gth-gecko@hs-heilbronn.de"),t(". Thank you very much!")])],-1);function v(_,y){const a=r("RouteLink"),o=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("You can read all about the concept of Allow Lists "),i(a,{to:"/intro/info/allowList.html"},{default:c(()=>[t("in our introduction")]),_:1}),t(".")]),d,e("ul",null,[e("li",null,[e("a",f,[m,t(" infrastructure"),i(o)])]),e("li",null,[e("a",p,[w,t(" infrastructure"),i(o)])])]),g,b])}const T=n(u,[["render",v],["__file","allowList-mgm.html.vue"]]),A=JSON.parse('{"path":"/v1.5.2/maintain/allowList-mgm.html","title":"Allow List Management","lang":"en-US","frontmatter":{"title":"Allow List Management","icon":"share"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Start here","slug":"start-here","link":"#start-here","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.15,"words":345},"filePathRelative":"v1.5.2/maintain/allowList-mgm.md","localizedDate":"July 8, 2024","excerpt":"
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.
"}');export{T as comp,A as data};
diff --git a/assets/allowList-mgm.html-Cdtf6CP2.js b/assets/allowList-mgm.html-Cdtf6CP2.js
new file mode 100644
index 000000000..9a6556ccf
--- /dev/null
+++ b/assets/allowList-mgm.html-Cdtf6CP2.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as h,a as e,b as t,d as i,w as c,e as a}from"./app-kq9lCQfY.js";const u={},d=e("div",{class:"hint-container caution"},[e("p",{class:"hint-container-title"},"Caution"),e("p",null,[t("This is an outdated version of the Allow List Management documentation. Please use "),e("a",{href:"/stable//maintain/allowList-mgm"},"the current version"),t(", even if you use an outdated DSF version.")])],-1),m=a('
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 your personal client certificate or the client certificate from your DSF BPE, which needs to be added to your webbrowser. For instructions on how to add a client certificate to your browser, please follow here. Currently, the Allow List Management Tool is only for DSF TEST infrastructure. For production, please write us an E-Mail with your information.
',4),p=e("li",null,[t("Deployed DSF instance (test infrastructure)"),e("br"),t(" 1.1 If none exists yet, read "),e("a",{href:"install"},"here")],-1),f=e("li",null,[t("Certificate"),e("br"),t(" 2.1 If none exists yet, read "),e("a",{href:"install#client-server-certificates"},"here")],-1),w={href:"http://hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},g={href:"https://gth.gecko.hs-heilbronn.de/fhir",target:"_blank",rel:"noopener noreferrer"},b=e("li",null,"Contact details from a responsible person of your organization",-1),v=e("li",null,"Access to the E-Mail address from your organization for verification",-1),_=a('
When you have fulfilled all the prerequisites, you can start managing your Allow Lists on the DSF Allow List Management Tool. At the beginning, a popup will appear where you have to select your certificate. Only then you will have access to the website.
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!
',3);function y(L,k){const r=o("RouteLink"),n=o("ExternalLinkIcon");return l(),h("div",null,[d,e("p",null,[t("You can read all about the concept of Allow Lists "),i(r,{to:"/intro/info/allowList.html"},{default:c(()=>[t("here")]),_:1}),t(".")]),m,e("ol",null,[p,f,e("li",null,[t("Organization identifier (FQDN of your organization website, e.g. "),e("em",null,[e("a",w,[t("hs-heilbronn.de"),i(n)])]),t(")")]),e("li",null,[t("FHIR Endpoint URL (e.g. "),e("em",null,[e("a",g,[t("https://gth.gecko.hs-heilbronn.de/fhir"),i(n)])]),t(" )")]),b,v]),_])}const T=s(u,[["render",y],["__file","allowList-mgm.html.vue"]]),F=JSON.parse('{"path":"/v1.1.0/maintain/allowList-mgm.html","title":"Allow List Management","lang":"en-US","frontmatter":{"title":"Allow List Management","icon":"share"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Start here","slug":"start-here","link":"#start-here","children":[]}],"git":{"createdTime":1692790324000,"updatedTime":1698658900000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":3}]},"readingTime":{"minutes":1.3,"words":391},"filePathRelative":"v1.1.0/maintain/allowList-mgm.md","localizedDate":"August 23, 2023","excerpt":"
\\n
Caution
\\n
This is an outdated version of the Allow List Management documentation. Please use the current version, even if you use an outdated DSF version.
\\n
\\n
You can read all about the concept of Allow Lists here.
"}');export{T as comp,F as data};
diff --git a/assets/allowList-mgm.html-D3owzJ3j.js b/assets/allowList-mgm.html-D3owzJ3j.js
new file mode 100644
index 000000000..a92d8a5bc
--- /dev/null
+++ b/assets/allowList-mgm.html-D3owzJ3j.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as i,w as c,e as h}from"./app-kq9lCQfY.js";const u={},d=h('
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.
When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
',7),f={href:"https://allowlist-test.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},m=e("strong",null,"Test",-1),p={href:"https://allowlist.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},w=e("strong",null,"Production",-1),g=e("p",null,[t("We use different highlight colors for the DSF Allow List Management Tool: Green for the "),e("strong",null,"Test"),t(" environment and blue for the "),e("strong",null,"Production"),t(" 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.")],-1),b=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Ideas for improvement?"),e("p",null,[t("Have you found an error or is something unclear to you? Then please feel free to contact us on the "),e("a",{href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29"},"MII-Zulip Channel"),t(" or write us at "),e("a",{href:"mailto:dsf-gecko@hs-heilbronn.de"},"gth-gecko@hs-heilbronn.de"),t(". Thank you very much!")])],-1);function v(_,y){const a=r("RouteLink"),o=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("You can read all about the concept of Allow Lists "),i(a,{to:"/intro/info/allowList.html"},{default:c(()=>[t("in our introduction")]),_:1}),t(".")]),d,e("ul",null,[e("li",null,[e("a",f,[m,t(" infrastructure"),i(o)])]),e("li",null,[e("a",p,[w,t(" infrastructure"),i(o)])])]),g,b])}const T=n(u,[["render",v],["__file","allowList-mgm.html.vue"]]),S=JSON.parse('{"path":"/v1.5.1/maintain/allowList-mgm.html","title":"Allow List Management","lang":"en-US","frontmatter":{"title":"Allow List Management","icon":"share"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Start here","slug":"start-here","link":"#start-here","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.15,"words":345},"filePathRelative":"v1.5.1/maintain/allowList-mgm.md","localizedDate":"April 17, 2024","excerpt":"
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.
"}');export{T as comp,S as data};
diff --git a/assets/allowList-mgm.html-DG2rpePj.js b/assets/allowList-mgm.html-DG2rpePj.js
new file mode 100644
index 000000000..89563a9fc
--- /dev/null
+++ b/assets/allowList-mgm.html-DG2rpePj.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as i,w as c,e as h}from"./app-kq9lCQfY.js";const u={},d=h('
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.
When you have fulfilled all the prerequisites, you can start managing your Allow Lists via the environment specific Allow List Management Tool:
',7),m={href:"https://allowlist-test.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},f=e("strong",null,"Test",-1),p={href:"https://allowlist.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},w=e("strong",null,"Production",-1),g=e("p",null,[t("We use different highlight colors for the DSF Allow List Management Tool: Green for the "),e("strong",null,"Test"),t(" environment and blue for the "),e("strong",null,"Production"),t(" 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.")],-1),b=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Ideas for improvement?"),e("p",null,[t("Have you found an error or is something unclear to you? Then please feel free to contact us on the "),e("a",{href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29"},"MII-Zulip Channel"),t(" or write us at "),e("a",{href:"mailto:dsf-gecko@hs-heilbronn.de"},"gth-gecko@hs-heilbronn.de"),t(". Thank you very much!")])],-1);function v(_,y){const a=r("RouteLink"),o=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("You can read all about the concept of Allow Lists "),i(a,{to:"/intro/info/allowList.html"},{default:c(()=>[t("in our introduction")]),_:1}),t(".")]),d,e("ul",null,[e("li",null,[e("a",m,[f,t(" infrastructure"),i(o)])]),e("li",null,[e("a",p,[w,t(" infrastructure"),i(o)])])]),g,b])}const T=n(u,[["render",v],["__file","allowList-mgm.html.vue"]]),S=JSON.parse('{"path":"/v1.3.2/maintain/allowList-mgm.html","title":"Allow List Management","lang":"en-US","frontmatter":{"title":"Allow List Management","icon":"share"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Start here","slug":"start-here","link":"#start-here","children":[]}],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.15,"words":345},"filePathRelative":"v1.3.2/maintain/allowList-mgm.md","localizedDate":"December 4, 2023","excerpt":"
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.
"}');export{T as comp,S as data};
diff --git a/assets/allowList-mgm.html-LVnwVTAs.js b/assets/allowList-mgm.html-LVnwVTAs.js
new file mode 100644
index 000000000..48f9ad5ae
--- /dev/null
+++ b/assets/allowList-mgm.html-LVnwVTAs.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as h,a as e,b as t,d as i,w as c,e as a}from"./app-kq9lCQfY.js";const u={},d=e("div",{class:"hint-container caution"},[e("p",{class:"hint-container-title"},"Caution"),e("p",null,[t("This is an outdated version of the Allow List Management documentation. Please use "),e("a",{href:"/stable//maintain/allowList-mgm"},"the current version"),t(", even if you use an outdated DSF version.")])],-1),m=a('
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 your personal client certificate or the client certificate from your DSF BPE, which needs to be added to your webbrowser. For instructions on how to add a client certificate to your browser, please follow here. Currently, the Allow List Management Tool is only for DSF TEST infrastructure. For production, please write us an E-Mail with your information.
',4),p=e("li",null,[t("Deployed DSF instance (test infrastructure)"),e("br"),t(" 1.1 If none exists yet, read "),e("a",{href:"install"},"here")],-1),f=e("li",null,[t("Certificate"),e("br"),t(" 2.1 If none exists yet, read "),e("a",{href:"install#client-server-certificates"},"here")],-1),w={href:"http://hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},g={href:"https://gth.gecko.hs-heilbronn.de/fhir",target:"_blank",rel:"noopener noreferrer"},b=e("li",null,"Contact details from a responsible person of your organization",-1),v=e("li",null,"Access to the E-Mail address from your organization for verification",-1),_=a('
When you have fulfilled all the prerequisites, you can start managing your Allow Lists on the DSF Allow List Management Tool. At the beginning, a popup will appear where you have to select your certificate. Only then you will have access to the website.
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!
',3);function y(L,k){const r=o("RouteLink"),n=o("ExternalLinkIcon");return l(),h("div",null,[d,e("p",null,[t("You can read all about the concept of Allow Lists "),i(r,{to:"/intro/info/allowList.html"},{default:c(()=>[t("here")]),_:1}),t(".")]),m,e("ol",null,[p,f,e("li",null,[t("Organization identifier (FQDN of your organization, e.g. "),e("em",null,[e("a",w,[t("hs-heilbronn.de"),i(n)])]),t(")")]),e("li",null,[t("FHIR Endpoint URL (e.g. "),e("em",null,[e("a",g,[t("https://gth.gecko.hs-heilbronn.de/fhir"),i(n)])]),t(" )")]),b,v]),_])}const T=s(u,[["render",y],["__file","allowList-mgm.html.vue"]]),F=JSON.parse('{"path":"/v1.0.0/maintain/allowList-mgm.html","title":"Allow List Management","lang":"en-US","frontmatter":{"title":"Allow List Management","icon":"share"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Start here","slug":"start-here","link":"#start-here","children":[]}],"git":{"createdTime":1692708510000,"updatedTime":1698658900000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":1.3,"words":390},"filePathRelative":"v1.0.0/maintain/allowList-mgm.md","localizedDate":"August 22, 2023","excerpt":"
\\n
Caution
\\n
This is an outdated version of the Allow List Management documentation. Please use the current version, even if you use an outdated DSF version.
\\n
\\n
You can read all about the concept of Allow Lists here.
"}');export{T as comp,F as data};
diff --git a/assets/allowList-mgm.html-rjZU3I6G.js b/assets/allowList-mgm.html-rjZU3I6G.js
new file mode 100644
index 000000000..59d0d1c2a
--- /dev/null
+++ b/assets/allowList-mgm.html-rjZU3I6G.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as h,a as e,b as t,d as i,w as c,e as a}from"./app-kq9lCQfY.js";const u={},d=e("div",{class:"hint-container caution"},[e("p",{class:"hint-container-title"},"Caution"),e("p",null,[t("This is an outdated version of the Allow List Management documentation. Please use "),e("a",{href:"/stable//maintain/allowList-mgm"},"the current version"),t(", even if you use an outdated DSF version.")])],-1),m=a('
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 your personal client certificate or the client certificate from your DSF BPE, which needs to be added to your webbrowser. For instructions on how to add a client certificate to your browser, please follow here. Currently, the Allow List Management Tool is only for DSF TEST infrastructure. For production, please write us an E-Mail with your information.
',4),p=e("li",null,[t("Deployed DSF instance (test infrastructure)"),e("br"),t(" 1.1 If none exists yet, read "),e("a",{href:"install"},"here")],-1),f=e("li",null,[t("Certificate"),e("br"),t(" 2.1 If none exists yet, read "),e("a",{href:"install#client-server-certificates"},"here")],-1),w={href:"http://hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},b={href:"https://gth.gecko.hs-heilbronn.de/fhir",target:"_blank",rel:"noopener noreferrer"},g=e("li",null,"Contact details from a responsible person of your organization",-1),v=e("li",null,"Access to the E-Mail address from your organization for verification",-1),_=a('
When you have fulfilled all the prerequisites, you can start managing your Allow Lists on the DSF Allow List Management Tool. At the beginning, a popup will appear where you have to select your certificate. Only then you will have access to the website.
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!
',3);function y(L,k){const r=o("RouteLink"),n=o("ExternalLinkIcon");return l(),h("div",null,[d,e("p",null,[t("You can read all about the concept of Allow Lists "),i(r,{to:"/intro/info/allowList.html"},{default:c(()=>[t("here")]),_:1}),t(".")]),m,e("ol",null,[p,f,e("li",null,[t("Organization identifier (FQDN of your organization website, e.g. "),e("em",null,[e("a",w,[t("hs-heilbronn.de"),i(n)])]),t(")")]),e("li",null,[t("FHIR Endpoint URL (e.g. "),e("em",null,[e("a",b,[t("https://gth.gecko.hs-heilbronn.de/fhir"),i(n)])]),t(" )")]),g,v]),_])}const A=s(u,[["render",y],["__file","allowList-mgm.html.vue"]]),F=JSON.parse('{"path":"/v1.2.0/maintain/allowList-mgm.html","title":"Allow List Management","lang":"en-US","frontmatter":{"title":"Allow List Management","icon":"share"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":2,"title":"Start here","slug":"start-here","link":"#start-here","children":[]}],"git":{"createdTime":1694544770000,"updatedTime":1698658900000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":1.3,"words":391},"filePathRelative":"v1.2.0/maintain/allowList-mgm.md","localizedDate":"September 12, 2023","excerpt":"
\\n
Caution
\\n
This is an outdated version of the Allow List Management documentation. Please use the current version, even if you use an outdated DSF version.
\\n
\\n
You can read all about the concept of Allow Lists here.
"}');export{A as comp,F as data};
diff --git a/assets/allowList.html-B_rp1UUL.js b/assets/allowList.html-B_rp1UUL.js
new file mode 100644
index 000000000..e55f75183
--- /dev/null
+++ b/assets/allowList.html-B_rp1UUL.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as n,c as s,a as e,d as l,w as r,b as a,e as c}from"./app-kq9lCQfY.js";const h="/photos/info/allowList/allowList-architecture.png",d={},m=c('
The main objective is to allow only authorized organizations to do what "we" allow them to do (e.g. query data). First, we need a list of organizations that we trust. Secondly, we need a way to ensure that the other party is a member of the parent organization. Thirdly, a list of actions we want to allow the organization to perform is needed. An organization can have different roles in different use cases.
The Allow List consists of Organization-, Endpoint- and OrganisationAffiliation- resources. With these resources the allow list defines communication partners and and parent organizations like research consortia and groups as well as the roles of each organization. Each DSF FHIR server stores their own allow list. To make sure that processes can be executed, parties must allow access via their allow list.
',5),w=e("h4",{id:"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",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#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"},[e("span",null,[a("Feel free to contact us via "),e("a",{href:"mailto:dsf-gecko@hs-heilbronn.de"}," E-Mail (dsf-gecko@hs-heilbronn.de)"),a(" and we will take care of your request as soon as possible.")])])],-1);function f(u,g){const t=i("RouteLink");return n(),s("div",null,[m,e("p",null,[l(t,{to:"/stable/maintain/allowList-mgm.html"},{default:r(()=>[a("Here")]),_:1}),a(" you can read all the information if you want to create or update an Allow List.")]),w])}const _=o(d,[["render",f],["__file","allowList.html.vue"]]),y=JSON.parse('{"path":"/intro/info/allowList.html","title":"Allow Lists","lang":"en-US","frontmatter":{"title":"Allow Lists","icon":"share"},"headers":[{"level":2,"title":"Goal","slug":"goal","link":"#goal","children":[]},{"level":2,"title":"Allow List Managment","slug":"allow-list-managment","link":"#allow-list-managment","children":[]}],"git":{"createdTime":1690473388000,"updatedTime":1699815669000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":6},{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.65,"words":196},"filePathRelative":"intro/info/allowList.md","localizedDate":"July 27, 2023","excerpt":"
Goal
\\n
The main objective is to allow only authorized organizations to do what \\"we\\" allow them to do (e.g. query data). \\nFirst, we need a list of organizations that we trust. Secondly, we need a way to ensure that the other party is a member of the parent organization. Thirdly, a list of actions we want to allow the organization to perform is needed. An organization can have different roles in different use cases.
The Data Sharing Framework implements a distributed business process engine based on the BPMN 2.0 and FHIR R4 standards. Every participating organisation (e.g. ORG. A) runs a FHIR endpoint accessible by other sites and a business process engine (BPE) in the local secured network. Once the DSF has been installed in an organisation, it can be used for multiple use cases.
The following architecture diagram also shows three organisations, each of which has installed the DSF. The FHIR endpoint (green) is located in a demilitarised zone (DMZ) and is accessible from outside for communication with other organisations. It can be compared to a mailbox. The Business Process Engine (BPE - blue) is located in the intranet of an organisation and is responsible for the execution of processes. The metaphor: control centre helps here.
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. It is important to understand that the DSF FHIR server is not used for persisting medical data.
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.
The DSF BPE uses websocket (WSS) and webservice (HTTPS) connections to communicate with the DSF FHIR server. FHIR resources are created, read, updated and deleted via HTTP requests against the FHIR webservice API. The FHIR subscription mechanism is used to communicate Task resources with status 'requested' and QuestionnaireResponse resources with status 'completed' to the BPE via websockets. When the BPE starts and before the websocket connections are established, 'requested' Task resources and 'completed' QuestionnaireResponse not seen by the BPE are read via webservice requests.
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.
You can find more information about the network setup here
',20),g=[m];function f(b,v){return t(),i("div",null,g)}const x=e(u,[["render",f],["__file","architecture.html.vue"]]),w=JSON.parse('{"path":"/intro/info/architecture.html","title":"Architecture","lang":"en-US","frontmatter":{"title":"Architecture","icon":"structure"},"headers":[{"level":2,"title":"DSF FHIR Server 📫","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":2,"title":"Business Process Engine (BPE)","slug":"business-process-engine-bpe","link":"#business-process-engine-bpe","children":[]},{"level":2,"title":"Flexible Deployment","slug":"flexible-deployment","link":"#flexible-deployment","children":[]},{"level":2,"title":"Network Setup & Additional Reverse Proxy in external DMZ","slug":"network-setup-additional-reverse-proxy-in-external-dmz","link":"#network-setup-additional-reverse-proxy-in-external-dmz","children":[]}],"git":{"createdTime":1690473388000,"updatedTime":1715003318000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":3},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":1.94,"words":582},"filePathRelative":"intro/info/architecture.md","localizedDate":"July 27, 2023","excerpt":"
The Data Sharing Framework implements a distributed business process engine based on the BPMN 2.0 and FHIR R4 standards. Every participating organisation (e.g. ORG. A) runs a FHIR endpoint accessible by other sites and a business process engine (BPE) in the local secured network. Once the DSF has been installed in an organisation, it can be used for multiple use cases.
"}');export{x as comp,w as data};
diff --git a/assets/authentication.html-BWH7DDfb.js b/assets/authentication.html-BWH7DDfb.js
new file mode 100644
index 000000000..784cd3ef9
--- /dev/null
+++ b/assets/authentication.html-BWH7DDfb.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as s,c as o,a as t,b as e,d as n,e as l}from"./app-kq9lCQfY.js";const c={},d={href:"https://www.pki.dfn.de/ueberblick-dfn-pki/",target:"_blank",rel:"noopener noreferrer"},h={href:"https://www.tmf-ev.de",target:"_blank",rel:"noopener noreferrer"},f={href:"https://doku.tid.dfn.de/de:dfnpki:start",target:"_blank",rel:"noopener noreferrer"},u={href:"https://www.pki.dfn.de/fileadmin/PKI/anleitungen/DFN-PKI-Zertifikatprofile_Global.pdf",target:"_blank",rel:"noopener noreferrer"},p=l('
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)
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)
',5);function v(b,g){const i=a("ExternalLinkIcon");return s(),o("div",null,[t("p",null,[e("Authentication of organizations within the DSF is handled by the use of X.509 client and server certificates. Currently the certificate authorities run by "),t("a",d,[e("DFN-PKI Global G2"),n(i)]),e(", "),t("a",h,[e("D-Trust via TMF e.V."),n(i)]),e(" and "),t("a",f,[e("GÉANT TCS via DFN"),n(i)]),e(" are supported. All participating organizations are entered in a distributed and synchronized allow-list of valid organizations and certificates.")]),t("p",null,[e("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 "),t("a",u,[e("DFN-PKI-Zertifikatprofile_Global.pdf"),n(i)])]),p])}const _=r(c,[["render",v],["__file","authentication.html.vue"]]),F=JSON.parse('{"path":"/oldstable/generalinformation/authentication.html","title":"Authentication","lang":"en-US","frontmatter":{"title":"Authentication","icon":"lock"},"headers":[{"level":2,"title":"Certificate Requests","slug":"certificate-requests","link":"#certificate-requests","children":[{"level":3,"title":"FHIR Endpoint","slug":"fhir-endpoint","link":"#fhir-endpoint","children":[]},{"level":3,"title":"Business Process Engine Server","slug":"business-process-engine-server","link":"#business-process-engine-server","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.94,"words":282},"filePathRelative":"oldstable/generalinformation/authentication.md","localizedDate":"August 23, 2023","excerpt":"
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, D-Trust via TMF e.V. and GÉANT TCS via DFN are supported. All participating organizations are entered in a distributed and synchronized allow-list of valid organizations and certificates.
"}');export{_ as comp,F as data};
diff --git a/assets/basics.html-DiVFM6ZX.js b/assets/basics.html-DiVFM6ZX.js
new file mode 100644
index 000000000..9fa138ff8
--- /dev/null
+++ b/assets/basics.html-DiVFM6ZX.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as r,c as d,a as e,b as t,d as a,e as s}from"./app-kq9lCQfY.js";const h="/photos/info/basics/interoperability.png",l="/photos/info/basics/bpmn1.png",c="/photos/info/basics/bpmn2.png",m={},p={href:"https://www.hl7.org/fhir/",target:"_blank",rel:"noopener noreferrer"},f={href:"https://www.bpmn.org/",target:"_blank",rel:"noopener noreferrer"},u=s('
Interoperability is the ability of different systems to work together as seamlessly as possible. We can divide interoperability into four levels.
The foundational level defines the basic interconnectivity requirements which are necessary for a system or application to securely transmit data to and receive data from another system or application. Techniques such as HTTPS or REST are used for this.
The second level is the structural level. It defines the format and the syntax of the data exchange. Therefore, data formats like JSON or XML can be used.
The semantic level ensures the correct interpretation of the contents of the exchanged data between the different systems. Therefore, information models as FHIR or CDA or medical terminology systems like SNOMED CT or ICD can be used.
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.
On the one hand we use FHIR because of the mentioned benefits. On the other hand FHIR fits great with BPMN and these two in combination are a great fit for what we do: Execute distributed data sharing Processes.
We do not need all 150 FHIR resources. The following FHIR resources are the ones we need and have implemented: ActivityDefinition, Binary, Bundle, CodeSystem, DocumentReference, Endpoint, Group, Library, Measure, MeasureReport, NamingSystem, Organization, Questionnaire, QuestionnaireResponse, ResearchStudy, StructureDefinition, Subscription, Task and ValueSet.
Don't worry, it is not important to understand them all now. But to understand why we use FHIR and BPMN, it is important to look at the ActivityDefinition and TaskResources on the FHIR side and the Message Events on the BPMN side. In the following picture you can see parts of BPMN. These Message Events enable the communication between different organizations. Every time there is a Message Event between two business processes, there is a corresponding TaskResource on the FHIR side. When one organization sends a message for example “do some work” to another organization or when we send a message to ourselves to start or continue a process, we do this by creating a FHIR TaskResource with the status “requested”. After that the Business Process Engine starts the work and the status switches to “in-progress” and if the work is done to “completed” or if there is a problem to “failed”.
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.
',7);function v(I,T){const n=o("ExternalLinkIcon");return r(),d("div",null,[e("p",null,[t("Here you can find some basic information about interoperability and the standards were using within the DSF before we go into details about the architecture. Here we only describe how the standards (FHIR and BPMN) are used within the DSF. If you want to gain a deeper knowledge of the standards, we recommend visiting these websites: "),e("a",p,[t("HL7 FHIR"),a(n)]),t(" and "),e("a",f,[t("BPMN"),a(n)])]),u,e("p",null,[e("a",b,[t("HL7 FHIR"),a(n)]),t(" 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."),g,t(" The FHIR profiles can be understood as a set of rules. They explain, for example, which attributes must be mandatorily specified or which terminology may be used. In addition, profiles and controlled vocabulary can be validated.")]),w,e("p",null,[e("a",y,[t("Business Process Modelling Notation"),a(n)]),t(" is a modelling language that can be used to model and implement processes. The models can be used for the documentation of processes and for communication between different stakeholders. Furthermore, BPMN forms a standardised bridge between process design and process implementation. This is because it simplifies implementation. These processes are executed by a Business Process Engine. Basically, a BPE is a server that can read and execute the business process. More about this in the section on architecture.")]),_])}const k=i(m,[["render",v],["__file","basics.html.vue"]]),B=JSON.parse('{"path":"/intro/info/basics.html","title":"Basics and Standards","lang":"en-US","frontmatter":{"title":"Basics and Standards","icon":"study"},"headers":[{"level":2,"title":"Interoperability","slug":"interoperability","link":"#interoperability","children":[]},{"level":2,"title":"HL7 FHIR 🔥","slug":"hl7-fhir","link":"#hl7-fhir","children":[]},{"level":2,"title":"BPMN","slug":"bpmn","link":"#bpmn","children":[]},{"level":2,"title":"Why are we using FHIR and BPMN?","slug":"why-are-we-using-fhir-and-bpmn","link":"#why-are-we-using-fhir-and-bpmn","children":[]}],"git":{"createdTime":1690473388000,"updatedTime":1690903993000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":4}]},"readingTime":{"minutes":2.59,"words":778},"filePathRelative":"intro/info/basics.md","localizedDate":"July 27, 2023","excerpt":"
Here you can find some basic information about interoperability and the standards were using within the DSF before we go into details about the architecture. Here we only describe how the standards (FHIR and BPMN) are used within the DSF. If you want to gain a deeper knowledge of the standards, we recommend visiting these websites: HL7 FHIR and BPMN
"}');export{k as comp,B as data};
diff --git a/assets/bpe.html-B_WYZYIU.js b/assets/bpe.html-B_WYZYIU.js
new file mode 100644
index 000000000..334cf48eb
--- /dev/null
+++ b/assets/bpe.html-B_WYZYIU.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as r,e as i}from"./app-kq9lCQfY.js";const t={},o=i('
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
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!
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
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
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
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
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.
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.
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
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
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
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
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
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
Recommendation: Configure username if proxy requires authentication
',118),l=[o];function n(d,a){return s(),r("div",null,l)}const _=e(t,[["render",n],["__file","bpe.html.vue"]]),f=JSON.parse('{"path":"/v1.0.0/maintain/configuration/bpe.html","title":"Parameters BPE Server","lang":"en-US","frontmatter":{},"headers":[{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-bpe-db-liquibase-forceunlock","link":"#dev-dsf-bpe-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-bpe-db-liquibase-lockwaittime","link":"#dev-dsf-bpe-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","link":"#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-bpe-db-liquibase-username","link":"#dev-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_URL","slug":"dev-dsf-bpe-db-url","link":"#dev-dsf-bpe-db-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"dev-dsf-bpe-db-user-camunda-group","link":"#dev-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","link":"#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"dev-dsf-bpe-db-user-camunda-username","link":"#dev-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_GROUP","slug":"dev-dsf-bpe-db-user-group","link":"#dev-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","link":"#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_USERNAME","slug":"dev-dsf-bpe-db-user-username","link":"#dev-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"dev-dsf-bpe-debug-log-message-onactivityend","link":"#dev-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"dev-dsf-bpe-debug-log-message-onactivitystart","link":"#dev-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"dev-dsf-bpe-debug-log-message-variables","link":"#dev-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-fhir-client-certificate","link":"#dev-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-fhir-client-certificate-private-key","link":"#dev-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-local-timeout-connect","link":"#dev-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-local-timeout-read","link":"#dev-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"dev-dsf-bpe-fhir-client-local-verbose","link":"#dev-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-remote-timeout-connect","link":"#dev-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-remote-timeout-read","link":"#dev-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"dev-dsf-bpe-fhir-client-remote-verbose","link":"#dev-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-bpe-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"dev-dsf-bpe-fhir-server-base-url","link":"#dev-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-bpe-fhir-server-organization-identifier-value","link":"#dev-dsf-bpe-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"dev-dsf-bpe-fhir-task-subscription-retry-max","link":"#dev-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"dev-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#dev-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-task-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-mail-client-certificate","link":"#dev-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-mail-client-certificate-private-key","link":"#dev-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_FROMADDRESS","slug":"dev-dsf-bpe-mail-fromaddress","link":"#dev-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_HOST","slug":"dev-dsf-bpe-mail-host","link":"#dev-dsf-bpe-mail-host","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","link":"#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PORT","slug":"dev-dsf-bpe-mail-port","link":"#dev-dsf-bpe-mail-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"dev-dsf-bpe-mail-replytoaddresses","link":"#dev-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"dev-dsf-bpe-mail-sendmailonerrorlogevent","link":"#dev-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"dev-dsf-bpe-mail-sendtestmailonstartup","link":"#dev-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"dev-dsf-bpe-mail-smime-p12keystore","link":"#dev-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","link":"#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSES","slug":"dev-dsf-bpe-mail-toaddresses","link":"#dev-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSESCC","slug":"dev-dsf-bpe-mail-toaddressescc","link":"#dev-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-mail-trust-server-certificate-cas","link":"#dev-dsf-bpe-mail-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USERNAME","slug":"dev-dsf-bpe-mail-username","link":"#dev-dsf-bpe-mail-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USESMTPS","slug":"dev-dsf-bpe-mail-usesmtps","link":"#dev-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_EXCLUDED","slug":"dev-dsf-bpe-process-excluded","link":"#dev-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"dev-dsf-bpe-process-fhir-server-retry-max","link":"#dev-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"dev-dsf-bpe-process-fhir-server-retry-sleep","link":"#dev-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"dev-dsf-bpe-process-plugin-directroy","link":"#dev-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_RETIRED","slug":"dev-dsf-bpe-process-retired","link":"#dev-dsf-bpe-process-retired","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":1692708510000,"updatedTime":1692778861000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":5.96,"words":1789},"filePathRelative":"v1.0.0/maintain/configuration/bpe.md","localizedDate":"August 22, 2023","excerpt":"\\n
Please also check common parameters for additional configuration options.
\\n
DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK
\\n
\\n
Property: dev.dsf.bpe.db.liquibase.forceUnlock
\\n
Required: No
\\n
Description: To force liquibase to unlock the migration lock set to true
\\n
Recommendation: Only use this option temporarily to unlock a stuck DB migration step
\\n
Default:false
\\n
"}');export{_ as comp,f as data};
diff --git a/assets/build.html-B99lTZFD.js b/assets/build.html-B99lTZFD.js
new file mode 100644
index 000000000..33d5014f6
--- /dev/null
+++ b/assets/build.html-B99lTZFD.js
@@ -0,0 +1,21 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o,c as l,a as e,b as t,d as s,e as r}from"./app-kq9lCQfY.js";const d={},c=r(`
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
`,8);function S(I,A){const i=n("ExternalLinkIcon");return o(),l("div",null,[c,e("ul",null,[u,e("li",null,[t("To access the FHIR endpoint ("),e("a",h,[t("https://localhost:8001/fhir/"),s(i)]),t("...) and BPE rest interface ("),e("a",m,[t("https://localhost:8002/bpe/"),s(i)]),t("...) via WebBrowser install "),p,t(" (Password: "),g,t(') 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 '),v,t(" from third-party access if you have installed the Test CA certificate in your certificate store.")])]),b,f,e("ul",null,[_,e("li",null,[t("To access the FHIR endpoint ("),e("a",k,[t("https://localhost/fhir/"),s(i)]),t("...) and BPE rest interface ("),e("a",x,[t("https://localhost:8443/bpe/"),s(i)]),t("...) via WebBrowser install "),T,t(" (Password: "),w,t(') 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 '),y,t(" from third-party access if you have installed the Test CA certificate in your certificate store.")])]),E])}const C=a(d,[["render",S],["__file","build.html.vue"]]),R=JSON.parse('{"path":"/oldstable/build/build.html","title":"Build and Test","lang":"en-US","frontmatter":{"title":"Build and Test","icon":"back-stage"},"headers":[{"level":2,"title":"Build Project","slug":"build-project","link":"#build-project","children":[]},{"level":2,"title":"Manual Integration Testing (without Docker)","slug":"manual-integration-testing-without-docker","link":"#manual-integration-testing-without-docker","children":[]},{"level":2,"title":"Manual Integration Testing (local with Docker)","slug":"manual-integration-testing-local-with-docker","link":"#manual-integration-testing-local-with-docker","children":[{"level":3,"title":"Troubleshooting","slug":"troubleshooting","link":"#troubleshooting","children":[]}]},{"level":2,"title":"Manual Integration Testing (VMs for Docker-Registry, 3 MeDICs, TTP)","slug":"manual-integration-testing-vms-for-docker-registry-3-medics-ttp","link":"#manual-integration-testing-vms-for-docker-registry-3-medics-ttp","children":[{"level":3,"title":"Starting the Processes","slug":"starting-the-processes","link":"#starting-the-processes","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.1,"words":630},"filePathRelative":"oldstable/build/build.md","localizedDate":"August 23, 2023","excerpt":"
Build Project
\\n
Prerequisite: Java 11, Maven 3.6, Docker
\\n
mvn install\\n
Manual Integration Testing (without Docker)
\\n
Prerequisite: Java 11, Maven 3.6, PostgreSQL 11
"}');export{C as comp,R as data};
diff --git a/assets/changingBpmnProcesses.html-BwQhn7Qm.js b/assets/changingBpmnProcesses.html-BwQhn7Qm.js
new file mode 100644
index 000000000..ab355c7e1
--- /dev/null
+++ b/assets/changingBpmnProcesses.html-BwQhn7Qm.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const s={},i=n("
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.
",5),a=[i];function r(c,d){return t(),o("div",null,a)}const h=e(s,[["render",r],["__file","changingBpmnProcesses.html.vue"]]),m=JSON.parse('{"path":"/oldstable/code/changingBpmnProcesses.html","title":"Changing BPMN Processes by Service Task Overwrites","lang":"en-US","frontmatter":{"title":"Changing BPMN Processes by Service Task Overwrites","icon":"code"},"headers":[],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.54,"words":162},"filePathRelative":"oldstable/code/changingBpmnProcesses.md","localizedDate":"August 23, 2023","excerpt":"
\\n
DEPRECATED SINCE VERSION 0.4.0
\\n
\\n
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.
"}');export{h as comp,m as data};
diff --git a/assets/code.html-CSLPHq93.js b/assets/code.html-CSLPHq93.js
new file mode 100644
index 000000000..b7cebbd86
--- /dev/null
+++ b/assets/code.html-CSLPHq93.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as l,c as a,a as e,b as t,d as o,e as r}from"./app-kq9lCQfY.js";const c={},h=r('
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.
You can import our code style for your specific IDE:
',7),d={href:"https://github.com/datasharingframework/dsf/blob/main/src/main/resources/eclipse-formatter-config.xml",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"Java",-1),p=e("code",null,"Code style",-1),g=e("code",null,"Formatter",-1),m=e("code",null,"Import",-1),f={href:"https://github.com/datasharingframework/dsf/blob/main/src/main/resources/intellij-formatter-config.xml",target:"_blank",rel:"noopener noreferrer"},b=e("code",null,"Editor",-1),_=e("code",null,"Code style",-1),v=e("code",null,"Java",-1),y=e("code",null,"import scheme",-1),w=e("code",null,"IntelliJ",-1),k=e("p",null,[t("Pull requests will only be approved if the code is formatted according to the code style configurations above. To format the code with maven before pushing to GitHub, use "),e("code",null,"mvn compile -Pformat-and-sort"),t(".")],-1),x=e("h3",{id:"branching-strategy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#branching-strategy"},[e("span",null,"Branching strategy")])],-1),S={href:"https://www.atlassian.com/de/git/tutorials/comparing-workflows/gitflow-workflow",target:"_blank",rel:"noopener noreferrer"},D=r('
main
develop
issue
hotfix
release
Notice that only the first two elements listed are actual branches. The other elements are containers to hold all branches belonging to that category.
',10),F={href:"https://www.docker.com/",target:"_blank",rel:"noopener noreferrer"},q=e("h3",{id:"maven",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#maven"},[e("span",null,"Maven")])],-1),T={href:"https://maven.apache.org/",target:"_blank",rel:"noopener noreferrer"},j=e("br",null,null,-1),C=e("em",null,"Important:",-1),B=e("br",null,null,-1),I=e("em",null,"Could not determine gpg version",-1),J={href:"https://gnupg.org/",target:"_blank",rel:"noopener noreferrer"},N=e("code",null,"-Dgpg.skip",-1),E=e("h2",{id:"workflow",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#workflow"},[e("span",null,"Workflow")])],-1),G=e("li",null,"Create an issue or comment on an issue that you want to contribute some feature",-1),P=e("li",null,"Fork the repository, create a branch and mention it in the issue",-1),W=e("li",null,"If you desire feedback, create a pull request or comment on it in the issue. Feel free to @ any member with write permissions if you feel like your request has not been registered yet. They will review your changes and/or change requests",-1),z={href:"https://github.com/datasharingframework/dsf/pulls",target:"_blank",rel:"noopener noreferrer"},M=r('
We follow Martin Fowler's method for managing pull requests. This approach categorizes pull requests based on the level of trust and experience of the contributor, as well as the impact of the changes. Here's how we apply it:
Ship: For our most trusted contributors with a proven track record. These members can merge their pull requests without prior review, typically for minor or highly confident changes.
Show: This level is for trusted contributors who need some oversight, as well as for experienced developers who want to demonstrate how certain changes should be made in the future. They create pull requests and show their work to the team.
Ask: New or less experienced contributors, as well as those submitting more complex changes, fall into this category. They are required to ask for feedback and approval before their changes can be merged, ensuring thorough review and quality control.
This method helps us maintain a balance between code quality and efficient development, recognizing the varying levels of expertise among our contributors.
',4),V={href:"https://martinfowler.com/articles/ship-show-ask.html",target:"_blank",rel:"noopener noreferrer"},O=e("h2",{id:"data-security-in-dsf-development",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#data-security-in-dsf-development"},[e("span",null,"Data Security in DSF Development")])],-1),R=e("p",null,"The DSF (Data Sharing Framework) and its process plugins are frequently used to transmit sensitive personal data. To prevent the release of personal data during development, please adhere to the following guidelines:",-1),Y=e("ul",null,[e("li",null,[e("strong",null,"No development with real personal data:"),t(" Always use anonymized or synthetic data for development purposes.")]),e("li",null,[e("strong",null,"No personal data in repositories:"),t(" Ensure no personal data is present in local and remote repositories intended for publication, not even temporarily.")]),e("li",null,[e("strong",null,"Review all log files:"),t(" Before using log files in issues, examples, etc., thoroughly review them to ensure no personal and sensitive data is included.")])],-1);function A(H,L){const n=s("ExternalLinkIcon");return l(),a("div",null,[h,e("ul",null,[e("li",null,[e("a",d,[t("Eclipse"),o(n)]),t(". Open your preferences, click on "),u,t(", "),p,t(", "),g,t(", "),m,t(" and select the downloaded file.")]),e("li",null,[e("a",f,[t("IntelliJ"),o(n)]),t(". Open your settings, click on "),b,t(", "),_,t(", "),v,t(", the settings icon, "),y,t(", "),w,t(" and select the downloaded file.")])]),k,x,e("p",null,[e("a",S,[t("Git Flow"),o(n)]),t(" is used as this project's branching strategy. Therefore, you will find the following structure:")]),D,e("p",null,[e("a",F,[t("Docker"),o(n)]),t(" is used in this project to test database functionality and to run more complex test-setups.")]),q,e("p",null,[t("The project relies on "),e("a",T,[t("Maven"),o(n)]),t(" as its management tool."),j,C,t(" When building the project you might encounter the following error:"),B,I,t(),e("a",J,[t("GPG"),o(n)]),t(" is used to sign artifacts for public release. Since this does not concern contributors, you may skip this step in the maven build process with "),N,t(".")]),E,e("ol",null,[G,P,W,e("li",null,[t("If your changes are production-ready, create a "),e("a",z,[t("pull request"),o(n)]),t(".")])]),M,e("p",null,[t("For more information on Fowler's approach, visit "),e("a",V,[t("Martin Fowler's article on Pull Requests"),o(n)]),t(".")]),O,R,Y])}const Q=i(c,[["render",A],["__file","code.html.vue"]]),X=JSON.parse('{"path":"/stable/contribute/code.html","title":"Contribute code","lang":"en-US","frontmatter":{"title":"Contribute code","icon":"info"},"headers":[{"level":3,"title":"Benefits of Contributing:","slug":"benefits-of-contributing","link":"#benefits-of-contributing","children":[]},{"level":2,"title":"General","slug":"general","link":"#general","children":[{"level":3,"title":"Code style","slug":"code-style","link":"#code-style","children":[]},{"level":3,"title":"Branching strategy","slug":"branching-strategy","link":"#branching-strategy","children":[]}]},{"level":2,"title":"Setting up the project","slug":"setting-up-the-project","link":"#setting-up-the-project","children":[{"level":3,"title":"Java","slug":"java","link":"#java","children":[]},{"level":3,"title":"Docker","slug":"docker","link":"#docker","children":[]},{"level":3,"title":"Maven","slug":"maven","link":"#maven","children":[]}]},{"level":2,"title":"Workflow","slug":"workflow","link":"#workflow","children":[{"level":3,"title":"Pull request process","slug":"pull-request-process","link":"#pull-request-process","children":[]}]},{"level":2,"title":"Data Security in DSF Development","slug":"data-security-in-dsf-development","link":"#data-security-in-dsf-development","children":[]}],"git":{"createdTime":null,"updatedTime":null,"contributors":[]},"readingTime":{"minutes":2.51,"words":754},"filePathRelative":"stable/contribute/code.md","excerpt":"
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.
\\n
Benefits of Contributing:
\\n
\\n
Foster community growth and diversification.
\\n
Sharpen your coding skills.
\\n
Gain recognition in the DSF community.
\\n
Directly impact the future of data sharing in medicine.
\\n
"}');export{Q as comp,X as data};
diff --git a/assets/code.html-CmhEnLZF.js b/assets/code.html-CmhEnLZF.js
new file mode 100644
index 000000000..e42295b1e
--- /dev/null
+++ b/assets/code.html-CmhEnLZF.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as l,c as a,a as e,b as t,d as o,e as r}from"./app-kq9lCQfY.js";const c={},h=r('
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.
You can import our code style for your specific IDE:
',7),d={href:"https://github.com/datasharingframework/dsf/blob/main/src/main/resources/eclipse-formatter-config.xml",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"Java",-1),p=e("code",null,"Code style",-1),m=e("code",null,"Formatter",-1),g=e("code",null,"Import",-1),f={href:"https://github.com/datasharingframework/dsf/blob/main/src/main/resources/intellij-formatter-config.xml",target:"_blank",rel:"noopener noreferrer"},b=e("code",null,"Editor",-1),_=e("code",null,"Code style",-1),v=e("code",null,"Java",-1),w=e("code",null,"import scheme",-1),y=e("code",null,"IntelliJ",-1),k=e("p",null,[t("Pull requests will only be approved if the code is formatted according to the code style configurations above. To format the code with maven before pushing to GitHub, use "),e("code",null,"mvn compile -Pformat-and-sort"),t(".")],-1),x=e("h3",{id:"branching-strategy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#branching-strategy"},[e("span",null,"Branching strategy")])],-1),S={href:"https://www.atlassian.com/de/git/tutorials/comparing-workflows/gitflow-workflow",target:"_blank",rel:"noopener noreferrer"},D=r('
main
develop
issue
hotfix
release
Notice that only the first two elements listed are actual branches. The other elements are containers to hold all branches belonging to that category.
',10),F={href:"https://www.docker.com/",target:"_blank",rel:"noopener noreferrer"},q=e("h3",{id:"maven",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#maven"},[e("span",null,"Maven")])],-1),T={href:"https://maven.apache.org/",target:"_blank",rel:"noopener noreferrer"},j=e("br",null,null,-1),C=e("em",null,"Important:",-1),B=e("br",null,null,-1),I=e("em",null,"Could not determine gpg version",-1),J={href:"https://gnupg.org/",target:"_blank",rel:"noopener noreferrer"},N=e("code",null,"-Dgpg.skip",-1),z=e("h2",{id:"workflow",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#workflow"},[e("span",null,"Workflow")])],-1),E=e("li",null,"Create an issue or comment on an issue that you want to contribute some feature",-1),G=e("li",null,"Fork the repository, create a branch and mention it in the issue",-1),P=e("li",null,"If you desire feedback, create a pull request or comment on it in the issue. Feel free to @ any member with write permissions if you feel like your request has not been registered yet. They will review your changes and/or change requests",-1),W={href:"https://github.com/datasharingframework/dsf/pulls",target:"_blank",rel:"noopener noreferrer"},M=r('
We follow Martin Fowler's method for managing pull requests. This approach categorizes pull requests based on the level of trust and experience of the contributor, as well as the impact of the changes. Here's how we apply it:
Ship: For our most trusted contributors with a proven track record. These members can merge their pull requests without prior review, typically for minor or highly confident changes.
Show: This level is for trusted contributors who need some oversight, as well as for experienced developers who want to demonstrate how certain changes should be made in the future. They create pull requests and show their work to the team.
Ask: New or less experienced contributors, as well as those submitting more complex changes, fall into this category. They are required to ask for feedback and approval before their changes can be merged, ensuring thorough review and quality control.
This method helps us maintain a balance between code quality and efficient development, recognizing the varying levels of expertise among our contributors.
',4),V={href:"https://martinfowler.com/articles/ship-show-ask.html",target:"_blank",rel:"noopener noreferrer"},O=e("h2",{id:"data-security-in-dsf-development",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#data-security-in-dsf-development"},[e("span",null,"Data Security in DSF Development")])],-1),R=e("p",null,"The DSF (Data Sharing Framework) and its process plugins are frequently used to transmit sensitive personal data. To prevent the release of personal data during development, please adhere to the following guidelines:",-1),Y=e("ul",null,[e("li",null,[e("strong",null,"No development with real personal data:"),t(" Always use anonymized or synthetic data for development purposes.")]),e("li",null,[e("strong",null,"No personal data in repositories:"),t(" Ensure no personal data is present in local and remote repositories intended for publication, not even temporarily.")]),e("li",null,[e("strong",null,"Review all log files:"),t(" Before using log files in issues, examples, etc., thoroughly review them to ensure no personal and sensitive data is included.")])],-1);function A(H,L){const n=s("ExternalLinkIcon");return l(),a("div",null,[h,e("ul",null,[e("li",null,[e("a",d,[t("Eclipse"),o(n)]),t(". Open your preferences, click on "),u,t(", "),p,t(", "),m,t(", "),g,t(" and select the downloaded file.")]),e("li",null,[e("a",f,[t("IntelliJ"),o(n)]),t(". Open your settings, click on "),b,t(", "),_,t(", "),v,t(", the settings icon, "),w,t(", "),y,t(" and select the downloaded file.")])]),k,x,e("p",null,[e("a",S,[t("Git Flow"),o(n)]),t(" is used as this project's branching strategy. Therefore, you will find the following structure:")]),D,e("p",null,[e("a",F,[t("Docker"),o(n)]),t(" is used in this project to test database functionality and to run more complex test-setups.")]),q,e("p",null,[t("The project relies on "),e("a",T,[t("Maven"),o(n)]),t(" as its management tool."),j,C,t(" When building the project you might encounter the following error:"),B,I,t(),e("a",J,[t("GPG"),o(n)]),t(" is used to sign artifacts for public release. Since this does not concern contributors, you may skip this step in the maven build process with "),N,t(".")]),z,e("ol",null,[E,G,P,e("li",null,[t("If your changes are production-ready, create a "),e("a",W,[t("pull request"),o(n)]),t(".")])]),M,e("p",null,[t("For more information on Fowler's approach, visit "),e("a",V,[t("Martin Fowler's article on Pull Requests"),o(n)]),t(".")]),O,R,Y])}const Q=i(c,[["render",A],["__file","code.html.vue"]]),X=JSON.parse('{"path":"/v1.5.0/contribute/code.html","title":"Contribute code","lang":"en-US","frontmatter":{"title":"Contribute code","icon":"info"},"headers":[{"level":3,"title":"Benefits of Contributing:","slug":"benefits-of-contributing","link":"#benefits-of-contributing","children":[]},{"level":2,"title":"General","slug":"general","link":"#general","children":[{"level":3,"title":"Code style","slug":"code-style","link":"#code-style","children":[]},{"level":3,"title":"Branching strategy","slug":"branching-strategy","link":"#branching-strategy","children":[]}]},{"level":2,"title":"Setting up the project","slug":"setting-up-the-project","link":"#setting-up-the-project","children":[{"level":3,"title":"Java","slug":"java","link":"#java","children":[]},{"level":3,"title":"Docker","slug":"docker","link":"#docker","children":[]},{"level":3,"title":"Maven","slug":"maven","link":"#maven","children":[]}]},{"level":2,"title":"Workflow","slug":"workflow","link":"#workflow","children":[{"level":3,"title":"Pull request process","slug":"pull-request-process","link":"#pull-request-process","children":[]}]},{"level":2,"title":"Data Security in DSF Development","slug":"data-security-in-dsf-development","link":"#data-security-in-dsf-development","children":[]}],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.51,"words":754},"filePathRelative":"v1.5.0/contribute/code.md","localizedDate":"February 20, 2024","excerpt":"
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.
\\n
Benefits of Contributing:
\\n
\\n
Foster community growth and diversification.
\\n
Sharpen your coding skills.
\\n
Gain recognition in the DSF community.
\\n
Directly impact the future of data sharing in medicine.
\\n
"}');export{Q as comp,X as data};
diff --git a/assets/code.html-D79wY7A-.js b/assets/code.html-D79wY7A-.js
new file mode 100644
index 000000000..1ddf9cf9e
--- /dev/null
+++ b/assets/code.html-D79wY7A-.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as l,c as a,a as e,b as t,d as o,e as r}from"./app-kq9lCQfY.js";const c={},h=r('
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.
You can import our code style for your specific IDE:
',7),d={href:"https://github.com/datasharingframework/dsf/blob/main/src/main/resources/eclipse-formatter-config.xml",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"Java",-1),p=e("code",null,"Code style",-1),m=e("code",null,"Formatter",-1),g=e("code",null,"Import",-1),f={href:"https://github.com/datasharingframework/dsf/blob/main/src/main/resources/intellij-formatter-config.xml",target:"_blank",rel:"noopener noreferrer"},b=e("code",null,"Editor",-1),_=e("code",null,"Code style",-1),v=e("code",null,"Java",-1),y=e("code",null,"import scheme",-1),w=e("code",null,"IntelliJ",-1),k=e("p",null,[t("Pull requests will only be approved if the code is formatted according to the code style configurations above. To format the code with maven before pushing to GitHub, use "),e("code",null,"mvn compile -Pformat-and-sort"),t(".")],-1),x=e("h3",{id:"branching-strategy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#branching-strategy"},[e("span",null,"Branching strategy")])],-1),D={href:"https://www.atlassian.com/de/git/tutorials/comparing-workflows/gitflow-workflow",target:"_blank",rel:"noopener noreferrer"},S=r('
main
develop
issue
hotfix
release
Notice that only the first two elements listed are actual branches. The other elements are containers to hold all branches belonging to that category.
',10),F={href:"https://www.docker.com/",target:"_blank",rel:"noopener noreferrer"},q=e("h3",{id:"maven",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#maven"},[e("span",null,"Maven")])],-1),T={href:"https://maven.apache.org/",target:"_blank",rel:"noopener noreferrer"},j=e("br",null,null,-1),C=e("em",null,"Important:",-1),B=e("br",null,null,-1),J=e("em",null,"Could not determine gpg version",-1),I={href:"https://gnupg.org/",target:"_blank",rel:"noopener noreferrer"},N=e("code",null,"-Dgpg.skip",-1),E=e("h2",{id:"workflow",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#workflow"},[e("span",null,"Workflow")])],-1),G=e("li",null,"Create an issue or comment on an issue that you want to contribute some feature",-1),P=e("li",null,"Fork the repository, create a branch and mention it in the issue",-1),z=e("li",null,"If you desire feedback, create a pull request or comment on it in the issue. Feel free to @ any member with write permissions if you feel like your request has not been registered yet. They will review your changes and/or change requests",-1),W={href:"https://github.com/datasharingframework/dsf/pulls",target:"_blank",rel:"noopener noreferrer"},M=r('
We follow Martin Fowler's method for managing pull requests. This approach categorizes pull requests based on the level of trust and experience of the contributor, as well as the impact of the changes. Here's how we apply it:
Ship: For our most trusted contributors with a proven track record. These members can merge their pull requests without prior review, typically for minor or highly confident changes.
Show: This level is for trusted contributors who need some oversight, as well as for experienced developers who want to demonstrate how certain changes should be made in the future. They create pull requests and show their work to the team.
Ask: New or less experienced contributors, as well as those submitting more complex changes, fall into this category. They are required to ask for feedback and approval before their changes can be merged, ensuring thorough review and quality control.
This method helps us maintain a balance between code quality and efficient development, recognizing the varying levels of expertise among our contributors.
',4),H={href:"https://martinfowler.com/articles/ship-show-ask.html",target:"_blank",rel:"noopener noreferrer"},V=e("h2",{id:"data-security-in-dsf-development",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#data-security-in-dsf-development"},[e("span",null,"Data Security in DSF Development")])],-1),O=e("p",null,"The DSF (Data Sharing Framework) and its process plugins are frequently used to transmit sensitive personal data. To prevent the release of personal data during development, please adhere to the following guidelines:",-1),R=e("ul",null,[e("li",null,[e("strong",null,"No development with real personal data:"),t(" Always use anonymized or synthetic data for development purposes.")]),e("li",null,[e("strong",null,"No personal data in repositories:"),t(" Ensure no personal data is present in local and remote repositories intended for publication, not even temporarily.")]),e("li",null,[e("strong",null,"Review all log files:"),t(" Before using log files in issues, examples, etc., thoroughly review them to ensure no personal and sensitive data is included.")])],-1);function Y(A,L){const n=s("ExternalLinkIcon");return l(),a("div",null,[h,e("ul",null,[e("li",null,[e("a",d,[t("Eclipse"),o(n)]),t(". Open your preferences, click on "),u,t(", "),p,t(", "),m,t(", "),g,t(" and select the downloaded file.")]),e("li",null,[e("a",f,[t("IntelliJ"),o(n)]),t(". Open your settings, click on "),b,t(", "),_,t(", "),v,t(", the settings icon, "),y,t(", "),w,t(" and select the downloaded file.")])]),k,x,e("p",null,[e("a",D,[t("Git Flow"),o(n)]),t(" is used as this project's branching strategy. Therefore, you will find the following structure:")]),S,e("p",null,[e("a",F,[t("Docker"),o(n)]),t(" is used in this project to test database functionality and to run more complex test-setups.")]),q,e("p",null,[t("The project relies on "),e("a",T,[t("Maven"),o(n)]),t(" as its management tool."),j,C,t(" When building the project you might encounter the following error:"),B,J,t(),e("a",I,[t("GPG"),o(n)]),t(" is used to sign artifacts for public release. Since this does not concern contributors, you may skip this step in the maven build process with "),N,t(".")]),E,e("ol",null,[G,P,z,e("li",null,[t("If your changes are production-ready, create a "),e("a",W,[t("pull request"),o(n)]),t(".")])]),M,e("p",null,[t("For more information on Fowler's approach, visit "),e("a",H,[t("Martin Fowler's article on Pull Requests"),o(n)]),t(".")]),V,O,R])}const Q=i(c,[["render",Y],["__file","code.html.vue"]]),X=JSON.parse('{"path":"/v1.5.2/contribute/code.html","title":"Contribute code","lang":"en-US","frontmatter":{"title":"Contribute code","icon":"info"},"headers":[{"level":3,"title":"Benefits of Contributing:","slug":"benefits-of-contributing","link":"#benefits-of-contributing","children":[]},{"level":2,"title":"General","slug":"general","link":"#general","children":[{"level":3,"title":"Code style","slug":"code-style","link":"#code-style","children":[]},{"level":3,"title":"Branching strategy","slug":"branching-strategy","link":"#branching-strategy","children":[]}]},{"level":2,"title":"Setting up the project","slug":"setting-up-the-project","link":"#setting-up-the-project","children":[{"level":3,"title":"Java","slug":"java","link":"#java","children":[]},{"level":3,"title":"Docker","slug":"docker","link":"#docker","children":[]},{"level":3,"title":"Maven","slug":"maven","link":"#maven","children":[]}]},{"level":2,"title":"Workflow","slug":"workflow","link":"#workflow","children":[{"level":3,"title":"Pull request process","slug":"pull-request-process","link":"#pull-request-process","children":[]}]},{"level":2,"title":"Data Security in DSF Development","slug":"data-security-in-dsf-development","link":"#data-security-in-dsf-development","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.51,"words":754},"filePathRelative":"v1.5.2/contribute/code.md","localizedDate":"July 8, 2024","excerpt":"
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.
\\n
Benefits of Contributing:
\\n
\\n
Foster community growth and diversification.
\\n
Sharpen your coding skills.
\\n
Gain recognition in the DSF community.
\\n
Directly impact the future of data sharing in medicine.
\\n
"}');export{Q as comp,X as data};
diff --git a/assets/code.html-D_-BLqzB.js b/assets/code.html-D_-BLqzB.js
new file mode 100644
index 000000000..691ab73b1
--- /dev/null
+++ b/assets/code.html-D_-BLqzB.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as l,c as a,a as e,b as t,d as o,e as r}from"./app-kq9lCQfY.js";const c={},h=r('
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.
You can import our code style for your specific IDE:
',7),d={href:"https://github.com/datasharingframework/dsf/blob/main/src/main/resources/eclipse-formatter-config.xml",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"Java",-1),p=e("code",null,"Code style",-1),m=e("code",null,"Formatter",-1),g=e("code",null,"Import",-1),f={href:"https://github.com/datasharingframework/dsf/blob/main/src/main/resources/intellij-formatter-config.xml",target:"_blank",rel:"noopener noreferrer"},b=e("code",null,"Editor",-1),_=e("code",null,"Code style",-1),v=e("code",null,"Java",-1),w=e("code",null,"import scheme",-1),y=e("code",null,"IntelliJ",-1),k=e("p",null,[t("Pull requests will only be approved if the code is formatted according to the code style configurations above. To format the code with maven before pushing to GitHub, use "),e("code",null,"mvn compile -Pformat-and-sort"),t(".")],-1),x=e("h3",{id:"branching-strategy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#branching-strategy"},[e("span",null,"Branching strategy")])],-1),S={href:"https://www.atlassian.com/de/git/tutorials/comparing-workflows/gitflow-workflow",target:"_blank",rel:"noopener noreferrer"},D=r('
main
develop
issue
hotfix
release
Notice that only the first two elements listed are actual branches. The other elements are containers to hold all branches belonging to that category.
',10),F={href:"https://www.docker.com/",target:"_blank",rel:"noopener noreferrer"},q=e("h3",{id:"maven",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#maven"},[e("span",null,"Maven")])],-1),T={href:"https://maven.apache.org/",target:"_blank",rel:"noopener noreferrer"},j=e("br",null,null,-1),C=e("em",null,"Important:",-1),B=e("br",null,null,-1),I=e("em",null,"Could not determine gpg version",-1),J={href:"https://gnupg.org/",target:"_blank",rel:"noopener noreferrer"},N=e("code",null,"-Dgpg.skip",-1),z=e("h2",{id:"workflow",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#workflow"},[e("span",null,"Workflow")])],-1),E=e("li",null,"Create an issue or comment on an issue that you want to contribute some feature",-1),G=e("li",null,"Fork the repository, create a branch and mention it in the issue",-1),P=e("li",null,"If you desire feedback, create a pull request or comment on it in the issue. Feel free to @ any member with write permissions if you feel like your request has not been registered yet. They will review your changes and/or change requests",-1),W={href:"https://github.com/datasharingframework/dsf/pulls",target:"_blank",rel:"noopener noreferrer"},M=r('
We follow Martin Fowler's method for managing pull requests. This approach categorizes pull requests based on the level of trust and experience of the contributor, as well as the impact of the changes. Here's how we apply it:
Ship: For our most trusted contributors with a proven track record. These members can merge their pull requests without prior review, typically for minor or highly confident changes.
Show: This level is for trusted contributors who need some oversight, as well as for experienced developers who want to demonstrate how certain changes should be made in the future. They create pull requests and show their work to the team.
Ask: New or less experienced contributors, as well as those submitting more complex changes, fall into this category. They are required to ask for feedback and approval before their changes can be merged, ensuring thorough review and quality control.
This method helps us maintain a balance between code quality and efficient development, recognizing the varying levels of expertise among our contributors.
',4),V={href:"https://martinfowler.com/articles/ship-show-ask.html",target:"_blank",rel:"noopener noreferrer"},A=e("h2",{id:"data-security-in-dsf-development",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#data-security-in-dsf-development"},[e("span",null,"Data Security in DSF Development")])],-1),O=e("p",null,"The DSF (Data Sharing Framework) and its process plugins are frequently used to transmit sensitive personal data. To prevent the release of personal data during development, please adhere to the following guidelines:",-1),R=e("ul",null,[e("li",null,[e("strong",null,"No development with real personal data:"),t(" Always use anonymized or synthetic data for development purposes.")]),e("li",null,[e("strong",null,"No personal data in repositories:"),t(" Ensure no personal data is present in local and remote repositories intended for publication, not even temporarily.")]),e("li",null,[e("strong",null,"Review all log files:"),t(" Before using log files in issues, examples, etc., thoroughly review them to ensure no personal and sensitive data is included.")])],-1);function Y(H,L){const n=s("ExternalLinkIcon");return l(),a("div",null,[h,e("ul",null,[e("li",null,[e("a",d,[t("Eclipse"),o(n)]),t(". Open your preferences, click on "),u,t(", "),p,t(", "),m,t(", "),g,t(" and select the downloaded file.")]),e("li",null,[e("a",f,[t("IntelliJ"),o(n)]),t(". Open your settings, click on "),b,t(", "),_,t(", "),v,t(", the settings icon, "),w,t(", "),y,t(" and select the downloaded file.")])]),k,x,e("p",null,[e("a",S,[t("Git Flow"),o(n)]),t(" is used as this project's branching strategy. Therefore, you will find the following structure:")]),D,e("p",null,[e("a",F,[t("Docker"),o(n)]),t(" is used in this project to test database functionality and to run more complex test-setups.")]),q,e("p",null,[t("The project relies on "),e("a",T,[t("Maven"),o(n)]),t(" as its management tool."),j,C,t(" When building the project you might encounter the following error:"),B,I,t(),e("a",J,[t("GPG"),o(n)]),t(" is used to sign artifacts for public release. Since this does not concern contributors, you may skip this step in the maven build process with "),N,t(".")]),z,e("ol",null,[E,G,P,e("li",null,[t("If your changes are production-ready, create a "),e("a",W,[t("pull request"),o(n)]),t(".")])]),M,e("p",null,[t("For more information on Fowler's approach, visit "),e("a",V,[t("Martin Fowler's article on Pull Requests"),o(n)]),t(".")]),A,O,R])}const Q=i(c,[["render",Y],["__file","code.html.vue"]]),X=JSON.parse('{"path":"/v1.5.1/contribute/code.html","title":"Contribute code","lang":"en-US","frontmatter":{"title":"Contribute code","icon":"info"},"headers":[{"level":3,"title":"Benefits of Contributing:","slug":"benefits-of-contributing","link":"#benefits-of-contributing","children":[]},{"level":2,"title":"General","slug":"general","link":"#general","children":[{"level":3,"title":"Code style","slug":"code-style","link":"#code-style","children":[]},{"level":3,"title":"Branching strategy","slug":"branching-strategy","link":"#branching-strategy","children":[]}]},{"level":2,"title":"Setting up the project","slug":"setting-up-the-project","link":"#setting-up-the-project","children":[{"level":3,"title":"Java","slug":"java","link":"#java","children":[]},{"level":3,"title":"Docker","slug":"docker","link":"#docker","children":[]},{"level":3,"title":"Maven","slug":"maven","link":"#maven","children":[]}]},{"level":2,"title":"Workflow","slug":"workflow","link":"#workflow","children":[{"level":3,"title":"Pull request process","slug":"pull-request-process","link":"#pull-request-process","children":[]}]},{"level":2,"title":"Data Security in DSF Development","slug":"data-security-in-dsf-development","link":"#data-security-in-dsf-development","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.51,"words":754},"filePathRelative":"v1.5.1/contribute/code.md","localizedDate":"April 17, 2024","excerpt":"
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.
\\n
Benefits of Contributing:
\\n
\\n
Foster community growth and diversification.
\\n
Sharpen your coding skills.
\\n
Gain recognition in the DSF community.
\\n
Directly impact the future of data sharing in medicine.
\\n
"}');export{Q as comp,X as data};
diff --git a/assets/code.html-Da8veOhR.js b/assets/code.html-Da8veOhR.js
new file mode 100644
index 000000000..56d23ced0
--- /dev/null
+++ b/assets/code.html-Da8veOhR.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as r,c as d,a as e,d as l,w as a,b as o}from"./app-kq9lCQfY.js";const c={},h=e("h2",{id:"code-style",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#code-style"},[e("span",null,"Code Style")])],-1),u=e("p",null,"HiGHmed DSF code-style configurations for Eclipse and IntelliJ IDEA can be found here:",-1),m=e("p",null,[o("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 "),e("code",null,"mvn compile -Pformat-and-sort"),o(".")],-1),f=e("h2",{id:"git-workflow",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#git-workflow"},[e("span",null,"Git Workflow")])],-1),p=e("code",null,"git-flow",-1),_={href:"https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow",target:"_blank",rel:"noopener noreferrer"},b=e("br",null,null,-1),g=e("code",null,"develop",-1),w=e("code",null,"master",-1),k=e("h3",{id:"branch-naming",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#branch-naming"},[e("span",null,"Branch Naming:")])],-1),v=e("ul",null,[e("li",null,[o("Features: "),e("code",null,"issue/_")]),e("li",null,[o("Hot-Fix: "),e("code",null,"hot-fix/_")]),e("li",null,[o("Release: "),e("code",null,"release/")])],-1);function x(y,C){const t=n("RouteLink"),i=n("ExternalLinkIcon");return r(),d("div",null,[h,u,e("ul",null,[e("li",null,[l(t,{to:"/oldstable/code/eclipseContent.html"},{default:a(()=>[o("Eclipse")]),_:1})]),e("li",null,[l(t,{to:"/oldstable/code/intelliJContent.html"},{default:a(()=>[o("IntelliJ IDEA")]),_:1})])]),m,f,e("p",null,[o("Since Release 0.1.0, we follow "),p,o(" as described "),e("a",_,[o("here"),l(i)]),o("."),b,o(" New features should branch from "),g,o(" and merged back if done. Hot-Fixes for the latest release will branch of "),w,o(" 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.")]),k,v])}const I=s(c,[["render",x],["__file","code.html.vue"]]),S=JSON.parse('{"path":"/oldstable/code/code.html","title":"Writing Code","lang":"en-US","frontmatter":{"title":"Writing Code","icon":"code"},"headers":[{"level":2,"title":"Code Style","slug":"code-style","link":"#code-style","children":[]},{"level":2,"title":"Git Workflow","slug":"git-workflow","link":"#git-workflow","children":[{"level":3,"title":"Branch Naming:","slug":"branch-naming","link":"#branch-naming","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.54,"words":162},"filePathRelative":"oldstable/code/code.md","localizedDate":"August 23, 2023","excerpt":"
Code Style
\\n
HiGHmed DSF code-style configurations for Eclipse and IntelliJ IDEA can be found here:
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.
"}');export{I as comp,S as data};
diff --git a/assets/code.html-_JHNqXPS.js b/assets/code.html-_JHNqXPS.js
new file mode 100644
index 000000000..00c4ee4c6
--- /dev/null
+++ b/assets/code.html-_JHNqXPS.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as l,c as a,a as e,b as t,d as o,e as r}from"./app-kq9lCQfY.js";const c={},h=r('
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.
You can import our code style for your specific IDE:
',7),d={href:"https://github.com/datasharingframework/dsf/blob/main/src/main/resources/eclipse-formatter-config.xml",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"Java",-1),p=e("code",null,"Code style",-1),m=e("code",null,"Formatter",-1),g=e("code",null,"Import",-1),f={href:"https://github.com/datasharingframework/dsf/blob/main/src/main/resources/intellij-formatter-config.xml",target:"_blank",rel:"noopener noreferrer"},b=e("code",null,"Editor",-1),_=e("code",null,"Code style",-1),v=e("code",null,"Java",-1),w=e("code",null,"import scheme",-1),y=e("code",null,"IntelliJ",-1),k=e("p",null,[t("Pull requests will only be approved if the code is formatted according to the code style configurations above. To format the code with maven before pushing to GitHub, use "),e("code",null,"mvn compile -Pformat-and-sort"),t(".")],-1),x=e("h3",{id:"branching-strategy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#branching-strategy"},[e("span",null,"Branching strategy")])],-1),S={href:"https://www.atlassian.com/de/git/tutorials/comparing-workflows/gitflow-workflow",target:"_blank",rel:"noopener noreferrer"},D=r('
main
develop
issue
hotfix
release
Notice that only the first two elements listed are actual branches. The other elements are containers to hold all branches belonging to that category.
',10),F={href:"https://www.docker.com/",target:"_blank",rel:"noopener noreferrer"},q=e("h3",{id:"maven",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#maven"},[e("span",null,"Maven")])],-1),T={href:"https://maven.apache.org/",target:"_blank",rel:"noopener noreferrer"},j=e("br",null,null,-1),C=e("em",null,"Important:",-1),B=e("br",null,null,-1),J=e("em",null,"Could not determine gpg version",-1),I={href:"https://gnupg.org/",target:"_blank",rel:"noopener noreferrer"},N=e("code",null,"-Dgpg.skip",-1),z=e("h2",{id:"workflow",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#workflow"},[e("span",null,"Workflow")])],-1),E=e("li",null,"Create an issue or comment on an issue that you want to contribute some feature",-1),G=e("li",null,"Fork the repository, create a branch and mention it in the issue",-1),P=e("li",null,"If you desire feedback, create a pull request or comment on it in the issue. Feel free to @ any member with write permissions if you feel like your request has not been registered yet. They will review your changes and/or change requests",-1),W={href:"https://github.com/datasharingframework/dsf/pulls",target:"_blank",rel:"noopener noreferrer"},M=r('
We follow Martin Fowler's method for managing pull requests. This approach categorizes pull requests based on the level of trust and experience of the contributor, as well as the impact of the changes. Here's how we apply it:
Ship: For our most trusted contributors with a proven track record. These members can merge their pull requests without prior review, typically for minor or highly confident changes.
Show: This level is for trusted contributors who need some oversight, as well as for experienced developers who want to demonstrate how certain changes should be made in the future. They create pull requests and show their work to the team.
Ask: New or less experienced contributors, as well as those submitting more complex changes, fall into this category. They are required to ask for feedback and approval before their changes can be merged, ensuring thorough review and quality control.
This method helps us maintain a balance between code quality and efficient development, recognizing the varying levels of expertise among our contributors.
',4),V={href:"https://martinfowler.com/articles/ship-show-ask.html",target:"_blank",rel:"noopener noreferrer"},O=e("h2",{id:"data-security-in-dsf-development",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#data-security-in-dsf-development"},[e("span",null,"Data Security in DSF Development")])],-1),R=e("p",null,"The DSF (Data Sharing Framework) and its process plugins are frequently used to transmit sensitive personal data. To prevent the release of personal data during development, please adhere to the following guidelines:",-1),Y=e("ul",null,[e("li",null,[e("strong",null,"No development with real personal data:"),t(" Always use anonymized or synthetic data for development purposes.")]),e("li",null,[e("strong",null,"No personal data in repositories:"),t(" Ensure no personal data is present in local and remote repositories intended for publication, not even temporarily.")]),e("li",null,[e("strong",null,"Review all log files:"),t(" Before using log files in issues, examples, etc., thoroughly review them to ensure no personal and sensitive data is included.")])],-1);function A(H,L){const n=s("ExternalLinkIcon");return l(),a("div",null,[h,e("ul",null,[e("li",null,[e("a",d,[t("Eclipse"),o(n)]),t(". Open your preferences, click on "),u,t(", "),p,t(", "),m,t(", "),g,t(" and select the downloaded file.")]),e("li",null,[e("a",f,[t("IntelliJ"),o(n)]),t(". Open your settings, click on "),b,t(", "),_,t(", "),v,t(", the settings icon, "),w,t(", "),y,t(" and select the downloaded file.")])]),k,x,e("p",null,[e("a",S,[t("Git Flow"),o(n)]),t(" is used as this project's branching strategy. Therefore, you will find the following structure:")]),D,e("p",null,[e("a",F,[t("Docker"),o(n)]),t(" is used in this project to test database functionality and to run more complex test-setups.")]),q,e("p",null,[t("The project relies on "),e("a",T,[t("Maven"),o(n)]),t(" as its management tool."),j,C,t(" When building the project you might encounter the following error:"),B,J,t(),e("a",I,[t("GPG"),o(n)]),t(" is used to sign artifacts for public release. Since this does not concern contributors, you may skip this step in the maven build process with "),N,t(".")]),z,e("ol",null,[E,G,P,e("li",null,[t("If your changes are production-ready, create a "),e("a",W,[t("pull request"),o(n)]),t(".")])]),M,e("p",null,[t("For more information on Fowler's approach, visit "),e("a",V,[t("Martin Fowler's article on Pull Requests"),o(n)]),t(".")]),O,R,Y])}const Q=i(c,[["render",A],["__file","code.html.vue"]]),X=JSON.parse('{"path":"/v1.4.0/contribute/code.html","title":"Contribute code","lang":"en-US","frontmatter":{"title":"Contribute code","icon":"info"},"headers":[{"level":3,"title":"Benefits of Contributing:","slug":"benefits-of-contributing","link":"#benefits-of-contributing","children":[]},{"level":2,"title":"General","slug":"general","link":"#general","children":[{"level":3,"title":"Code style","slug":"code-style","link":"#code-style","children":[]},{"level":3,"title":"Branching strategy","slug":"branching-strategy","link":"#branching-strategy","children":[]}]},{"level":2,"title":"Setting up the project","slug":"setting-up-the-project","link":"#setting-up-the-project","children":[{"level":3,"title":"Java","slug":"java","link":"#java","children":[]},{"level":3,"title":"Docker","slug":"docker","link":"#docker","children":[]},{"level":3,"title":"Maven","slug":"maven","link":"#maven","children":[]}]},{"level":2,"title":"Workflow","slug":"workflow","link":"#workflow","children":[{"level":3,"title":"Pull request process","slug":"pull-request-process","link":"#pull-request-process","children":[]}]},{"level":2,"title":"Data Security in DSF Development","slug":"data-security-in-dsf-development","link":"#data-security-in-dsf-development","children":[]}],"git":{"createdTime":1706191215000,"updatedTime":1706191215000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.51,"words":754},"filePathRelative":"v1.4.0/contribute/code.md","localizedDate":"January 25, 2024","excerpt":"
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.
\\n
Benefits of Contributing:
\\n
\\n
Foster community growth and diversification.
\\n
Sharpen your coding skills.
\\n
Gain recognition in the DSF community.
\\n
Directly impact the future of data sharing in medicine.
\\n
"}');export{Q as comp,X as data};
diff --git a/assets/common.html-BjAsQZeB.js b/assets/common.html-BjAsQZeB.js
new file mode 100644
index 000000000..4cfbff399
--- /dev/null
+++ b/assets/common.html-BjAsQZeB.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as n,c as d,a as e,b as r,d as l,e as t}from"./app-kq9lCQfY.js";const c={},a=t('
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 to be specified
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
',16),_=e("strong",null,"Property:",-1),E={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},v=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),h=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),f=t('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
Description: Status connector port, default in docker image: 10000
',32);function u(R,p){const i=o("ExternalLinkIcon");return n(),d("div",null,[a,e("ul",null,[e("li",null,[_,r(),e("a",E,[r("dev.dsf.server.auth.oidc.client.id"),l(i)])]),v,h]),f])}const T=s(c,[["render",u],["__file","common.html.vue"]]),I=JSON.parse('{"path":"/v1.0.0/maintain/configuration/common.html","title":"Common Parameters","lang":"en-US","frontmatter":{},"headers":[{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]}],"git":{"createdTime":1692708510000,"updatedTime":1692708510000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.84,"words":552},"filePathRelative":"v1.0.0/maintain/configuration/common.md","localizedDate":"August 22, 2023","excerpt":"\\n
DEV_DSF_SERVER_API_HOST
\\n
\\n
Property: dev.dsf.server.api.host
\\n
Required: Yes
\\n
Description: API connector host, default in docker image: 0.0.0.0
\\n
Default:127.0.0.1
\\n
"}');export{T as comp,I as data};
diff --git a/assets/configBpe.html-CkJloQiY.js b/assets/configBpe.html-CkJloQiY.js
new file mode 100644
index 000000000..a50488e6b
--- /dev/null
+++ b/assets/configBpe.html-CkJloQiY.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as r,c as i,e as s}from"./app-kq9lCQfY.js";const o={},t=s('
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
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
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!
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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
',132),l=[t];function n(a,d){return r(),i("div",null,l)}const c=e(o,[["render",n],["__file","configBpe.html.vue"]]),_=JSON.parse('{"path":"/oldstable/releases/configBpe.html","title":"","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"DSF 0.9.3 Configuration Parameters - BPE Server","slug":"dsf-0-9-3-configuration-parameters-bpe-server","link":"#dsf-0-9-3-configuration-parameters-bpe-server","children":[{"level":3,"title":"ORG_HIGHMED_DSF_BPE_CONSENT_WEBSERVICE_FACTORY_CLASS","slug":"org-highmed-dsf-bpe-consent-webservice-factory-class","link":"#org-highmed-dsf-bpe-consent-webservice-factory-class","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_PASSWORD or ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"org-highmed-dsf-bpe-db-liquibase-password-or-org-highmed-dsf-bpe-db-liquibase-password-file","link":"#org-highmed-dsf-bpe-db-liquibase-password-or-org-highmed-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"org-highmed-dsf-bpe-db-liquibase-username","link":"#org-highmed-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DB_URL","slug":"org-highmed-dsf-bpe-db-url","link":"#org-highmed-dsf-bpe-db-url","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"org-highmed-dsf-bpe-db-user-camunda-group","link":"#org-highmed-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"org-highmed-dsf-bpe-db-user-camunda-password-or-org-highmed-dsf-bpe-db-user-camunda-password-file","link":"#org-highmed-dsf-bpe-db-user-camunda-password-or-org-highmed-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"org-highmed-dsf-bpe-db-user-camunda-username","link":"#org-highmed-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DB_USER_GROUP","slug":"org-highmed-dsf-bpe-db-user-group","link":"#org-highmed-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DB_USER_PASSWORD or ORG_HIGHMED_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"org-highmed-dsf-bpe-db-user-password-or-org-highmed-dsf-bpe-db-user-password-file","link":"#org-highmed-dsf-bpe-db-user-password-or-org-highmed-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DB_USER_USERNAME","slug":"org-highmed-dsf-bpe-db-user-username","link":"#org-highmed-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"org-highmed-dsf-bpe-debug-log-message-onactivityend","link":"#org-highmed-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"org-highmed-dsf-bpe-debug-log-message-onactivitystart","link":"#org-highmed-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"org-highmed-dsf-bpe-debug-log-message-variables","link":"#org-highmed-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"org-highmed-dsf-bpe-fhir-client-certificate","link":"#org-highmed-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"org-highmed-dsf-bpe-fhir-client-certificate-private-key","link":"#org-highmed-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"org-highmed-dsf-bpe-fhir-client-certificate-private-key-password-or-org-highmed-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#org-highmed-dsf-bpe-fhir-client-certificate-private-key-password-or-org-highmed-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_PROXY_PASSWORD or ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_PROXY_PASSWORD_FILE","slug":"org-highmed-dsf-bpe-fhir-client-local-proxy-password-or-org-highmed-dsf-bpe-fhir-client-local-proxy-password-file","link":"#org-highmed-dsf-bpe-fhir-client-local-proxy-password-or-org-highmed-dsf-bpe-fhir-client-local-proxy-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_PROXY_URL","slug":"org-highmed-dsf-bpe-fhir-client-local-proxy-url","link":"#org-highmed-dsf-bpe-fhir-client-local-proxy-url","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_PROXY_USERNAME","slug":"org-highmed-dsf-bpe-fhir-client-local-proxy-username","link":"#org-highmed-dsf-bpe-fhir-client-local-proxy-username","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"org-highmed-dsf-bpe-fhir-client-local-timeout-connect","link":"#org-highmed-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"org-highmed-dsf-bpe-fhir-client-local-timeout-read","link":"#org-highmed-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"org-highmed-dsf-bpe-fhir-client-local-verbose","link":"#org-highmed-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_WEBSOCKET_PROXY_PASSWORD or ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_WEBSOCKET_PROXY_PASSWORD_FILE","slug":"org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-password-or-org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-password-file","link":"#org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-password-or-org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_WEBSOCKET_PROXY_URL","slug":"org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-url","link":"#org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-url","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_LOCAL_WEBSOCKET_PROXY_USERNAME","slug":"org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-username","link":"#org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-username","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_PROXY_PASSWORD or ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_PROXY_PASSWORD_FILE","slug":"org-highmed-dsf-bpe-fhir-client-remote-proxy-password-or-org-highmed-dsf-bpe-fhir-client-remote-proxy-password-file","link":"#org-highmed-dsf-bpe-fhir-client-remote-proxy-password-or-org-highmed-dsf-bpe-fhir-client-remote-proxy-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_PROXY_URL","slug":"org-highmed-dsf-bpe-fhir-client-remote-proxy-url","link":"#org-highmed-dsf-bpe-fhir-client-remote-proxy-url","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_PROXY_USERNAME","slug":"org-highmed-dsf-bpe-fhir-client-remote-proxy-username","link":"#org-highmed-dsf-bpe-fhir-client-remote-proxy-username","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"org-highmed-dsf-bpe-fhir-client-remote-timeout-connect","link":"#org-highmed-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"org-highmed-dsf-bpe-fhir-client-remote-timeout-read","link":"#org-highmed-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"org-highmed-dsf-bpe-fhir-client-remote-verbose","link":"#org-highmed-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_CLIENT_TRUST_CERTIFICATES","slug":"org-highmed-dsf-bpe-fhir-client-trust-certificates","link":"#org-highmed-dsf-bpe-fhir-client-trust-certificates","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"org-highmed-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#org-highmed-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"org-highmed-dsf-bpe-fhir-server-base-url","link":"#org-highmed-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"org-highmed-dsf-bpe-fhir-server-organization-identifier-value","link":"#org-highmed-dsf-bpe-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"org-highmed-dsf-bpe-fhir-task-subscription-retry-max","link":"#org-highmed-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"org-highmed-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#org-highmed-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"org-highmed-dsf-bpe-fhir-task-subscription-search-parameter","link":"#org-highmed-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"org-highmed-dsf-bpe-mail-client-certificate","link":"#org-highmed-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"org-highmed-dsf-bpe-mail-client-certificate-private-key","link":"#org-highmed-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or ORG_HIGHMED_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"org-highmed-dsf-bpe-mail-client-certificate-private-key-password-or-org-highmed-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#org-highmed-dsf-bpe-mail-client-certificate-private-key-password-or-org-highmed-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_FROMADDRESS","slug":"org-highmed-dsf-bpe-mail-fromaddress","link":"#org-highmed-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_HOST","slug":"org-highmed-dsf-bpe-mail-host","link":"#org-highmed-dsf-bpe-mail-host","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"org-highmed-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#org-highmed-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"org-highmed-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#org-highmed-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_PASSWORD or ORG_HIGHMED_DSF_BPE_MAIL_PASSWORD_FILE","slug":"org-highmed-dsf-bpe-mail-password-or-org-highmed-dsf-bpe-mail-password-file","link":"#org-highmed-dsf-bpe-mail-password-or-org-highmed-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_PORT","slug":"org-highmed-dsf-bpe-mail-port","link":"#org-highmed-dsf-bpe-mail-port","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"org-highmed-dsf-bpe-mail-replytoaddresses","link":"#org-highmed-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"org-highmed-dsf-bpe-mail-sendmailonerrorlogevent","link":"#org-highmed-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"org-highmed-dsf-bpe-mail-sendtestmailonstartup","link":"#org-highmed-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"org-highmed-dsf-bpe-mail-smime-p12keystore","link":"#org-highmed-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or ORG_HIGHMED_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"org-highmed-dsf-bpe-mail-smime-p12keystore-password-or-org-highmed-dsf-bpe-mail-smime-p12keystore-password-file","link":"#org-highmed-dsf-bpe-mail-smime-p12keystore-password-or-org-highmed-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_TOADDRESSES","slug":"org-highmed-dsf-bpe-mail-toaddresses","link":"#org-highmed-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_TOADDRESSESCC","slug":"org-highmed-dsf-bpe-mail-toaddressescc","link":"#org-highmed-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_TRUST_CERTIFICATES","slug":"org-highmed-dsf-bpe-mail-trust-certificates","link":"#org-highmed-dsf-bpe-mail-trust-certificates","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_USERNAME","slug":"org-highmed-dsf-bpe-mail-username","link":"#org-highmed-dsf-bpe-mail-username","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MAIL_USESMTPS","slug":"org-highmed-dsf-bpe-mail-usesmtps","link":"#org-highmed-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_MPI_WEBSERVICE_FACTORY_CLASS","slug":"org-highmed-dsf-bpe-mpi-webservice-factory-class","link":"#org-highmed-dsf-bpe-mpi-webservice-factory-class","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_OPENEHR_WEBSERVICE_FACTORY_CLASS","slug":"org-highmed-dsf-bpe-openehr-webservice-factory-class","link":"#org-highmed-dsf-bpe-openehr-webservice-factory-class","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_PROCESS_EXCLUDED","slug":"org-highmed-dsf-bpe-process-excluded","link":"#org-highmed-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"org-highmed-dsf-bpe-process-fhir-server-retry-max","link":"#org-highmed-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"org-highmed-dsf-bpe-process-fhir-server-retry-sleep","link":"#org-highmed-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"org-highmed-dsf-bpe-process-plugin-directroy","link":"#org-highmed-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_PROCESS_RETIRED","slug":"org-highmed-dsf-bpe-process-retired","link":"#org-highmed-dsf-bpe-process-retired","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_BPE_PSEUDONYMIZATION_WEBSERVICE_FACTORY_CLASS","slug":"org-highmed-dsf-bpe-pseudonymization-webservice-factory-class","link":"#org-highmed-dsf-bpe-pseudonymization-webservice-factory-class","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1696001091000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":7.16,"words":2148},"filePathRelative":"oldstable/releases/configBpe.md","localizedDate":"August 23, 2023","excerpt":"
DSF 0.9.3 Configuration Parameters - BPE Server
\\n
Please note: Additional parameters (not listed here) are used to configure process plugins.
Description: Factory for client implementations used to connect to a consent server in order to check permissions to access patient medical data
\\n
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
"}');export{c as comp,_ as data};
diff --git a/assets/configFhir.html-DWtvgUJO.js b/assets/configFhir.html-DWtvgUJO.js
new file mode 100644
index 000000000..539b7ad78
--- /dev/null
+++ b/assets/configFhir.html-DWtvgUJO.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as r,c as i,e as s}from"./app-kq9lCQfY.js";const t={},o=s('
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
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
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
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
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
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
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
',54),n=[o];function l(d,h){return r(),i("div",null,n)}const f=e(t,[["render",l],["__file","configFhir.html.vue"]]),_=JSON.parse('{"path":"/oldstable/releases/configFhir.html","title":"","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"DSF 0.9.3 Configuration Parameters - FHIR Server","slug":"dsf-0-9-3-configuration-parameters-fhir-server","link":"#dsf-0-9-3-configuration-parameters-fhir-server","children":[{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE","slug":"org-highmed-dsf-fhir-client-certificate","link":"#org-highmed-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"org-highmed-dsf-fhir-client-certificate-private-key","link":"#org-highmed-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"org-highmed-dsf-fhir-client-certificate-private-key-password-or-org-highmed-dsf-fhir-client-certificate-private-key-password-file","link":"#org-highmed-dsf-fhir-client-certificate-private-key-password-or-org-highmed-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_CLIENT_PROXY_PASSWORD or ORG_HIGHMED_DSF_FHIR_CLIENT_PROXY_PASSWORD_FILE","slug":"org-highmed-dsf-fhir-client-proxy-password-or-org-highmed-dsf-fhir-client-proxy-password-file","link":"#org-highmed-dsf-fhir-client-proxy-password-or-org-highmed-dsf-fhir-client-proxy-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_CLIENT_PROXY_URL","slug":"org-highmed-dsf-fhir-client-proxy-url","link":"#org-highmed-dsf-fhir-client-proxy-url","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_CLIENT_PROXY_USERNAME","slug":"org-highmed-dsf-fhir-client-proxy-username","link":"#org-highmed-dsf-fhir-client-proxy-username","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"org-highmed-dsf-fhir-client-timeout-connect","link":"#org-highmed-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"org-highmed-dsf-fhir-client-timeout-read","link":"#org-highmed-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_CLIENT_TRUST_CERTIFICATES","slug":"org-highmed-dsf-fhir-client-trust-certificates","link":"#org-highmed-dsf-fhir-client-trust-certificates","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_CLIENT_VERBOSE","slug":"org-highmed-dsf-fhir-client-verbose","link":"#org-highmed-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_DB_LIQUIBASE_PASSWORD or ORG_HIGHMED_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"org-highmed-dsf-fhir-db-liquibase-password-or-org-highmed-dsf-fhir-db-liquibase-password-file","link":"#org-highmed-dsf-fhir-db-liquibase-password-or-org-highmed-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"org-highmed-dsf-fhir-db-liquibase-username","link":"#org-highmed-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_DB_URL","slug":"org-highmed-dsf-fhir-db-url","link":"#org-highmed-dsf-fhir-db-url","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_DB_USER_GROUP","slug":"org-highmed-dsf-fhir-db-user-group","link":"#org-highmed-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_DB_USER_PASSWORD or ORG_HIGHMED_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"org-highmed-dsf-fhir-db-user-password-or-org-highmed-dsf-fhir-db-user-password-file","link":"#org-highmed-dsf-fhir-db-user-password-or-org-highmed-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"org-highmed-dsf-fhir-db-user-permanent-delete-group","link":"#org-highmed-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"org-highmed-dsf-fhir-db-user-permanent-delete-password-or-org-highmed-dsf-fhir-db-user-permanent-delete-password-file","link":"#org-highmed-dsf-fhir-db-user-permanent-delete-password-or-org-highmed-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"org-highmed-dsf-fhir-db-user-permanent-delete-username","link":"#org-highmed-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_DB_USER_USERNAME","slug":"org-highmed-dsf-fhir-db-user-username","link":"#org-highmed-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_SERVER_BASE_URL","slug":"org-highmed-dsf-fhir-server-base-url","link":"#org-highmed-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_SERVER_CORS_ORIGINS","slug":"org-highmed-dsf-fhir-server-cors-origins","link":"#org-highmed-dsf-fhir-server-cors-origins","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"org-highmed-dsf-fhir-server-init-bundle","link":"#org-highmed-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"org-highmed-dsf-fhir-server-organization-identifier-value","link":"#org-highmed-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_SERVER_PAGE_COUNT","slug":"org-highmed-dsf-fhir-server-page-count","link":"#org-highmed-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS","slug":"org-highmed-dsf-fhir-server-user-thumbprints","link":"#org-highmed-dsf-fhir-server-user-thumbprints","children":[]},{"level":3,"title":"ORG_HIGHMED_DSF_FHIR_SERVER_USER_THUMBPRINTS_PERMANENT_DELETE","slug":"org-highmed-dsf-fhir-server-user-thumbprints-permanent-delete","link":"#org-highmed-dsf-fhir-server-user-thumbprints-permanent-delete","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1696001091000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":2.98,"words":895},"filePathRelative":"oldstable/releases/configFhir.md","localizedDate":"August 23, 2023","excerpt":"
DSF 0.9.3 Configuration Parameters - FHIR Server
\\n
Please note: Additional parameters (not listed here) are used to define elements of the external FHIR bundle.
\\n
ORG_HIGHMED_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: org.highmed.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
\\n
Example:/run/secrets/app_client_certificate.pem
\\n
"}');export{f as comp,_ as data};
diff --git a/assets/configFhirReverseProxy.html-D6mB2ojQ.js b/assets/configFhirReverseProxy.html-D6mB2ojQ.js
new file mode 100644
index 000000000..50da608f2
--- /dev/null
+++ b/assets/configFhirReverseProxy.html-D6mB2ojQ.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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
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
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
Description: Hostname or IP-Address of the DSF FHIR servers application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
"}');export{h as comp,f as data};
diff --git a/assets/configuration.html-1YBSJGs3.js b/assets/configuration.html-1YBSJGs3.js
new file mode 100644
index 000000000..b64fd6add
--- /dev/null
+++ b/assets/configuration.html-1YBSJGs3.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as n,c as d,a as e,b as r,d as l,e as i}from"./app-kq9lCQfY.js";const a={},c=i('
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
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
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
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
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
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
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 to be specified
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
',81),_=e("strong",null,"Property:",-1),f={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),E=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),u=i('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
Description: Status connector port, default in docker image: 10000
',32);function g(v,p){const t=o("ExternalLinkIcon");return n(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",f,[r("dev.dsf.server.auth.oidc.client.id"),l(t)])]),h,E]),u])}const S=s(a,[["render",g],["__file","configuration.html.vue"]]),I=JSON.parse('{"path":"/v1.5.0/maintain/fhir/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-fhir-client-certificate","link":"#dev-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-fhir-client-certificate-private-key","link":"#dev-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"dev-dsf-fhir-client-timeout-connect","link":"#dev-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"dev-dsf-fhir-client-timeout-read","link":"#dev-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_VERBOSE","slug":"dev-dsf-fhir-client-verbose","link":"#dev-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-fhir-db-liquibase-forceunlock","link":"#dev-dsf-fhir-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-fhir-db-liquibase-lockwaittime","link":"#dev-dsf-fhir-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","link":"#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-fhir-db-liquibase-username","link":"#dev-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_URL","slug":"dev-dsf-fhir-db-url","link":"#dev-dsf-fhir-db-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_GROUP","slug":"dev-dsf-fhir-db-user-group","link":"#dev-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","link":"#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"dev-dsf-fhir-db-user-permanent-delete-group","link":"#dev-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","link":"#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"dev-dsf-fhir-db-user-permanent-delete-username","link":"#dev-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_USERNAME","slug":"dev-dsf-fhir-db-user-username","link":"#dev-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_CURRENTUSER","slug":"dev-dsf-fhir-debug-log-message-currentuser","link":"#dev-dsf-fhir-debug-log-message-currentuser","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_DBSTATEMENT","slug":"dev-dsf-fhir-debug-log-message-dbstatement","link":"#dev-dsf-fhir-debug-log-message-dbstatement","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_WEBSERVICEREQUEST","slug":"dev-dsf-fhir-debug-log-message-webservicerequest","link":"#dev-dsf-fhir-debug-log-message-webservicerequest","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_BASE_URL","slug":"dev-dsf-fhir-server-base-url","link":"#dev-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"dev-dsf-fhir-server-init-bundle","link":"#dev-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-fhir-server-organization-identifier-value","link":"#dev-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT","slug":"dev-dsf-fhir-server-organization-thumbprint","link":"#dev-dsf-fhir-server-organization-thumbprint","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_PAGE_COUNT","slug":"dev-dsf-fhir-server-page-count","link":"#dev-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ROLECONFIG","slug":"dev-dsf-fhir-server-roleconfig","link":"#dev-dsf-fhir-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-fhir-server-static-resource-cache","link":"#dev-dsf-fhir-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_UI_THEME","slug":"dev-dsf-fhir-server-ui-theme","link":"#dev-dsf-fhir-server-ui-theme","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]}],"git":{"createdTime":1708419681000,"updatedTime":1708521029000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":5.15,"words":1546},"filePathRelative":"v1.5.0/maintain/fhir/configuration.md","localizedDate":"February 20, 2024","excerpt":"
DEV_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: dev.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
\\n
Example:/run/secrets/app_client_certificate.pem
\\n
"}');export{S as comp,I as data};
diff --git a/assets/configuration.html-6D1Lu82s.js b/assets/configuration.html-6D1Lu82s.js
new file mode 100644
index 000000000..c04eebed1
--- /dev/null
+++ b/assets/configuration.html-6D1Lu82s.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as n,a as e,b as r,d,e as s}from"./app-kq9lCQfY.js";const a={},c=s('
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 to be specified
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
',15),_=e("strong",null,"Property:",-1),p={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},E=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),f=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),g=s('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
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
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. WARNNING: Confidential information may be leaked via the debug log!
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. WARNNING: Confidential information may be leaked via the debug log!
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
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
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
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
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.
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.
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
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
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
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
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
Description: Number of parallel Task / QuestionnaireResponse threads to start new or continue existing processes, a value <= 0 means number of cpu cores
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
Recommendation: Configure username if proxy requires authentication
',156);function u(v,h){const i=o("ExternalLinkIcon");return l(),n("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",p,[r("dev.dsf.server.auth.oidc.client.id"),d(i)])]),E,f]),g])}const b=t(a,[["render",u],["__file","configuration.html.vue"]]),S=JSON.parse('{"path":"/v1.3.0/maintain/bpe/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-bpe-db-liquibase-forceunlock","link":"#dev-dsf-bpe-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-bpe-db-liquibase-lockwaittime","link":"#dev-dsf-bpe-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","link":"#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-bpe-db-liquibase-username","link":"#dev-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_URL","slug":"dev-dsf-bpe-db-url","link":"#dev-dsf-bpe-db-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"dev-dsf-bpe-db-user-camunda-group","link":"#dev-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","link":"#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"dev-dsf-bpe-db-user-camunda-username","link":"#dev-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_GROUP","slug":"dev-dsf-bpe-db-user-group","link":"#dev-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","link":"#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_USERNAME","slug":"dev-dsf-bpe-db-user-username","link":"#dev-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"dev-dsf-bpe-debug-log-message-onactivityend","link":"#dev-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"dev-dsf-bpe-debug-log-message-onactivitystart","link":"#dev-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"dev-dsf-bpe-debug-log-message-variables","link":"#dev-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLESLOCAL","slug":"dev-dsf-bpe-debug-log-message-variableslocal","link":"#dev-dsf-bpe-debug-log-message-variableslocal","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-fhir-client-certificate","link":"#dev-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-fhir-client-certificate-private-key","link":"#dev-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-local-timeout-connect","link":"#dev-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-local-timeout-read","link":"#dev-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"dev-dsf-bpe-fhir-client-local-verbose","link":"#dev-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-remote-timeout-connect","link":"#dev-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-remote-timeout-read","link":"#dev-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"dev-dsf-bpe-fhir-client-remote-verbose","link":"#dev-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-bpe-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"dev-dsf-bpe-fhir-server-base-url","link":"#dev-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"dev-dsf-bpe-fhir-task-subscription-retry-max","link":"#dev-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"dev-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#dev-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-task-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-mail-client-certificate","link":"#dev-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-mail-client-certificate-private-key","link":"#dev-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_FROMADDRESS","slug":"dev-dsf-bpe-mail-fromaddress","link":"#dev-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_HOST","slug":"dev-dsf-bpe-mail-host","link":"#dev-dsf-bpe-mail-host","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","link":"#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PORT","slug":"dev-dsf-bpe-mail-port","link":"#dev-dsf-bpe-mail-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"dev-dsf-bpe-mail-replytoaddresses","link":"#dev-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"dev-dsf-bpe-mail-sendmailonerrorlogevent","link":"#dev-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"dev-dsf-bpe-mail-sendtestmailonstartup","link":"#dev-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"dev-dsf-bpe-mail-smime-p12keystore","link":"#dev-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","link":"#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSES","slug":"dev-dsf-bpe-mail-toaddresses","link":"#dev-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSESCC","slug":"dev-dsf-bpe-mail-toaddressescc","link":"#dev-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-mail-trust-server-certificate-cas","link":"#dev-dsf-bpe-mail-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USERNAME","slug":"dev-dsf-bpe-mail-username","link":"#dev-dsf-bpe-mail-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USESMTPS","slug":"dev-dsf-bpe-mail-usesmtps","link":"#dev-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_COREPOOLSIZE","slug":"dev-dsf-bpe-process-engine-corepoolsize","link":"#dev-dsf-bpe-process-engine-corepoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_MAXPOOLSIZE","slug":"dev-dsf-bpe-process-engine-maxpoolsize","link":"#dev-dsf-bpe-process-engine-maxpoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_QUEUESIZE","slug":"dev-dsf-bpe-process-engine-queuesize","link":"#dev-dsf-bpe-process-engine-queuesize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_EXCLUDED","slug":"dev-dsf-bpe-process-excluded","link":"#dev-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"dev-dsf-bpe-process-fhir-server-retry-max","link":"#dev-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"dev-dsf-bpe-process-fhir-server-retry-sleep","link":"#dev-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"dev-dsf-bpe-process-plugin-directroy","link":"#dev-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_RETIRED","slug":"dev-dsf-bpe-process-retired","link":"#dev-dsf-bpe-process-retired","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_THREADS","slug":"dev-dsf-bpe-process-threads","link":"#dev-dsf-bpe-process-threads","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":1696944513000,"updatedTime":1696983833000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":8.21,"words":2464},"filePathRelative":"v1.3.0/maintain/bpe/configuration.md","localizedDate":"October 10, 2023","excerpt":"
DEV_DSF_SERVER_API_HOST
\\n
\\n
Property: dev.dsf.server.api.host
\\n
Required: Yes
\\n
Description: API connector host, default in docker image: 0.0.0.0
\\n
Default:127.0.0.1
\\n
"}');export{b as comp,S as data};
diff --git a/assets/configuration.html-AER2SVO7.js b/assets/configuration.html-AER2SVO7.js
new file mode 100644
index 000000000..1180737f9
--- /dev/null
+++ b/assets/configuration.html-AER2SVO7.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF FHIR servers application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,f as data};
diff --git a/assets/configuration.html-B6IQGRyt.js b/assets/configuration.html-B6IQGRyt.js
new file mode 100644
index 000000000..7f161aacc
--- /dev/null
+++ b/assets/configuration.html-B6IQGRyt.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as n,c as d,a as e,b as r,d as l,e as i}from"./app-kq9lCQfY.js";const a={},c=i('
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
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
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
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
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
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
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 to be specified
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
',81),_=e("strong",null,"Property:",-1),f={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),E=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),u=i('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
Description: Status connector port, default in docker image: 10000
',32);function g(v,p){const t=o("ExternalLinkIcon");return n(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",f,[r("dev.dsf.server.auth.oidc.client.id"),l(t)])]),h,E]),u])}const S=s(a,[["render",g],["__file","configuration.html.vue"]]),I=JSON.parse('{"path":"/v1.5.1/maintain/fhir/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-fhir-client-certificate","link":"#dev-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-fhir-client-certificate-private-key","link":"#dev-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"dev-dsf-fhir-client-timeout-connect","link":"#dev-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"dev-dsf-fhir-client-timeout-read","link":"#dev-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_VERBOSE","slug":"dev-dsf-fhir-client-verbose","link":"#dev-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-fhir-db-liquibase-forceunlock","link":"#dev-dsf-fhir-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-fhir-db-liquibase-lockwaittime","link":"#dev-dsf-fhir-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","link":"#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-fhir-db-liquibase-username","link":"#dev-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_URL","slug":"dev-dsf-fhir-db-url","link":"#dev-dsf-fhir-db-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_GROUP","slug":"dev-dsf-fhir-db-user-group","link":"#dev-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","link":"#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"dev-dsf-fhir-db-user-permanent-delete-group","link":"#dev-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","link":"#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"dev-dsf-fhir-db-user-permanent-delete-username","link":"#dev-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_USERNAME","slug":"dev-dsf-fhir-db-user-username","link":"#dev-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_CURRENTUSER","slug":"dev-dsf-fhir-debug-log-message-currentuser","link":"#dev-dsf-fhir-debug-log-message-currentuser","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_DBSTATEMENT","slug":"dev-dsf-fhir-debug-log-message-dbstatement","link":"#dev-dsf-fhir-debug-log-message-dbstatement","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_WEBSERVICEREQUEST","slug":"dev-dsf-fhir-debug-log-message-webservicerequest","link":"#dev-dsf-fhir-debug-log-message-webservicerequest","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_BASE_URL","slug":"dev-dsf-fhir-server-base-url","link":"#dev-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"dev-dsf-fhir-server-init-bundle","link":"#dev-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-fhir-server-organization-identifier-value","link":"#dev-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT","slug":"dev-dsf-fhir-server-organization-thumbprint","link":"#dev-dsf-fhir-server-organization-thumbprint","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_PAGE_COUNT","slug":"dev-dsf-fhir-server-page-count","link":"#dev-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ROLECONFIG","slug":"dev-dsf-fhir-server-roleconfig","link":"#dev-dsf-fhir-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-fhir-server-static-resource-cache","link":"#dev-dsf-fhir-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_UI_THEME","slug":"dev-dsf-fhir-server-ui-theme","link":"#dev-dsf-fhir-server-ui-theme","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":5.15,"words":1546},"filePathRelative":"v1.5.1/maintain/fhir/configuration.md","localizedDate":"April 17, 2024","excerpt":"
DEV_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: dev.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
\\n
Example:/run/secrets/app_client_certificate.pem
\\n
"}');export{S as comp,I as data};
diff --git a/assets/configuration.html-B9hAN6Qn.js b/assets/configuration.html-B9hAN6Qn.js
new file mode 100644
index 000000000..61284a0b7
--- /dev/null
+++ b/assets/configuration.html-B9hAN6Qn.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF FHIR servers application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,f as data};
diff --git a/assets/configuration.html-BCx-1jdB.js b/assets/configuration.html-BCx-1jdB.js
new file mode 100644
index 000000000..633c3c818
--- /dev/null
+++ b/assets/configuration.html-BCx-1jdB.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as n,c as d,a as e,b as r,d as l,e as i}from"./app-kq9lCQfY.js";const a={},c=i('
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
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
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
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
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
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 to be specified
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
',73),_=e("strong",null,"Property:",-1),f={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),E=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),u=i('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
Description: Status connector port, default in docker image: 10000
',32);function v(g,p){const t=o("ExternalLinkIcon");return n(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",f,[r("dev.dsf.server.auth.oidc.client.id"),l(t)])]),h,E]),u])}const S=s(a,[["render",v],["__file","configuration.html.vue"]]),I=JSON.parse('{"path":"/v1.3.0/maintain/fhir/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-fhir-client-certificate","link":"#dev-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-fhir-client-certificate-private-key","link":"#dev-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"dev-dsf-fhir-client-timeout-connect","link":"#dev-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"dev-dsf-fhir-client-timeout-read","link":"#dev-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_VERBOSE","slug":"dev-dsf-fhir-client-verbose","link":"#dev-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-fhir-db-liquibase-forceunlock","link":"#dev-dsf-fhir-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-fhir-db-liquibase-lockwaittime","link":"#dev-dsf-fhir-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","link":"#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-fhir-db-liquibase-username","link":"#dev-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_URL","slug":"dev-dsf-fhir-db-url","link":"#dev-dsf-fhir-db-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_GROUP","slug":"dev-dsf-fhir-db-user-group","link":"#dev-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","link":"#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"dev-dsf-fhir-db-user-permanent-delete-group","link":"#dev-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","link":"#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"dev-dsf-fhir-db-user-permanent-delete-username","link":"#dev-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_USERNAME","slug":"dev-dsf-fhir-db-user-username","link":"#dev-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_BASE_URL","slug":"dev-dsf-fhir-server-base-url","link":"#dev-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"dev-dsf-fhir-server-init-bundle","link":"#dev-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-fhir-server-organization-identifier-value","link":"#dev-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT","slug":"dev-dsf-fhir-server-organization-thumbprint","link":"#dev-dsf-fhir-server-organization-thumbprint","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_PAGE_COUNT","slug":"dev-dsf-fhir-server-page-count","link":"#dev-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ROLECONFIG","slug":"dev-dsf-fhir-server-roleconfig","link":"#dev-dsf-fhir-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-fhir-server-static-resource-cache","link":"#dev-dsf-fhir-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]}],"git":{"createdTime":1696944513000,"updatedTime":1696983833000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":4.71,"words":1412},"filePathRelative":"v1.3.0/maintain/fhir/configuration.md","localizedDate":"October 10, 2023","excerpt":"
DEV_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: dev.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
\\n
Example:/run/secrets/app_client_certificate.pem
\\n
"}');export{S as comp,I as data};
diff --git a/assets/configuration.html-BLaLcEWM.js b/assets/configuration.html-BLaLcEWM.js
new file mode 100644
index 000000000..9120705cc
--- /dev/null
+++ b/assets/configuration.html-BLaLcEWM.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as n,a as e,b as r,d,e as s}from"./app-kq9lCQfY.js";const a={},c=s('
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 to be specified
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
',15),_=e("strong",null,"Property:",-1),p={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},E=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),f=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),g=s('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
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
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. WARNNING: Confidential information may be leaked via the debug log!
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. WARNNING: Confidential information may be leaked via the debug log!
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
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
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
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
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.
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.
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
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
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
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
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
Description: Number of parallel Task / QuestionnaireResponse threads to start new or continue existing processes, a value <= 0 means number of cpu cores
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
Recommendation: Configure username if proxy requires authentication
',156);function u(v,h){const i=o("ExternalLinkIcon");return l(),n("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",p,[r("dev.dsf.server.auth.oidc.client.id"),d(i)])]),E,f]),g])}const S=t(a,[["render",u],["__file","configuration.html.vue"]]),b=JSON.parse('{"path":"/v1.3.1/maintain/bpe/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-bpe-db-liquibase-forceunlock","link":"#dev-dsf-bpe-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-bpe-db-liquibase-lockwaittime","link":"#dev-dsf-bpe-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","link":"#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-bpe-db-liquibase-username","link":"#dev-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_URL","slug":"dev-dsf-bpe-db-url","link":"#dev-dsf-bpe-db-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"dev-dsf-bpe-db-user-camunda-group","link":"#dev-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","link":"#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"dev-dsf-bpe-db-user-camunda-username","link":"#dev-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_GROUP","slug":"dev-dsf-bpe-db-user-group","link":"#dev-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","link":"#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_USERNAME","slug":"dev-dsf-bpe-db-user-username","link":"#dev-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"dev-dsf-bpe-debug-log-message-onactivityend","link":"#dev-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"dev-dsf-bpe-debug-log-message-onactivitystart","link":"#dev-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"dev-dsf-bpe-debug-log-message-variables","link":"#dev-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLESLOCAL","slug":"dev-dsf-bpe-debug-log-message-variableslocal","link":"#dev-dsf-bpe-debug-log-message-variableslocal","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-fhir-client-certificate","link":"#dev-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-fhir-client-certificate-private-key","link":"#dev-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-local-timeout-connect","link":"#dev-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-local-timeout-read","link":"#dev-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"dev-dsf-bpe-fhir-client-local-verbose","link":"#dev-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-remote-timeout-connect","link":"#dev-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-remote-timeout-read","link":"#dev-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"dev-dsf-bpe-fhir-client-remote-verbose","link":"#dev-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-bpe-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"dev-dsf-bpe-fhir-server-base-url","link":"#dev-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"dev-dsf-bpe-fhir-task-subscription-retry-max","link":"#dev-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"dev-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#dev-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-task-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-mail-client-certificate","link":"#dev-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-mail-client-certificate-private-key","link":"#dev-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_FROMADDRESS","slug":"dev-dsf-bpe-mail-fromaddress","link":"#dev-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_HOST","slug":"dev-dsf-bpe-mail-host","link":"#dev-dsf-bpe-mail-host","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","link":"#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PORT","slug":"dev-dsf-bpe-mail-port","link":"#dev-dsf-bpe-mail-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"dev-dsf-bpe-mail-replytoaddresses","link":"#dev-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"dev-dsf-bpe-mail-sendmailonerrorlogevent","link":"#dev-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"dev-dsf-bpe-mail-sendtestmailonstartup","link":"#dev-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"dev-dsf-bpe-mail-smime-p12keystore","link":"#dev-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","link":"#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSES","slug":"dev-dsf-bpe-mail-toaddresses","link":"#dev-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSESCC","slug":"dev-dsf-bpe-mail-toaddressescc","link":"#dev-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-mail-trust-server-certificate-cas","link":"#dev-dsf-bpe-mail-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USERNAME","slug":"dev-dsf-bpe-mail-username","link":"#dev-dsf-bpe-mail-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USESMTPS","slug":"dev-dsf-bpe-mail-usesmtps","link":"#dev-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_COREPOOLSIZE","slug":"dev-dsf-bpe-process-engine-corepoolsize","link":"#dev-dsf-bpe-process-engine-corepoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_MAXPOOLSIZE","slug":"dev-dsf-bpe-process-engine-maxpoolsize","link":"#dev-dsf-bpe-process-engine-maxpoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_QUEUESIZE","slug":"dev-dsf-bpe-process-engine-queuesize","link":"#dev-dsf-bpe-process-engine-queuesize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_EXCLUDED","slug":"dev-dsf-bpe-process-excluded","link":"#dev-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"dev-dsf-bpe-process-fhir-server-retry-max","link":"#dev-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"dev-dsf-bpe-process-fhir-server-retry-sleep","link":"#dev-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"dev-dsf-bpe-process-plugin-directroy","link":"#dev-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_RETIRED","slug":"dev-dsf-bpe-process-retired","link":"#dev-dsf-bpe-process-retired","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_THREADS","slug":"dev-dsf-bpe-process-threads","link":"#dev-dsf-bpe-process-threads","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":1698748420000,"updatedTime":1698748420000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":8.21,"words":2464},"filePathRelative":"v1.3.1/maintain/bpe/configuration.md","localizedDate":"October 31, 2023","excerpt":"
DEV_DSF_SERVER_API_HOST
\\n
\\n
Property: dev.dsf.server.api.host
\\n
Required: Yes
\\n
Description: API connector host, default in docker image: 0.0.0.0
\\n
Default:127.0.0.1
\\n
"}');export{S as comp,b as data};
diff --git a/assets/configuration.html-BV76pvkE.js b/assets/configuration.html-BV76pvkE.js
new file mode 100644
index 000000000..b03006265
--- /dev/null
+++ b/assets/configuration.html-BV76pvkE.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as n,a as e,b as r,d,e as s}from"./app-kq9lCQfY.js";const a={},c=s('
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 to be specified
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
',15),_=e("strong",null,"Property:",-1),p={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},E=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),g=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),f=s('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
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
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. WARNNING: Confidential information may be leaked via the debug log!
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. WARNNING: Confidential information may be leaked via the debug log!
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
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
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
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
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.
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.
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
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
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
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
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
Description: Number of parallel Task / QuestionnaireResponse threads to start new or continue existing processes, a value <= 0 means number of cpu cores
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
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
Recommendation: Configure username if proxy requires authentication
',170);function u(v,h){const i=o("ExternalLinkIcon");return l(),n("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",p,[r("dev.dsf.server.auth.oidc.client.id"),d(i)])]),E,g]),f])}const R=t(a,[["render",u],["__file","configuration.html.vue"]]),S=JSON.parse('{"path":"/v1.5.0/maintain/bpe/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-bpe-db-liquibase-forceunlock","link":"#dev-dsf-bpe-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-bpe-db-liquibase-lockwaittime","link":"#dev-dsf-bpe-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","link":"#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-bpe-db-liquibase-username","link":"#dev-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_URL","slug":"dev-dsf-bpe-db-url","link":"#dev-dsf-bpe-db-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"dev-dsf-bpe-db-user-camunda-group","link":"#dev-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","link":"#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"dev-dsf-bpe-db-user-camunda-username","link":"#dev-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_GROUP","slug":"dev-dsf-bpe-db-user-group","link":"#dev-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","link":"#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_USERNAME","slug":"dev-dsf-bpe-db-user-username","link":"#dev-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_CURRENTUSER","slug":"dev-dsf-bpe-debug-log-message-currentuser","link":"#dev-dsf-bpe-debug-log-message-currentuser","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_DBSTATEMENT","slug":"dev-dsf-bpe-debug-log-message-dbstatement","link":"#dev-dsf-bpe-debug-log-message-dbstatement","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"dev-dsf-bpe-debug-log-message-onactivityend","link":"#dev-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"dev-dsf-bpe-debug-log-message-onactivitystart","link":"#dev-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"dev-dsf-bpe-debug-log-message-variables","link":"#dev-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLESLOCAL","slug":"dev-dsf-bpe-debug-log-message-variableslocal","link":"#dev-dsf-bpe-debug-log-message-variableslocal","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_WEBSERVICEREQUEST","slug":"dev-dsf-bpe-debug-log-message-webservicerequest","link":"#dev-dsf-bpe-debug-log-message-webservicerequest","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-fhir-client-certificate","link":"#dev-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-fhir-client-certificate-private-key","link":"#dev-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-local-timeout-connect","link":"#dev-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-local-timeout-read","link":"#dev-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"dev-dsf-bpe-fhir-client-local-verbose","link":"#dev-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-remote-timeout-connect","link":"#dev-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-remote-timeout-read","link":"#dev-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"dev-dsf-bpe-fhir-client-remote-verbose","link":"#dev-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-bpe-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"dev-dsf-bpe-fhir-server-base-url","link":"#dev-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"dev-dsf-bpe-fhir-task-subscription-retry-max","link":"#dev-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"dev-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#dev-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-task-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-mail-client-certificate","link":"#dev-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-mail-client-certificate-private-key","link":"#dev-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_FROMADDRESS","slug":"dev-dsf-bpe-mail-fromaddress","link":"#dev-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_HOST","slug":"dev-dsf-bpe-mail-host","link":"#dev-dsf-bpe-mail-host","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","link":"#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PORT","slug":"dev-dsf-bpe-mail-port","link":"#dev-dsf-bpe-mail-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"dev-dsf-bpe-mail-replytoaddresses","link":"#dev-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"dev-dsf-bpe-mail-sendmailonerrorlogevent","link":"#dev-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"dev-dsf-bpe-mail-sendtestmailonstartup","link":"#dev-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"dev-dsf-bpe-mail-smime-p12keystore","link":"#dev-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","link":"#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSES","slug":"dev-dsf-bpe-mail-toaddresses","link":"#dev-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSESCC","slug":"dev-dsf-bpe-mail-toaddressescc","link":"#dev-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-mail-trust-server-certificate-cas","link":"#dev-dsf-bpe-mail-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USERNAME","slug":"dev-dsf-bpe-mail-username","link":"#dev-dsf-bpe-mail-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USESMTPS","slug":"dev-dsf-bpe-mail-usesmtps","link":"#dev-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_COREPOOLSIZE","slug":"dev-dsf-bpe-process-engine-corepoolsize","link":"#dev-dsf-bpe-process-engine-corepoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_MAXPOOLSIZE","slug":"dev-dsf-bpe-process-engine-maxpoolsize","link":"#dev-dsf-bpe-process-engine-maxpoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_QUEUESIZE","slug":"dev-dsf-bpe-process-engine-queuesize","link":"#dev-dsf-bpe-process-engine-queuesize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_EXCLUDED","slug":"dev-dsf-bpe-process-excluded","link":"#dev-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"dev-dsf-bpe-process-fhir-server-retry-max","link":"#dev-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"dev-dsf-bpe-process-fhir-server-retry-sleep","link":"#dev-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"dev-dsf-bpe-process-plugin-directroy","link":"#dev-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_RETIRED","slug":"dev-dsf-bpe-process-retired","link":"#dev-dsf-bpe-process-retired","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_THREADS","slug":"dev-dsf-bpe-process-threads","link":"#dev-dsf-bpe-process-threads","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_BASE_URL","slug":"dev-dsf-bpe-server-base-url","link":"#dev-dsf-bpe-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_ROLECONFIG","slug":"dev-dsf-bpe-server-roleconfig","link":"#dev-dsf-bpe-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-bpe-server-static-resource-cache","link":"#dev-dsf-bpe-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_UI_THEME","slug":"dev-dsf-bpe-server-ui-theme","link":"#dev-dsf-bpe-server-ui-theme","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":1708419681000,"updatedTime":1708521029000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":8.88,"words":2664},"filePathRelative":"v1.5.0/maintain/bpe/configuration.md","localizedDate":"February 20, 2024","excerpt":"
DEV_DSF_SERVER_API_HOST
\\n
\\n
Property: dev.dsf.server.api.host
\\n
Required: Yes
\\n
Description: API connector host, default in docker image: 0.0.0.0
\\n
Default:127.0.0.1
\\n
"}');export{R as comp,S as data};
diff --git a/assets/configuration.html-BW2fNxdU.js b/assets/configuration.html-BW2fNxdU.js
new file mode 100644
index 000000000..19351be37
--- /dev/null
+++ b/assets/configuration.html-BW2fNxdU.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as n,a as e,b as r,d,e as s}from"./app-kq9lCQfY.js";const a={},c=s('
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 to be specified
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
',15),_=e("strong",null,"Property:",-1),p={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},E=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),f=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),g=s('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
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
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. WARNNING: Confidential information may be leaked via the debug log!
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. WARNNING: Confidential information may be leaked via the debug log!
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
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
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
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
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.
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.
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
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
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
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
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
Description: Number of parallel Task / QuestionnaireResponse threads to start new or continue existing processes, a value <= 0 means number of cpu cores
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
Recommendation: Configure username if proxy requires authentication
',156);function u(v,h){const i=o("ExternalLinkIcon");return l(),n("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",p,[r("dev.dsf.server.auth.oidc.client.id"),d(i)])]),E,f]),g])}const S=t(a,[["render",u],["__file","configuration.html.vue"]]),b=JSON.parse('{"path":"/v1.4.0/maintain/bpe/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-bpe-db-liquibase-forceunlock","link":"#dev-dsf-bpe-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-bpe-db-liquibase-lockwaittime","link":"#dev-dsf-bpe-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","link":"#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-bpe-db-liquibase-username","link":"#dev-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_URL","slug":"dev-dsf-bpe-db-url","link":"#dev-dsf-bpe-db-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"dev-dsf-bpe-db-user-camunda-group","link":"#dev-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","link":"#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"dev-dsf-bpe-db-user-camunda-username","link":"#dev-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_GROUP","slug":"dev-dsf-bpe-db-user-group","link":"#dev-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","link":"#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_USERNAME","slug":"dev-dsf-bpe-db-user-username","link":"#dev-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"dev-dsf-bpe-debug-log-message-onactivityend","link":"#dev-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"dev-dsf-bpe-debug-log-message-onactivitystart","link":"#dev-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"dev-dsf-bpe-debug-log-message-variables","link":"#dev-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLESLOCAL","slug":"dev-dsf-bpe-debug-log-message-variableslocal","link":"#dev-dsf-bpe-debug-log-message-variableslocal","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-fhir-client-certificate","link":"#dev-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-fhir-client-certificate-private-key","link":"#dev-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-local-timeout-connect","link":"#dev-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-local-timeout-read","link":"#dev-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"dev-dsf-bpe-fhir-client-local-verbose","link":"#dev-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-remote-timeout-connect","link":"#dev-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-remote-timeout-read","link":"#dev-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"dev-dsf-bpe-fhir-client-remote-verbose","link":"#dev-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-bpe-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"dev-dsf-bpe-fhir-server-base-url","link":"#dev-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"dev-dsf-bpe-fhir-task-subscription-retry-max","link":"#dev-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"dev-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#dev-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-task-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-mail-client-certificate","link":"#dev-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-mail-client-certificate-private-key","link":"#dev-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_FROMADDRESS","slug":"dev-dsf-bpe-mail-fromaddress","link":"#dev-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_HOST","slug":"dev-dsf-bpe-mail-host","link":"#dev-dsf-bpe-mail-host","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","link":"#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PORT","slug":"dev-dsf-bpe-mail-port","link":"#dev-dsf-bpe-mail-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"dev-dsf-bpe-mail-replytoaddresses","link":"#dev-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"dev-dsf-bpe-mail-sendmailonerrorlogevent","link":"#dev-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"dev-dsf-bpe-mail-sendtestmailonstartup","link":"#dev-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"dev-dsf-bpe-mail-smime-p12keystore","link":"#dev-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","link":"#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSES","slug":"dev-dsf-bpe-mail-toaddresses","link":"#dev-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSESCC","slug":"dev-dsf-bpe-mail-toaddressescc","link":"#dev-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-mail-trust-server-certificate-cas","link":"#dev-dsf-bpe-mail-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USERNAME","slug":"dev-dsf-bpe-mail-username","link":"#dev-dsf-bpe-mail-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USESMTPS","slug":"dev-dsf-bpe-mail-usesmtps","link":"#dev-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_COREPOOLSIZE","slug":"dev-dsf-bpe-process-engine-corepoolsize","link":"#dev-dsf-bpe-process-engine-corepoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_MAXPOOLSIZE","slug":"dev-dsf-bpe-process-engine-maxpoolsize","link":"#dev-dsf-bpe-process-engine-maxpoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_QUEUESIZE","slug":"dev-dsf-bpe-process-engine-queuesize","link":"#dev-dsf-bpe-process-engine-queuesize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_EXCLUDED","slug":"dev-dsf-bpe-process-excluded","link":"#dev-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"dev-dsf-bpe-process-fhir-server-retry-max","link":"#dev-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"dev-dsf-bpe-process-fhir-server-retry-sleep","link":"#dev-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"dev-dsf-bpe-process-plugin-directroy","link":"#dev-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_RETIRED","slug":"dev-dsf-bpe-process-retired","link":"#dev-dsf-bpe-process-retired","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_THREADS","slug":"dev-dsf-bpe-process-threads","link":"#dev-dsf-bpe-process-threads","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":1702917645000,"updatedTime":1702917645000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":8.21,"words":2464},"filePathRelative":"v1.4.0/maintain/bpe/configuration.md","localizedDate":"December 18, 2023","excerpt":"
DEV_DSF_SERVER_API_HOST
\\n
\\n
Property: dev.dsf.server.api.host
\\n
Required: Yes
\\n
Description: API connector host, default in docker image: 0.0.0.0
\\n
Default:127.0.0.1
\\n
"}');export{S as comp,b as data};
diff --git a/assets/configuration.html-BXSsgalC.js b/assets/configuration.html-BXSsgalC.js
new file mode 100644
index 000000000..8dbd4c22e
--- /dev/null
+++ b/assets/configuration.html-BXSsgalC.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF FHIR server application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,f as data};
diff --git a/assets/configuration.html-BdZ0J6H6.js b/assets/configuration.html-BdZ0J6H6.js
new file mode 100644
index 000000000..5dedb76be
--- /dev/null
+++ b/assets/configuration.html-BdZ0J6H6.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as n,c as d,a as e,b as r,d as l,e as i}from"./app-kq9lCQfY.js";const a={},c=i('
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
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
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
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
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
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 to be specified
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
',73),_=e("strong",null,"Property:",-1),f={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),E=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),u=i('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
Description: Status connector port, default in docker image: 10000
',32);function v(g,p){const t=o("ExternalLinkIcon");return n(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",f,[r("dev.dsf.server.auth.oidc.client.id"),l(t)])]),h,E]),u])}const S=s(a,[["render",v],["__file","configuration.html.vue"]]),I=JSON.parse('{"path":"/v1.1.0/maintain/fhir/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-fhir-client-certificate","link":"#dev-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-fhir-client-certificate-private-key","link":"#dev-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"dev-dsf-fhir-client-timeout-connect","link":"#dev-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"dev-dsf-fhir-client-timeout-read","link":"#dev-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_VERBOSE","slug":"dev-dsf-fhir-client-verbose","link":"#dev-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-fhir-db-liquibase-forceunlock","link":"#dev-dsf-fhir-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-fhir-db-liquibase-lockwaittime","link":"#dev-dsf-fhir-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","link":"#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-fhir-db-liquibase-username","link":"#dev-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_URL","slug":"dev-dsf-fhir-db-url","link":"#dev-dsf-fhir-db-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_GROUP","slug":"dev-dsf-fhir-db-user-group","link":"#dev-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","link":"#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"dev-dsf-fhir-db-user-permanent-delete-group","link":"#dev-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","link":"#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"dev-dsf-fhir-db-user-permanent-delete-username","link":"#dev-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_USERNAME","slug":"dev-dsf-fhir-db-user-username","link":"#dev-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_BASE_URL","slug":"dev-dsf-fhir-server-base-url","link":"#dev-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"dev-dsf-fhir-server-init-bundle","link":"#dev-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-fhir-server-organization-identifier-value","link":"#dev-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT","slug":"dev-dsf-fhir-server-organization-thumbprint","link":"#dev-dsf-fhir-server-organization-thumbprint","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_PAGE_COUNT","slug":"dev-dsf-fhir-server-page-count","link":"#dev-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ROLECONFIG","slug":"dev-dsf-fhir-server-roleconfig","link":"#dev-dsf-fhir-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-fhir-server-static-resource-cache","link":"#dev-dsf-fhir-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]}],"git":{"createdTime":1693251017000,"updatedTime":1694430076000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":4.76,"words":1428},"filePathRelative":"v1.1.0/maintain/fhir/configuration.md","localizedDate":"August 28, 2023","excerpt":"
DEV_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: dev.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
\\n
Example:/run/secrets/app_client_certificate.pem
\\n
"}');export{S as comp,I as data};
diff --git a/assets/configuration.html-BeW8pTce.js b/assets/configuration.html-BeW8pTce.js
new file mode 100644
index 000000000..c9ca90a49
--- /dev/null
+++ b/assets/configuration.html-BeW8pTce.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF FHIR servers application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,f as data};
diff --git a/assets/configuration.html-BwxW1XeX.js b/assets/configuration.html-BwxW1XeX.js
new file mode 100644
index 000000000..2f729d94b
--- /dev/null
+++ b/assets/configuration.html-BwxW1XeX.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as n,c as d,a as e,b as r,d as l,e as i}from"./app-kq9lCQfY.js";const a={},c=i('
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
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
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
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
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
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
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 to be specified
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
',81),_=e("strong",null,"Property:",-1),f={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),E=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),u=i('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
Description: Status connector port, default in docker image: 10000
',32);function g(v,p){const t=o("ExternalLinkIcon");return n(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",f,[r("dev.dsf.server.auth.oidc.client.id"),l(t)])]),h,E]),u])}const S=s(a,[["render",g],["__file","configuration.html.vue"]]),I=JSON.parse('{"path":"/v1.5.2/maintain/fhir/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-fhir-client-certificate","link":"#dev-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-fhir-client-certificate-private-key","link":"#dev-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"dev-dsf-fhir-client-timeout-connect","link":"#dev-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"dev-dsf-fhir-client-timeout-read","link":"#dev-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_VERBOSE","slug":"dev-dsf-fhir-client-verbose","link":"#dev-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-fhir-db-liquibase-forceunlock","link":"#dev-dsf-fhir-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-fhir-db-liquibase-lockwaittime","link":"#dev-dsf-fhir-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","link":"#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-fhir-db-liquibase-username","link":"#dev-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_URL","slug":"dev-dsf-fhir-db-url","link":"#dev-dsf-fhir-db-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_GROUP","slug":"dev-dsf-fhir-db-user-group","link":"#dev-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","link":"#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"dev-dsf-fhir-db-user-permanent-delete-group","link":"#dev-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","link":"#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"dev-dsf-fhir-db-user-permanent-delete-username","link":"#dev-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_USERNAME","slug":"dev-dsf-fhir-db-user-username","link":"#dev-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_CURRENTUSER","slug":"dev-dsf-fhir-debug-log-message-currentuser","link":"#dev-dsf-fhir-debug-log-message-currentuser","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_DBSTATEMENT","slug":"dev-dsf-fhir-debug-log-message-dbstatement","link":"#dev-dsf-fhir-debug-log-message-dbstatement","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_WEBSERVICEREQUEST","slug":"dev-dsf-fhir-debug-log-message-webservicerequest","link":"#dev-dsf-fhir-debug-log-message-webservicerequest","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_BASE_URL","slug":"dev-dsf-fhir-server-base-url","link":"#dev-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"dev-dsf-fhir-server-init-bundle","link":"#dev-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-fhir-server-organization-identifier-value","link":"#dev-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT","slug":"dev-dsf-fhir-server-organization-thumbprint","link":"#dev-dsf-fhir-server-organization-thumbprint","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_PAGE_COUNT","slug":"dev-dsf-fhir-server-page-count","link":"#dev-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ROLECONFIG","slug":"dev-dsf-fhir-server-roleconfig","link":"#dev-dsf-fhir-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-fhir-server-static-resource-cache","link":"#dev-dsf-fhir-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_UI_THEME","slug":"dev-dsf-fhir-server-ui-theme","link":"#dev-dsf-fhir-server-ui-theme","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":5.15,"words":1546},"filePathRelative":"v1.5.2/maintain/fhir/configuration.md","localizedDate":"July 8, 2024","excerpt":"
DEV_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: dev.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
\\n
Example:/run/secrets/app_client_certificate.pem
\\n
"}');export{S as comp,I as data};
diff --git a/assets/configuration.html-C9PtkIpc.js b/assets/configuration.html-C9PtkIpc.js
new file mode 100644
index 000000000..86b26c082
--- /dev/null
+++ b/assets/configuration.html-C9PtkIpc.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as s}from"./app-kq9lCQfY.js";const r={},o=s('
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
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
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
Description: Hostname or IP-Address of the DSF FHIR servers application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,f as data};
diff --git a/assets/configuration.html-CNdymila.js b/assets/configuration.html-CNdymila.js
new file mode 100644
index 000000000..5db5e1ac1
--- /dev/null
+++ b/assets/configuration.html-CNdymila.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as d,a as e,b as r,d as n,e as s}from"./app-kq9lCQfY.js";const a={},c=s('
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 to be specified
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
',15),_=e("strong",null,"Property:",-1),p={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},E=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),g=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),f=s('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
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
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. WARNNING: Confidential information may be leaked via the debug log!
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. WARNNING: Confidential information may be leaked via the debug log!
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
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
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
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
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.
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.
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
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
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
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
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
Description: Number of parallel Task / QuestionnaireResponse threads to start new or continue existing processes, a value <= 0 means number of cpu cores
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
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
Recommendation: Configure username if proxy requires authentication
',170);function u(v,h){const i=o("ExternalLinkIcon");return l(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",p,[r("dev.dsf.server.auth.oidc.client.id"),n(i)])]),E,g]),f])}const R=t(a,[["render",u],["__file","configuration.html.vue"]]),S=JSON.parse('{"path":"/stable/maintain/bpe/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-bpe-db-liquibase-forceunlock","link":"#dev-dsf-bpe-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-bpe-db-liquibase-lockwaittime","link":"#dev-dsf-bpe-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","link":"#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-bpe-db-liquibase-username","link":"#dev-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_URL","slug":"dev-dsf-bpe-db-url","link":"#dev-dsf-bpe-db-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"dev-dsf-bpe-db-user-camunda-group","link":"#dev-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","link":"#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"dev-dsf-bpe-db-user-camunda-username","link":"#dev-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_GROUP","slug":"dev-dsf-bpe-db-user-group","link":"#dev-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","link":"#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_USERNAME","slug":"dev-dsf-bpe-db-user-username","link":"#dev-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_CURRENTUSER","slug":"dev-dsf-bpe-debug-log-message-currentuser","link":"#dev-dsf-bpe-debug-log-message-currentuser","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_DBSTATEMENT","slug":"dev-dsf-bpe-debug-log-message-dbstatement","link":"#dev-dsf-bpe-debug-log-message-dbstatement","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"dev-dsf-bpe-debug-log-message-onactivityend","link":"#dev-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"dev-dsf-bpe-debug-log-message-onactivitystart","link":"#dev-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"dev-dsf-bpe-debug-log-message-variables","link":"#dev-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLESLOCAL","slug":"dev-dsf-bpe-debug-log-message-variableslocal","link":"#dev-dsf-bpe-debug-log-message-variableslocal","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_WEBSERVICEREQUEST","slug":"dev-dsf-bpe-debug-log-message-webservicerequest","link":"#dev-dsf-bpe-debug-log-message-webservicerequest","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-fhir-client-certificate","link":"#dev-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-fhir-client-certificate-private-key","link":"#dev-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-local-timeout-connect","link":"#dev-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-local-timeout-read","link":"#dev-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"dev-dsf-bpe-fhir-client-local-verbose","link":"#dev-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-remote-timeout-connect","link":"#dev-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-remote-timeout-read","link":"#dev-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"dev-dsf-bpe-fhir-client-remote-verbose","link":"#dev-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-bpe-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"dev-dsf-bpe-fhir-server-base-url","link":"#dev-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"dev-dsf-bpe-fhir-task-subscription-retry-max","link":"#dev-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"dev-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#dev-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-task-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-mail-client-certificate","link":"#dev-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-mail-client-certificate-private-key","link":"#dev-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_FROMADDRESS","slug":"dev-dsf-bpe-mail-fromaddress","link":"#dev-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_HOST","slug":"dev-dsf-bpe-mail-host","link":"#dev-dsf-bpe-mail-host","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","link":"#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PORT","slug":"dev-dsf-bpe-mail-port","link":"#dev-dsf-bpe-mail-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"dev-dsf-bpe-mail-replytoaddresses","link":"#dev-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"dev-dsf-bpe-mail-sendmailonerrorlogevent","link":"#dev-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"dev-dsf-bpe-mail-sendtestmailonstartup","link":"#dev-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"dev-dsf-bpe-mail-smime-p12keystore","link":"#dev-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","link":"#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSES","slug":"dev-dsf-bpe-mail-toaddresses","link":"#dev-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSESCC","slug":"dev-dsf-bpe-mail-toaddressescc","link":"#dev-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-mail-trust-server-certificate-cas","link":"#dev-dsf-bpe-mail-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USERNAME","slug":"dev-dsf-bpe-mail-username","link":"#dev-dsf-bpe-mail-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USESMTPS","slug":"dev-dsf-bpe-mail-usesmtps","link":"#dev-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_COREPOOLSIZE","slug":"dev-dsf-bpe-process-engine-corepoolsize","link":"#dev-dsf-bpe-process-engine-corepoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_MAXPOOLSIZE","slug":"dev-dsf-bpe-process-engine-maxpoolsize","link":"#dev-dsf-bpe-process-engine-maxpoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_QUEUESIZE","slug":"dev-dsf-bpe-process-engine-queuesize","link":"#dev-dsf-bpe-process-engine-queuesize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_EXCLUDED","slug":"dev-dsf-bpe-process-excluded","link":"#dev-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"dev-dsf-bpe-process-fhir-server-retry-max","link":"#dev-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"dev-dsf-bpe-process-fhir-server-retry-sleep","link":"#dev-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"dev-dsf-bpe-process-plugin-directroy","link":"#dev-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_RETIRED","slug":"dev-dsf-bpe-process-retired","link":"#dev-dsf-bpe-process-retired","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_THREADS","slug":"dev-dsf-bpe-process-threads","link":"#dev-dsf-bpe-process-threads","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_BASE_URL","slug":"dev-dsf-bpe-server-base-url","link":"#dev-dsf-bpe-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_ROLECONFIG","slug":"dev-dsf-bpe-server-roleconfig","link":"#dev-dsf-bpe-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-bpe-server-static-resource-cache","link":"#dev-dsf-bpe-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_UI_THEME","slug":"dev-dsf-bpe-server-ui-theme","link":"#dev-dsf-bpe-server-ui-theme","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":null,"updatedTime":null,"contributors":[]},"readingTime":{"minutes":8.88,"words":2664},"filePathRelative":"stable/maintain/bpe/configuration.md","excerpt":"
DEV_DSF_SERVER_API_HOST
\\n
\\n
Property: dev.dsf.server.api.host
\\n
Required: Yes
\\n
Description: API connector host, default in docker image: 0.0.0.0
\\n
Default:127.0.0.1
\\n
"}');export{R as comp,S as data};
diff --git a/assets/configuration.html-CRtcdzwb.js b/assets/configuration.html-CRtcdzwb.js
new file mode 100644
index 000000000..593c74dd6
--- /dev/null
+++ b/assets/configuration.html-CRtcdzwb.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as n,c as d,a as e,b as r,d as l,e as i}from"./app-kq9lCQfY.js";const a={},c=i('
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
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
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
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
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
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 to be specified
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
',73),_=e("strong",null,"Property:",-1),f={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),E=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),u=i('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
Description: Status connector port, default in docker image: 10000
',32);function v(g,p){const t=o("ExternalLinkIcon");return n(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",f,[r("dev.dsf.server.auth.oidc.client.id"),l(t)])]),h,E]),u])}const S=s(a,[["render",v],["__file","configuration.html.vue"]]),I=JSON.parse('{"path":"/v1.4.0/maintain/fhir/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-fhir-client-certificate","link":"#dev-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-fhir-client-certificate-private-key","link":"#dev-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"dev-dsf-fhir-client-timeout-connect","link":"#dev-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"dev-dsf-fhir-client-timeout-read","link":"#dev-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_VERBOSE","slug":"dev-dsf-fhir-client-verbose","link":"#dev-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-fhir-db-liquibase-forceunlock","link":"#dev-dsf-fhir-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-fhir-db-liquibase-lockwaittime","link":"#dev-dsf-fhir-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","link":"#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-fhir-db-liquibase-username","link":"#dev-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_URL","slug":"dev-dsf-fhir-db-url","link":"#dev-dsf-fhir-db-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_GROUP","slug":"dev-dsf-fhir-db-user-group","link":"#dev-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","link":"#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"dev-dsf-fhir-db-user-permanent-delete-group","link":"#dev-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","link":"#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"dev-dsf-fhir-db-user-permanent-delete-username","link":"#dev-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_USERNAME","slug":"dev-dsf-fhir-db-user-username","link":"#dev-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_BASE_URL","slug":"dev-dsf-fhir-server-base-url","link":"#dev-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"dev-dsf-fhir-server-init-bundle","link":"#dev-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-fhir-server-organization-identifier-value","link":"#dev-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT","slug":"dev-dsf-fhir-server-organization-thumbprint","link":"#dev-dsf-fhir-server-organization-thumbprint","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_PAGE_COUNT","slug":"dev-dsf-fhir-server-page-count","link":"#dev-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ROLECONFIG","slug":"dev-dsf-fhir-server-roleconfig","link":"#dev-dsf-fhir-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-fhir-server-static-resource-cache","link":"#dev-dsf-fhir-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]}],"git":{"createdTime":1702917645000,"updatedTime":1702917645000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":4.71,"words":1412},"filePathRelative":"v1.4.0/maintain/fhir/configuration.md","localizedDate":"December 18, 2023","excerpt":"
DEV_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: dev.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
\\n
Example:/run/secrets/app_client_certificate.pem
\\n
"}');export{S as comp,I as data};
diff --git a/assets/configuration.html-CTyYG9BU.js b/assets/configuration.html-CTyYG9BU.js
new file mode 100644
index 000000000..222ed3cfc
--- /dev/null
+++ b/assets/configuration.html-CTyYG9BU.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF BPE server application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,g as data};
diff --git a/assets/configuration.html-Ckb_V_64.js b/assets/configuration.html-Ckb_V_64.js
new file mode 100644
index 000000000..cc5deb914
--- /dev/null
+++ b/assets/configuration.html-Ckb_V_64.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF FHIR server application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,f as data};
diff --git a/assets/configuration.html-CtDCRuS7.js b/assets/configuration.html-CtDCRuS7.js
new file mode 100644
index 000000000..bb8047023
--- /dev/null
+++ b/assets/configuration.html-CtDCRuS7.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF FHIR server application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,f as data};
diff --git a/assets/configuration.html-CuSzWF3M.js b/assets/configuration.html-CuSzWF3M.js
new file mode 100644
index 000000000..5c9ff8e7c
--- /dev/null
+++ b/assets/configuration.html-CuSzWF3M.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as n,c as d,a as e,b as r,d as l,e as i}from"./app-kq9lCQfY.js";const a={},c=i('
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
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
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
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
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
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 to be specified
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
',73),_=e("strong",null,"Property:",-1),f={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),E=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),u=i('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
Description: Status connector port, default in docker image: 10000
',32);function v(g,p){const t=o("ExternalLinkIcon");return n(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",f,[r("dev.dsf.server.auth.oidc.client.id"),l(t)])]),h,E]),u])}const S=s(a,[["render",v],["__file","configuration.html.vue"]]),I=JSON.parse('{"path":"/v1.3.2/maintain/fhir/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-fhir-client-certificate","link":"#dev-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-fhir-client-certificate-private-key","link":"#dev-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"dev-dsf-fhir-client-timeout-connect","link":"#dev-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"dev-dsf-fhir-client-timeout-read","link":"#dev-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_VERBOSE","slug":"dev-dsf-fhir-client-verbose","link":"#dev-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-fhir-db-liquibase-forceunlock","link":"#dev-dsf-fhir-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-fhir-db-liquibase-lockwaittime","link":"#dev-dsf-fhir-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","link":"#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-fhir-db-liquibase-username","link":"#dev-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_URL","slug":"dev-dsf-fhir-db-url","link":"#dev-dsf-fhir-db-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_GROUP","slug":"dev-dsf-fhir-db-user-group","link":"#dev-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","link":"#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"dev-dsf-fhir-db-user-permanent-delete-group","link":"#dev-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","link":"#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"dev-dsf-fhir-db-user-permanent-delete-username","link":"#dev-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_USERNAME","slug":"dev-dsf-fhir-db-user-username","link":"#dev-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_BASE_URL","slug":"dev-dsf-fhir-server-base-url","link":"#dev-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"dev-dsf-fhir-server-init-bundle","link":"#dev-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-fhir-server-organization-identifier-value","link":"#dev-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT","slug":"dev-dsf-fhir-server-organization-thumbprint","link":"#dev-dsf-fhir-server-organization-thumbprint","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_PAGE_COUNT","slug":"dev-dsf-fhir-server-page-count","link":"#dev-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ROLECONFIG","slug":"dev-dsf-fhir-server-roleconfig","link":"#dev-dsf-fhir-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-fhir-server-static-resource-cache","link":"#dev-dsf-fhir-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]}],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":4.71,"words":1412},"filePathRelative":"v1.3.2/maintain/fhir/configuration.md","localizedDate":"December 4, 2023","excerpt":"
DEV_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: dev.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
\\n
Example:/run/secrets/app_client_certificate.pem
\\n
"}');export{S as comp,I as data};
diff --git a/assets/configuration.html-D3kNqaHh.js b/assets/configuration.html-D3kNqaHh.js
new file mode 100644
index 000000000..a63742fb3
--- /dev/null
+++ b/assets/configuration.html-D3kNqaHh.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as n,a as e,b as r,d,e as s}from"./app-kq9lCQfY.js";const a={},c=s('
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 to be specified
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
',15),_=e("strong",null,"Property:",-1),p={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},E=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),g=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),f=s('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
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
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. WARNNING: Confidential information may be leaked via the debug log!
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. WARNNING: Confidential information may be leaked via the debug log!
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
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
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
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
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.
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.
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
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
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
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
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
Description: Number of parallel Task / QuestionnaireResponse threads to start new or continue existing processes, a value <= 0 means number of cpu cores
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
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
Recommendation: Configure username if proxy requires authentication
',170);function u(v,h){const i=o("ExternalLinkIcon");return l(),n("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",p,[r("dev.dsf.server.auth.oidc.client.id"),d(i)])]),E,g]),f])}const R=t(a,[["render",u],["__file","configuration.html.vue"]]),S=JSON.parse('{"path":"/v1.5.1/maintain/bpe/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-bpe-db-liquibase-forceunlock","link":"#dev-dsf-bpe-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-bpe-db-liquibase-lockwaittime","link":"#dev-dsf-bpe-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","link":"#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-bpe-db-liquibase-username","link":"#dev-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_URL","slug":"dev-dsf-bpe-db-url","link":"#dev-dsf-bpe-db-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"dev-dsf-bpe-db-user-camunda-group","link":"#dev-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","link":"#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"dev-dsf-bpe-db-user-camunda-username","link":"#dev-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_GROUP","slug":"dev-dsf-bpe-db-user-group","link":"#dev-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","link":"#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_USERNAME","slug":"dev-dsf-bpe-db-user-username","link":"#dev-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_CURRENTUSER","slug":"dev-dsf-bpe-debug-log-message-currentuser","link":"#dev-dsf-bpe-debug-log-message-currentuser","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_DBSTATEMENT","slug":"dev-dsf-bpe-debug-log-message-dbstatement","link":"#dev-dsf-bpe-debug-log-message-dbstatement","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"dev-dsf-bpe-debug-log-message-onactivityend","link":"#dev-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"dev-dsf-bpe-debug-log-message-onactivitystart","link":"#dev-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"dev-dsf-bpe-debug-log-message-variables","link":"#dev-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLESLOCAL","slug":"dev-dsf-bpe-debug-log-message-variableslocal","link":"#dev-dsf-bpe-debug-log-message-variableslocal","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_WEBSERVICEREQUEST","slug":"dev-dsf-bpe-debug-log-message-webservicerequest","link":"#dev-dsf-bpe-debug-log-message-webservicerequest","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-fhir-client-certificate","link":"#dev-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-fhir-client-certificate-private-key","link":"#dev-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-local-timeout-connect","link":"#dev-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-local-timeout-read","link":"#dev-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"dev-dsf-bpe-fhir-client-local-verbose","link":"#dev-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-remote-timeout-connect","link":"#dev-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-remote-timeout-read","link":"#dev-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"dev-dsf-bpe-fhir-client-remote-verbose","link":"#dev-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-bpe-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"dev-dsf-bpe-fhir-server-base-url","link":"#dev-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"dev-dsf-bpe-fhir-task-subscription-retry-max","link":"#dev-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"dev-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#dev-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-task-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-mail-client-certificate","link":"#dev-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-mail-client-certificate-private-key","link":"#dev-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_FROMADDRESS","slug":"dev-dsf-bpe-mail-fromaddress","link":"#dev-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_HOST","slug":"dev-dsf-bpe-mail-host","link":"#dev-dsf-bpe-mail-host","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","link":"#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PORT","slug":"dev-dsf-bpe-mail-port","link":"#dev-dsf-bpe-mail-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"dev-dsf-bpe-mail-replytoaddresses","link":"#dev-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"dev-dsf-bpe-mail-sendmailonerrorlogevent","link":"#dev-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"dev-dsf-bpe-mail-sendtestmailonstartup","link":"#dev-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"dev-dsf-bpe-mail-smime-p12keystore","link":"#dev-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","link":"#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSES","slug":"dev-dsf-bpe-mail-toaddresses","link":"#dev-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSESCC","slug":"dev-dsf-bpe-mail-toaddressescc","link":"#dev-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-mail-trust-server-certificate-cas","link":"#dev-dsf-bpe-mail-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USERNAME","slug":"dev-dsf-bpe-mail-username","link":"#dev-dsf-bpe-mail-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USESMTPS","slug":"dev-dsf-bpe-mail-usesmtps","link":"#dev-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_COREPOOLSIZE","slug":"dev-dsf-bpe-process-engine-corepoolsize","link":"#dev-dsf-bpe-process-engine-corepoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_MAXPOOLSIZE","slug":"dev-dsf-bpe-process-engine-maxpoolsize","link":"#dev-dsf-bpe-process-engine-maxpoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_QUEUESIZE","slug":"dev-dsf-bpe-process-engine-queuesize","link":"#dev-dsf-bpe-process-engine-queuesize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_EXCLUDED","slug":"dev-dsf-bpe-process-excluded","link":"#dev-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"dev-dsf-bpe-process-fhir-server-retry-max","link":"#dev-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"dev-dsf-bpe-process-fhir-server-retry-sleep","link":"#dev-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"dev-dsf-bpe-process-plugin-directroy","link":"#dev-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_RETIRED","slug":"dev-dsf-bpe-process-retired","link":"#dev-dsf-bpe-process-retired","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_THREADS","slug":"dev-dsf-bpe-process-threads","link":"#dev-dsf-bpe-process-threads","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_BASE_URL","slug":"dev-dsf-bpe-server-base-url","link":"#dev-dsf-bpe-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_ROLECONFIG","slug":"dev-dsf-bpe-server-roleconfig","link":"#dev-dsf-bpe-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-bpe-server-static-resource-cache","link":"#dev-dsf-bpe-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_UI_THEME","slug":"dev-dsf-bpe-server-ui-theme","link":"#dev-dsf-bpe-server-ui-theme","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":8.88,"words":2664},"filePathRelative":"v1.5.1/maintain/bpe/configuration.md","localizedDate":"April 17, 2024","excerpt":"
DEV_DSF_SERVER_API_HOST
\\n
\\n
Property: dev.dsf.server.api.host
\\n
Required: Yes
\\n
Description: API connector host, default in docker image: 0.0.0.0
\\n
Default:127.0.0.1
\\n
"}');export{R as comp,S as data};
diff --git a/assets/configuration.html-D3nBgzQc.js b/assets/configuration.html-D3nBgzQc.js
new file mode 100644
index 000000000..7f8e42eb2
--- /dev/null
+++ b/assets/configuration.html-D3nBgzQc.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as n,a as e,b as r,d,e as s}from"./app-kq9lCQfY.js";const a={},c=s('
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 to be specified
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
',15),_=e("strong",null,"Property:",-1),p={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},E=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),f=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),g=s('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
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
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. WARNNING: Confidential information may be leaked via the debug log!
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. WARNNING: Confidential information may be leaked via the debug log!
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
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
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
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
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.
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.
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
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
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
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
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
Description: Number of parallel Task / QuestionnaireResponse threads to start new or continue existing processes, a value <= 0 means number of cpu cores
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
Recommendation: Configure username if proxy requires authentication
',156);function u(v,h){const i=o("ExternalLinkIcon");return l(),n("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",p,[r("dev.dsf.server.auth.oidc.client.id"),d(i)])]),E,f]),g])}const S=t(a,[["render",u],["__file","configuration.html.vue"]]),b=JSON.parse('{"path":"/v1.2.0/maintain/bpe/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-bpe-db-liquibase-forceunlock","link":"#dev-dsf-bpe-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-bpe-db-liquibase-lockwaittime","link":"#dev-dsf-bpe-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","link":"#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-bpe-db-liquibase-username","link":"#dev-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_URL","slug":"dev-dsf-bpe-db-url","link":"#dev-dsf-bpe-db-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"dev-dsf-bpe-db-user-camunda-group","link":"#dev-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","link":"#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"dev-dsf-bpe-db-user-camunda-username","link":"#dev-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_GROUP","slug":"dev-dsf-bpe-db-user-group","link":"#dev-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","link":"#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_USERNAME","slug":"dev-dsf-bpe-db-user-username","link":"#dev-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"dev-dsf-bpe-debug-log-message-onactivityend","link":"#dev-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"dev-dsf-bpe-debug-log-message-onactivitystart","link":"#dev-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"dev-dsf-bpe-debug-log-message-variables","link":"#dev-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLESLOCAL","slug":"dev-dsf-bpe-debug-log-message-variableslocal","link":"#dev-dsf-bpe-debug-log-message-variableslocal","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-fhir-client-certificate","link":"#dev-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-fhir-client-certificate-private-key","link":"#dev-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-local-timeout-connect","link":"#dev-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-local-timeout-read","link":"#dev-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"dev-dsf-bpe-fhir-client-local-verbose","link":"#dev-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-remote-timeout-connect","link":"#dev-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-remote-timeout-read","link":"#dev-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"dev-dsf-bpe-fhir-client-remote-verbose","link":"#dev-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-bpe-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"dev-dsf-bpe-fhir-server-base-url","link":"#dev-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"dev-dsf-bpe-fhir-task-subscription-retry-max","link":"#dev-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"dev-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#dev-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-task-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-mail-client-certificate","link":"#dev-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-mail-client-certificate-private-key","link":"#dev-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_FROMADDRESS","slug":"dev-dsf-bpe-mail-fromaddress","link":"#dev-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_HOST","slug":"dev-dsf-bpe-mail-host","link":"#dev-dsf-bpe-mail-host","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","link":"#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PORT","slug":"dev-dsf-bpe-mail-port","link":"#dev-dsf-bpe-mail-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"dev-dsf-bpe-mail-replytoaddresses","link":"#dev-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"dev-dsf-bpe-mail-sendmailonerrorlogevent","link":"#dev-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"dev-dsf-bpe-mail-sendtestmailonstartup","link":"#dev-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"dev-dsf-bpe-mail-smime-p12keystore","link":"#dev-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","link":"#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSES","slug":"dev-dsf-bpe-mail-toaddresses","link":"#dev-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSESCC","slug":"dev-dsf-bpe-mail-toaddressescc","link":"#dev-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-mail-trust-server-certificate-cas","link":"#dev-dsf-bpe-mail-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USERNAME","slug":"dev-dsf-bpe-mail-username","link":"#dev-dsf-bpe-mail-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USESMTPS","slug":"dev-dsf-bpe-mail-usesmtps","link":"#dev-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_COREPOOLSIZE","slug":"dev-dsf-bpe-process-engine-corepoolsize","link":"#dev-dsf-bpe-process-engine-corepoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_MAXPOOLSIZE","slug":"dev-dsf-bpe-process-engine-maxpoolsize","link":"#dev-dsf-bpe-process-engine-maxpoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_QUEUESIZE","slug":"dev-dsf-bpe-process-engine-queuesize","link":"#dev-dsf-bpe-process-engine-queuesize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_EXCLUDED","slug":"dev-dsf-bpe-process-excluded","link":"#dev-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"dev-dsf-bpe-process-fhir-server-retry-max","link":"#dev-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"dev-dsf-bpe-process-fhir-server-retry-sleep","link":"#dev-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"dev-dsf-bpe-process-plugin-directroy","link":"#dev-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_RETIRED","slug":"dev-dsf-bpe-process-retired","link":"#dev-dsf-bpe-process-retired","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_THREADS","slug":"dev-dsf-bpe-process-threads","link":"#dev-dsf-bpe-process-threads","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":1694544770000,"updatedTime":1694545952000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":8.21,"words":2464},"filePathRelative":"v1.2.0/maintain/bpe/configuration.md","localizedDate":"September 12, 2023","excerpt":"
DEV_DSF_SERVER_API_HOST
\\n
\\n
Property: dev.dsf.server.api.host
\\n
Required: Yes
\\n
Description: API connector host, default in docker image: 0.0.0.0
\\n
Default:127.0.0.1
\\n
"}');export{S as comp,b as data};
diff --git a/assets/configuration.html-DBRn85K3.js b/assets/configuration.html-DBRn85K3.js
new file mode 100644
index 000000000..78d33b67f
--- /dev/null
+++ b/assets/configuration.html-DBRn85K3.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF BPE server application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,g as data};
diff --git a/assets/configuration.html-DLYIRIRZ.js b/assets/configuration.html-DLYIRIRZ.js
new file mode 100644
index 000000000..ce494ba4c
--- /dev/null
+++ b/assets/configuration.html-DLYIRIRZ.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as n,c as d,a as e,b as r,d as l,e as i}from"./app-kq9lCQfY.js";const a={},c=i('
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
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
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
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
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
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 to be specified
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
',73),_=e("strong",null,"Property:",-1),f={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),E=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),u=i('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
Description: Status connector port, default in docker image: 10000
',32);function v(g,p){const t=o("ExternalLinkIcon");return n(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",f,[r("dev.dsf.server.auth.oidc.client.id"),l(t)])]),h,E]),u])}const S=s(a,[["render",v],["__file","configuration.html.vue"]]),I=JSON.parse('{"path":"/v1.2.0/maintain/fhir/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-fhir-client-certificate","link":"#dev-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-fhir-client-certificate-private-key","link":"#dev-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"dev-dsf-fhir-client-timeout-connect","link":"#dev-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"dev-dsf-fhir-client-timeout-read","link":"#dev-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_VERBOSE","slug":"dev-dsf-fhir-client-verbose","link":"#dev-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-fhir-db-liquibase-forceunlock","link":"#dev-dsf-fhir-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-fhir-db-liquibase-lockwaittime","link":"#dev-dsf-fhir-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","link":"#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-fhir-db-liquibase-username","link":"#dev-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_URL","slug":"dev-dsf-fhir-db-url","link":"#dev-dsf-fhir-db-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_GROUP","slug":"dev-dsf-fhir-db-user-group","link":"#dev-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","link":"#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"dev-dsf-fhir-db-user-permanent-delete-group","link":"#dev-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","link":"#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"dev-dsf-fhir-db-user-permanent-delete-username","link":"#dev-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_USERNAME","slug":"dev-dsf-fhir-db-user-username","link":"#dev-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_BASE_URL","slug":"dev-dsf-fhir-server-base-url","link":"#dev-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"dev-dsf-fhir-server-init-bundle","link":"#dev-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-fhir-server-organization-identifier-value","link":"#dev-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT","slug":"dev-dsf-fhir-server-organization-thumbprint","link":"#dev-dsf-fhir-server-organization-thumbprint","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_PAGE_COUNT","slug":"dev-dsf-fhir-server-page-count","link":"#dev-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ROLECONFIG","slug":"dev-dsf-fhir-server-roleconfig","link":"#dev-dsf-fhir-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-fhir-server-static-resource-cache","link":"#dev-dsf-fhir-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]}],"git":{"createdTime":1694544770000,"updatedTime":1694545952000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":4.7,"words":1411},"filePathRelative":"v1.2.0/maintain/fhir/configuration.md","localizedDate":"September 12, 2023","excerpt":"
DEV_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: dev.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
\\n
Example:/run/secrets/app_client_certificate.pem
\\n
"}');export{S as comp,I as data};
diff --git a/assets/configuration.html-DRsDJDIQ.js b/assets/configuration.html-DRsDJDIQ.js
new file mode 100644
index 000000000..265802377
--- /dev/null
+++ b/assets/configuration.html-DRsDJDIQ.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as n,c as d,a as e,b as r,d as l,e as i}from"./app-kq9lCQfY.js";const a={},c=i('
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
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
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
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
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
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 to be specified
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
',73),_=e("strong",null,"Property:",-1),f={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),E=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),u=i('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
Description: Status connector port, default in docker image: 10000
',32);function v(g,p){const t=o("ExternalLinkIcon");return n(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",f,[r("dev.dsf.server.auth.oidc.client.id"),l(t)])]),h,E]),u])}const S=s(a,[["render",v],["__file","configuration.html.vue"]]),I=JSON.parse('{"path":"/v1.3.1/maintain/fhir/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-fhir-client-certificate","link":"#dev-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-fhir-client-certificate-private-key","link":"#dev-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"dev-dsf-fhir-client-timeout-connect","link":"#dev-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"dev-dsf-fhir-client-timeout-read","link":"#dev-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_VERBOSE","slug":"dev-dsf-fhir-client-verbose","link":"#dev-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-fhir-db-liquibase-forceunlock","link":"#dev-dsf-fhir-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-fhir-db-liquibase-lockwaittime","link":"#dev-dsf-fhir-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","link":"#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-fhir-db-liquibase-username","link":"#dev-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_URL","slug":"dev-dsf-fhir-db-url","link":"#dev-dsf-fhir-db-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_GROUP","slug":"dev-dsf-fhir-db-user-group","link":"#dev-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","link":"#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"dev-dsf-fhir-db-user-permanent-delete-group","link":"#dev-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","link":"#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"dev-dsf-fhir-db-user-permanent-delete-username","link":"#dev-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_USERNAME","slug":"dev-dsf-fhir-db-user-username","link":"#dev-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_BASE_URL","slug":"dev-dsf-fhir-server-base-url","link":"#dev-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"dev-dsf-fhir-server-init-bundle","link":"#dev-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-fhir-server-organization-identifier-value","link":"#dev-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT","slug":"dev-dsf-fhir-server-organization-thumbprint","link":"#dev-dsf-fhir-server-organization-thumbprint","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_PAGE_COUNT","slug":"dev-dsf-fhir-server-page-count","link":"#dev-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ROLECONFIG","slug":"dev-dsf-fhir-server-roleconfig","link":"#dev-dsf-fhir-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-fhir-server-static-resource-cache","link":"#dev-dsf-fhir-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]}],"git":{"createdTime":1698748420000,"updatedTime":1698748420000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":4.71,"words":1412},"filePathRelative":"v1.3.1/maintain/fhir/configuration.md","localizedDate":"October 31, 2023","excerpt":"
DEV_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: dev.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
\\n
Example:/run/secrets/app_client_certificate.pem
\\n
"}');export{S as comp,I as data};
diff --git a/assets/configuration.html-DTrhBlyo.js b/assets/configuration.html-DTrhBlyo.js
new file mode 100644
index 000000000..a8cb457f3
--- /dev/null
+++ b/assets/configuration.html-DTrhBlyo.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF BPE server application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,g as data};
diff --git a/assets/configuration.html-DWRgeTav.js b/assets/configuration.html-DWRgeTav.js
new file mode 100644
index 000000000..9b0c03017
--- /dev/null
+++ b/assets/configuration.html-DWRgeTav.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as n,a as e,b as r,d,e as s}from"./app-kq9lCQfY.js";const a={},c=s('
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 to be specified
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
',15),_=e("strong",null,"Property:",-1),p={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},E=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),f=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),g=s('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
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
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. WARNNING: Confidential information may be leaked via the debug log!
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. WARNNING: Confidential information may be leaked via the debug log!
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
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
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
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
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.
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.
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
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
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
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
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
Description: Number of parallel Task / QuestionnaireResponse threads to start new or continue existing processes, a value <= 0 means number of cpu cores
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
Recommendation: Configure username if proxy requires authentication
',156);function u(v,h){const i=o("ExternalLinkIcon");return l(),n("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",p,[r("dev.dsf.server.auth.oidc.client.id"),d(i)])]),E,f]),g])}const S=t(a,[["render",u],["__file","configuration.html.vue"]]),b=JSON.parse('{"path":"/v1.3.2/maintain/bpe/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-bpe-db-liquibase-forceunlock","link":"#dev-dsf-bpe-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-bpe-db-liquibase-lockwaittime","link":"#dev-dsf-bpe-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","link":"#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-bpe-db-liquibase-username","link":"#dev-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_URL","slug":"dev-dsf-bpe-db-url","link":"#dev-dsf-bpe-db-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"dev-dsf-bpe-db-user-camunda-group","link":"#dev-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","link":"#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"dev-dsf-bpe-db-user-camunda-username","link":"#dev-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_GROUP","slug":"dev-dsf-bpe-db-user-group","link":"#dev-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","link":"#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_USERNAME","slug":"dev-dsf-bpe-db-user-username","link":"#dev-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"dev-dsf-bpe-debug-log-message-onactivityend","link":"#dev-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"dev-dsf-bpe-debug-log-message-onactivitystart","link":"#dev-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"dev-dsf-bpe-debug-log-message-variables","link":"#dev-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLESLOCAL","slug":"dev-dsf-bpe-debug-log-message-variableslocal","link":"#dev-dsf-bpe-debug-log-message-variableslocal","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-fhir-client-certificate","link":"#dev-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-fhir-client-certificate-private-key","link":"#dev-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-local-timeout-connect","link":"#dev-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-local-timeout-read","link":"#dev-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"dev-dsf-bpe-fhir-client-local-verbose","link":"#dev-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-remote-timeout-connect","link":"#dev-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-remote-timeout-read","link":"#dev-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"dev-dsf-bpe-fhir-client-remote-verbose","link":"#dev-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-bpe-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"dev-dsf-bpe-fhir-server-base-url","link":"#dev-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"dev-dsf-bpe-fhir-task-subscription-retry-max","link":"#dev-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"dev-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#dev-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-task-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-mail-client-certificate","link":"#dev-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-mail-client-certificate-private-key","link":"#dev-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_FROMADDRESS","slug":"dev-dsf-bpe-mail-fromaddress","link":"#dev-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_HOST","slug":"dev-dsf-bpe-mail-host","link":"#dev-dsf-bpe-mail-host","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","link":"#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PORT","slug":"dev-dsf-bpe-mail-port","link":"#dev-dsf-bpe-mail-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"dev-dsf-bpe-mail-replytoaddresses","link":"#dev-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"dev-dsf-bpe-mail-sendmailonerrorlogevent","link":"#dev-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"dev-dsf-bpe-mail-sendtestmailonstartup","link":"#dev-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"dev-dsf-bpe-mail-smime-p12keystore","link":"#dev-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","link":"#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSES","slug":"dev-dsf-bpe-mail-toaddresses","link":"#dev-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSESCC","slug":"dev-dsf-bpe-mail-toaddressescc","link":"#dev-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-mail-trust-server-certificate-cas","link":"#dev-dsf-bpe-mail-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USERNAME","slug":"dev-dsf-bpe-mail-username","link":"#dev-dsf-bpe-mail-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USESMTPS","slug":"dev-dsf-bpe-mail-usesmtps","link":"#dev-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_COREPOOLSIZE","slug":"dev-dsf-bpe-process-engine-corepoolsize","link":"#dev-dsf-bpe-process-engine-corepoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_MAXPOOLSIZE","slug":"dev-dsf-bpe-process-engine-maxpoolsize","link":"#dev-dsf-bpe-process-engine-maxpoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_QUEUESIZE","slug":"dev-dsf-bpe-process-engine-queuesize","link":"#dev-dsf-bpe-process-engine-queuesize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_EXCLUDED","slug":"dev-dsf-bpe-process-excluded","link":"#dev-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"dev-dsf-bpe-process-fhir-server-retry-max","link":"#dev-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"dev-dsf-bpe-process-fhir-server-retry-sleep","link":"#dev-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"dev-dsf-bpe-process-plugin-directroy","link":"#dev-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_RETIRED","slug":"dev-dsf-bpe-process-retired","link":"#dev-dsf-bpe-process-retired","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_THREADS","slug":"dev-dsf-bpe-process-threads","link":"#dev-dsf-bpe-process-threads","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":8.21,"words":2464},"filePathRelative":"v1.3.2/maintain/bpe/configuration.md","localizedDate":"December 4, 2023","excerpt":"
DEV_DSF_SERVER_API_HOST
\\n
\\n
Property: dev.dsf.server.api.host
\\n
Required: Yes
\\n
Description: API connector host, default in docker image: 0.0.0.0
\\n
Default:127.0.0.1
\\n
"}');export{S as comp,b as data};
diff --git a/assets/configuration.html-DhKNa3Mm.js b/assets/configuration.html-DhKNa3Mm.js
new file mode 100644
index 000000000..0fc516f11
--- /dev/null
+++ b/assets/configuration.html-DhKNa3Mm.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as n,a as e,b as r,d,e as s}from"./app-kq9lCQfY.js";const a={},c=s('
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 to be specified
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
',15),_=e("strong",null,"Property:",-1),p={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},E=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),f=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),g=s('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
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
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!
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
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
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
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
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.
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.
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
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
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
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
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
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
Recommendation: Configure username if proxy requires authentication
',148);function u(v,h){const i=o("ExternalLinkIcon");return l(),n("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",p,[r("dev.dsf.server.auth.oidc.client.id"),d(i)])]),E,f]),g])}const S=t(a,[["render",u],["__file","configuration.html.vue"]]),b=JSON.parse('{"path":"/v1.1.0/maintain/bpe/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-bpe-db-liquibase-forceunlock","link":"#dev-dsf-bpe-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-bpe-db-liquibase-lockwaittime","link":"#dev-dsf-bpe-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","link":"#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-bpe-db-liquibase-username","link":"#dev-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_URL","slug":"dev-dsf-bpe-db-url","link":"#dev-dsf-bpe-db-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"dev-dsf-bpe-db-user-camunda-group","link":"#dev-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","link":"#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"dev-dsf-bpe-db-user-camunda-username","link":"#dev-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_GROUP","slug":"dev-dsf-bpe-db-user-group","link":"#dev-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","link":"#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_USERNAME","slug":"dev-dsf-bpe-db-user-username","link":"#dev-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"dev-dsf-bpe-debug-log-message-onactivityend","link":"#dev-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"dev-dsf-bpe-debug-log-message-onactivitystart","link":"#dev-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"dev-dsf-bpe-debug-log-message-variables","link":"#dev-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-fhir-client-certificate","link":"#dev-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-fhir-client-certificate-private-key","link":"#dev-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-local-timeout-connect","link":"#dev-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-local-timeout-read","link":"#dev-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"dev-dsf-bpe-fhir-client-local-verbose","link":"#dev-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-remote-timeout-connect","link":"#dev-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-remote-timeout-read","link":"#dev-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"dev-dsf-bpe-fhir-client-remote-verbose","link":"#dev-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-bpe-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"dev-dsf-bpe-fhir-server-base-url","link":"#dev-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-bpe-fhir-server-organization-identifier-value","link":"#dev-dsf-bpe-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"dev-dsf-bpe-fhir-task-subscription-retry-max","link":"#dev-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"dev-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#dev-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-task-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-mail-client-certificate","link":"#dev-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-mail-client-certificate-private-key","link":"#dev-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_FROMADDRESS","slug":"dev-dsf-bpe-mail-fromaddress","link":"#dev-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_HOST","slug":"dev-dsf-bpe-mail-host","link":"#dev-dsf-bpe-mail-host","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","link":"#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PORT","slug":"dev-dsf-bpe-mail-port","link":"#dev-dsf-bpe-mail-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"dev-dsf-bpe-mail-replytoaddresses","link":"#dev-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"dev-dsf-bpe-mail-sendmailonerrorlogevent","link":"#dev-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"dev-dsf-bpe-mail-sendtestmailonstartup","link":"#dev-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"dev-dsf-bpe-mail-smime-p12keystore","link":"#dev-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","link":"#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSES","slug":"dev-dsf-bpe-mail-toaddresses","link":"#dev-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSESCC","slug":"dev-dsf-bpe-mail-toaddressescc","link":"#dev-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-mail-trust-server-certificate-cas","link":"#dev-dsf-bpe-mail-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USERNAME","slug":"dev-dsf-bpe-mail-username","link":"#dev-dsf-bpe-mail-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USESMTPS","slug":"dev-dsf-bpe-mail-usesmtps","link":"#dev-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_EXCLUDED","slug":"dev-dsf-bpe-process-excluded","link":"#dev-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"dev-dsf-bpe-process-fhir-server-retry-max","link":"#dev-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"dev-dsf-bpe-process-fhir-server-retry-sleep","link":"#dev-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"dev-dsf-bpe-process-plugin-directroy","link":"#dev-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_RETIRED","slug":"dev-dsf-bpe-process-retired","link":"#dev-dsf-bpe-process-retired","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":1693251017000,"updatedTime":1693251017000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":7.77,"words":2331},"filePathRelative":"v1.1.0/maintain/bpe/configuration.md","localizedDate":"August 28, 2023","excerpt":"
DEV_DSF_SERVER_API_HOST
\\n
\\n
Property: dev.dsf.server.api.host
\\n
Required: Yes
\\n
Description: API connector host, default in docker image: 0.0.0.0
\\n
Default:127.0.0.1
\\n
"}');export{S as comp,b as data};
diff --git a/assets/configuration.html-Djb_ityZ.js b/assets/configuration.html-Djb_ityZ.js
new file mode 100644
index 000000000..20a643c35
--- /dev/null
+++ b/assets/configuration.html-Djb_ityZ.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF BPE server application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,g as data};
diff --git a/assets/configuration.html-DkcRMl9h.js b/assets/configuration.html-DkcRMl9h.js
new file mode 100644
index 000000000..83cca2164
--- /dev/null
+++ b/assets/configuration.html-DkcRMl9h.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF FHIR server application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,f as data};
diff --git a/assets/configuration.html-DuKh6Fgm.js b/assets/configuration.html-DuKh6Fgm.js
new file mode 100644
index 000000000..c1bd76fde
--- /dev/null
+++ b/assets/configuration.html-DuKh6Fgm.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF FHIR servers application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,f as data};
diff --git a/assets/configuration.html-JHRlAgB7.js b/assets/configuration.html-JHRlAgB7.js
new file mode 100644
index 000000000..338b1cfcb
--- /dev/null
+++ b/assets/configuration.html-JHRlAgB7.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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.
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
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
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
Description: Hostname or IP-Address of the DSF FHIR servers application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,f as data};
diff --git a/assets/configuration.html-JO85txHz.js b/assets/configuration.html-JO85txHz.js
new file mode 100644
index 000000000..5686379b4
--- /dev/null
+++ b/assets/configuration.html-JO85txHz.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as n,c as d,a as e,b as r,d as l,e as i}from"./app-kq9lCQfY.js";const a={},c=i('
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
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
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
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
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
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
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 to be specified
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
',81),_=e("strong",null,"Property:",-1),f={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),E=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),u=i('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
Description: Status connector port, default in docker image: 10000
',32);function g(v,p){const t=o("ExternalLinkIcon");return n(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",f,[r("dev.dsf.server.auth.oidc.client.id"),l(t)])]),h,E]),u])}const S=s(a,[["render",g],["__file","configuration.html.vue"]]),I=JSON.parse('{"path":"/stable/maintain/fhir/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-fhir-client-certificate","link":"#dev-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-fhir-client-certificate-private-key","link":"#dev-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"dev-dsf-fhir-client-timeout-connect","link":"#dev-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"dev-dsf-fhir-client-timeout-read","link":"#dev-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_VERBOSE","slug":"dev-dsf-fhir-client-verbose","link":"#dev-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-fhir-db-liquibase-forceunlock","link":"#dev-dsf-fhir-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-fhir-db-liquibase-lockwaittime","link":"#dev-dsf-fhir-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","link":"#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-fhir-db-liquibase-username","link":"#dev-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_URL","slug":"dev-dsf-fhir-db-url","link":"#dev-dsf-fhir-db-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_GROUP","slug":"dev-dsf-fhir-db-user-group","link":"#dev-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","link":"#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"dev-dsf-fhir-db-user-permanent-delete-group","link":"#dev-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","link":"#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"dev-dsf-fhir-db-user-permanent-delete-username","link":"#dev-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_USERNAME","slug":"dev-dsf-fhir-db-user-username","link":"#dev-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_CURRENTUSER","slug":"dev-dsf-fhir-debug-log-message-currentuser","link":"#dev-dsf-fhir-debug-log-message-currentuser","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_DBSTATEMENT","slug":"dev-dsf-fhir-debug-log-message-dbstatement","link":"#dev-dsf-fhir-debug-log-message-dbstatement","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DEBUG_LOG_MESSAGE_WEBSERVICEREQUEST","slug":"dev-dsf-fhir-debug-log-message-webservicerequest","link":"#dev-dsf-fhir-debug-log-message-webservicerequest","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_BASE_URL","slug":"dev-dsf-fhir-server-base-url","link":"#dev-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"dev-dsf-fhir-server-init-bundle","link":"#dev-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-fhir-server-organization-identifier-value","link":"#dev-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_THUMBPRINT","slug":"dev-dsf-fhir-server-organization-thumbprint","link":"#dev-dsf-fhir-server-organization-thumbprint","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_PAGE_COUNT","slug":"dev-dsf-fhir-server-page-count","link":"#dev-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ROLECONFIG","slug":"dev-dsf-fhir-server-roleconfig","link":"#dev-dsf-fhir-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-fhir-server-static-resource-cache","link":"#dev-dsf-fhir-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_UI_THEME","slug":"dev-dsf-fhir-server-ui-theme","link":"#dev-dsf-fhir-server-ui-theme","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]}],"git":{"createdTime":null,"updatedTime":null,"contributors":[]},"readingTime":{"minutes":5.15,"words":1546},"filePathRelative":"stable/maintain/fhir/configuration.md","excerpt":"
DEV_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: dev.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
\\n
Example:/run/secrets/app_client_certificate.pem
\\n
"}');export{S as comp,I as data};
diff --git a/assets/configuration.html-SiknXzZc.js b/assets/configuration.html-SiknXzZc.js
new file mode 100644
index 000000000..63e5fff96
--- /dev/null
+++ b/assets/configuration.html-SiknXzZc.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as d,a as e,b as r,d as n,e as s}from"./app-kq9lCQfY.js";const a={},c=s('
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 to be specified
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
',15),_=e("strong",null,"Property:",-1),p={href:"http://dev.dsf.server.auth.oidc.client.id",target:"_blank",rel:"noopener noreferrer"},E=e("li",null,[e("strong",null,"Required:"),r(" No")],-1),g=e("li",null,[e("strong",null,"Description:"),r(" OIDC provider client_id, must be specified if "),e("em",null,"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW"),r(" is enabled")],-1),f=s('
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
Description: PEM encoded file with one or more trusted root certificates to validate client certificates for https connections from local and remote clients
Recommendation: Use docker secret file to configure
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
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. WARNNING: Confidential information may be leaked via the debug log!
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. WARNNING: Confidential information may be leaked via the debug log!
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
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
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
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
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.
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.
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
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
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
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
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
Description: Number of parallel Task / QuestionnaireResponse threads to start new or continue existing processes, a value <= 0 means number of cpu cores
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
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
Recommendation: Configure username if proxy requires authentication
',170);function u(v,h){const i=o("ExternalLinkIcon");return l(),d("div",null,[c,e("ul",null,[e("li",null,[_,r(),e("a",p,[r("dev.dsf.server.auth.oidc.client.id"),n(i)])]),E,g]),f])}const R=t(a,[["render",u],["__file","configuration.html.vue"]]),S=JSON.parse('{"path":"/v1.5.2/maintain/bpe/configuration.html","title":"Configuration Parameters","lang":"en-US","frontmatter":{"title":"Configuration Parameters","icon":"config"},"headers":[{"level":3,"title":"DEV_DSF_SERVER_API_HOST","slug":"dev-dsf-server-api-host","link":"#dev-dsf-server-api-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_API_PORT","slug":"dev-dsf-server-api-port","link":"#dev-dsf-server-api-port","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_CLIENT_CERTIFICATE_HEADER","slug":"dev-dsf-server-auth-client-certificate-header","link":"#dev-dsf-server-auth-client-certificate-header","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW","slug":"dev-dsf-server-auth-oidc-authorization-code-flow","link":"#dev-dsf-server-auth-oidc-authorization-code-flow","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT","slug":"dev-dsf-server-auth-oidc-back-channel-logout","link":"#dev-dsf-server-auth-oidc-back-channel-logout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BACK_CHANNEL_LOGOUT_PATH","slug":"dev-dsf-server-auth-oidc-back-channel-logout-path","link":"#dev-dsf-server-auth-oidc-back-channel-logout-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN","slug":"dev-dsf-server-auth-oidc-bearer-token","link":"#dev-dsf-server-auth-oidc-bearer-token","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_ID","slug":"dev-dsf-server-auth-oidc-client-id","link":"#dev-dsf-server-auth-oidc-client-id","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_CLIENT_SECRET","slug":"dev-dsf-server-auth-oidc-client-secret","link":"#dev-dsf-server-auth-oidc-client-secret","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate","link":"#dev-dsf-server-auth-oidc-provider-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","link":"#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_CONNECTTIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-connecttimeout","link":"#dev-dsf-server-auth-oidc-provider-client-connecttimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_IDLETIMEOUT","slug":"dev-dsf-server-auth-oidc-provider-client-idletimeout","link":"#dev-dsf-server-auth-oidc-provider-client-idletimeout","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","link":"#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_OIDC_PROVIDER_REALM_BASE_URL","slug":"dev-dsf-server-auth-oidc-provider-realm-base-url","link":"#dev-dsf-server-auth-oidc-provider-realm-base-url","children":[]},{"level":3,"title":"DEV_DSF_SERVER_AUTH_TRUST_CLIENT_CERTIFICATE_CAS","slug":"dev-dsf-server-auth-trust-client-certificate-cas","link":"#dev-dsf-server-auth-trust-client-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE","slug":"dev-dsf-server-certificate","link":"#dev-dsf-server-certificate","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_CHAIN","slug":"dev-dsf-server-certificate-chain","link":"#dev-dsf-server-certificate-chain","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY","slug":"dev-dsf-server-certificate-key","link":"#dev-dsf-server-certificate-key","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD or DEV_DSF_SERVER_CERTIFICATE_KEY_PASSWORD_FILE","slug":"dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","link":"#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_SERVER_CONTEXT_PATH","slug":"dev-dsf-server-context-path","link":"#dev-dsf-server-context-path","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_HOST","slug":"dev-dsf-server-status-host","link":"#dev-dsf-server-status-host","children":[]},{"level":3,"title":"DEV_DSF_SERVER_STATUS_PORT","slug":"dev-dsf-server-status-port","link":"#dev-dsf-server-status-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-bpe-db-liquibase-forceunlock","link":"#dev-dsf-bpe-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-bpe-db-liquibase-lockwaittime","link":"#dev-dsf-bpe-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD or DEV_DSF_BPE_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","link":"#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-bpe-db-liquibase-username","link":"#dev-dsf-bpe-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_URL","slug":"dev-dsf-bpe-db-url","link":"#dev-dsf-bpe-db-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_GROUP","slug":"dev-dsf-bpe-db-user-camunda-group","link":"#dev-dsf-bpe-db-user-camunda-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD or DEV_DSF_BPE_DB_USER_CAMUNDA_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","link":"#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_CAMUNDA_USERNAME","slug":"dev-dsf-bpe-db-user-camunda-username","link":"#dev-dsf-bpe-db-user-camunda-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_GROUP","slug":"dev-dsf-bpe-db-user-group","link":"#dev-dsf-bpe-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_PASSWORD or DEV_DSF_BPE_DB_USER_PASSWORD_FILE","slug":"dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","link":"#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_DB_USER_USERNAME","slug":"dev-dsf-bpe-db-user-username","link":"#dev-dsf-bpe-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_CURRENTUSER","slug":"dev-dsf-bpe-debug-log-message-currentuser","link":"#dev-dsf-bpe-debug-log-message-currentuser","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_DBSTATEMENT","slug":"dev-dsf-bpe-debug-log-message-dbstatement","link":"#dev-dsf-bpe-debug-log-message-dbstatement","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYEND","slug":"dev-dsf-bpe-debug-log-message-onactivityend","link":"#dev-dsf-bpe-debug-log-message-onactivityend","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_ONACTIVITYSTART","slug":"dev-dsf-bpe-debug-log-message-onactivitystart","link":"#dev-dsf-bpe-debug-log-message-onactivitystart","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLES","slug":"dev-dsf-bpe-debug-log-message-variables","link":"#dev-dsf-bpe-debug-log-message-variables","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_VARIABLESLOCAL","slug":"dev-dsf-bpe-debug-log-message-variableslocal","link":"#dev-dsf-bpe-debug-log-message-variableslocal","children":[]},{"level":3,"title":"DEV_DSF_BPE_DEBUG_LOG_MESSAGE_WEBSERVICEREQUEST","slug":"dev-dsf-bpe-debug-log-message-webservicerequest","link":"#dev-dsf-bpe-debug-log-message-webservicerequest","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-fhir-client-certificate","link":"#dev-dsf-bpe-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-fhir-client-certificate-private-key","link":"#dev-dsf-bpe-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-local-timeout-connect","link":"#dev-dsf-bpe-fhir-client-local-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-local-timeout-read","link":"#dev-dsf-bpe-fhir-client-local-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_LOCAL_VERBOSE","slug":"dev-dsf-bpe-fhir-client-local-verbose","link":"#dev-dsf-bpe-fhir-client-local-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_CONNECT","slug":"dev-dsf-bpe-fhir-client-remote-timeout-connect","link":"#dev-dsf-bpe-fhir-client-remote-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_TIMEOUT_READ","slug":"dev-dsf-bpe-fhir-client-remote-timeout-read","link":"#dev-dsf-bpe-fhir-client-remote-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_REMOTE_VERBOSE","slug":"dev-dsf-bpe-fhir-client-remote-verbose","link":"#dev-dsf-bpe-fhir-client-remote-verbose","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-bpe-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_QUESTIONNAIRE_RESPONSE_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_SERVER_BASE_URL","slug":"dev-dsf-bpe-fhir-server-base-url","link":"#dev-dsf-bpe-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_MAX","slug":"dev-dsf-bpe-fhir-task-subscription-retry-max","link":"#dev-dsf-bpe-fhir-task-subscription-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_RETRY_SLEEP","slug":"dev-dsf-bpe-fhir-task-subscription-retry-sleep","link":"#dev-dsf-bpe-fhir-task-subscription-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_FHIR_TASK_SUBSCRIPTION_SEARCH_PARAMETER","slug":"dev-dsf-bpe-fhir-task-subscription-search-parameter","link":"#dev-dsf-bpe-fhir-task-subscription-search-parameter","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE","slug":"dev-dsf-bpe-mail-client-certificate","link":"#dev-dsf-bpe-mail-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-bpe-mail-client-certificate-private-key","link":"#dev-dsf-bpe-mail-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_BPE_MAIL_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","link":"#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_FROMADDRESS","slug":"dev-dsf-bpe-mail-fromaddress","link":"#dev-dsf-bpe-mail-fromaddress","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_HOST","slug":"dev-dsf-bpe-mail-host","link":"#dev-dsf-bpe-mail-host","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTBUFFERSIZE","slug":"dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","link":"#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_MAILONERRORLOGEVENTDEBUGLOGLOCATION","slug":"dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","link":"#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PASSWORD or DEV_DSF_BPE_MAIL_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","link":"#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_PORT","slug":"dev-dsf-bpe-mail-port","link":"#dev-dsf-bpe-mail-port","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_REPLYTOADDRESSES","slug":"dev-dsf-bpe-mail-replytoaddresses","link":"#dev-dsf-bpe-mail-replytoaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDMAILONERRORLOGEVENT","slug":"dev-dsf-bpe-mail-sendmailonerrorlogevent","link":"#dev-dsf-bpe-mail-sendmailonerrorlogevent","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SENDTESTMAILONSTARTUP","slug":"dev-dsf-bpe-mail-sendtestmailonstartup","link":"#dev-dsf-bpe-mail-sendtestmailonstartup","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE","slug":"dev-dsf-bpe-mail-smime-p12keystore","link":"#dev-dsf-bpe-mail-smime-p12keystore","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD or DEV_DSF_BPE_MAIL_SMIME_P12KEYSTORE_PASSWORD_FILE","slug":"dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","link":"#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSES","slug":"dev-dsf-bpe-mail-toaddresses","link":"#dev-dsf-bpe-mail-toaddresses","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TOADDRESSESCC","slug":"dev-dsf-bpe-mail-toaddressescc","link":"#dev-dsf-bpe-mail-toaddressescc","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-bpe-mail-trust-server-certificate-cas","link":"#dev-dsf-bpe-mail-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USERNAME","slug":"dev-dsf-bpe-mail-username","link":"#dev-dsf-bpe-mail-username","children":[]},{"level":3,"title":"DEV_DSF_BPE_MAIL_USESMTPS","slug":"dev-dsf-bpe-mail-usesmtps","link":"#dev-dsf-bpe-mail-usesmtps","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_COREPOOLSIZE","slug":"dev-dsf-bpe-process-engine-corepoolsize","link":"#dev-dsf-bpe-process-engine-corepoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_MAXPOOLSIZE","slug":"dev-dsf-bpe-process-engine-maxpoolsize","link":"#dev-dsf-bpe-process-engine-maxpoolsize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_ENGINE_QUEUESIZE","slug":"dev-dsf-bpe-process-engine-queuesize","link":"#dev-dsf-bpe-process-engine-queuesize","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_EXCLUDED","slug":"dev-dsf-bpe-process-excluded","link":"#dev-dsf-bpe-process-excluded","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_MAX","slug":"dev-dsf-bpe-process-fhir-server-retry-max","link":"#dev-dsf-bpe-process-fhir-server-retry-max","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_FHIR_SERVER_RETRY_SLEEP","slug":"dev-dsf-bpe-process-fhir-server-retry-sleep","link":"#dev-dsf-bpe-process-fhir-server-retry-sleep","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_PLUGIN_DIRECTROY","slug":"dev-dsf-bpe-process-plugin-directroy","link":"#dev-dsf-bpe-process-plugin-directroy","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_RETIRED","slug":"dev-dsf-bpe-process-retired","link":"#dev-dsf-bpe-process-retired","children":[]},{"level":3,"title":"DEV_DSF_BPE_PROCESS_THREADS","slug":"dev-dsf-bpe-process-threads","link":"#dev-dsf-bpe-process-threads","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_BASE_URL","slug":"dev-dsf-bpe-server-base-url","link":"#dev-dsf-bpe-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_ROLECONFIG","slug":"dev-dsf-bpe-server-roleconfig","link":"#dev-dsf-bpe-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-bpe-server-static-resource-cache","link":"#dev-dsf-bpe-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_BPE_SERVER_UI_THEME","slug":"dev-dsf-bpe-server-ui-theme","link":"#dev-dsf-bpe-server-ui-theme","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":8.88,"words":2664},"filePathRelative":"v1.5.2/maintain/bpe/configuration.md","localizedDate":"July 8, 2024","excerpt":"
DEV_DSF_SERVER_API_HOST
\\n
\\n
Property: dev.dsf.server.api.host
\\n
Required: Yes
\\n
Description: API connector host, default in docker image: 0.0.0.0
\\n
Default:127.0.0.1
\\n
"}');export{R as comp,S as data};
diff --git a/assets/contact.html-BIg2xi0b.js b/assets/contact.html-BIg2xi0b.js
new file mode 100644
index 000000000..f183e4656
--- /dev/null
+++ b/assets/contact.html-BIg2xi0b.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as l,c,a as e,b as t,d as o,w as i,e as h}from"./app-kq9lCQfY.js";const d={},u=h('
',5),m={href:"https://github.com/datasharingframework/dsf",target:"_blank",rel:"noopener noreferrer"},p={href:"https://mii.zulipchat.com",target:"_blank",rel:"noopener noreferrer"},f=e("a",{href:"mailto:dsf-gecko@hs-heilbronn.de"},"E-MAIL",-1),b=e("h3",{id:"contribute-code",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#contribute-code"},[e("span",null,"Contribute Code")])],-1),_={href:"https://github.com/datasharingframework/dsf/tree/develop",target:"_blank",rel:"noopener noreferrer"},g=e("h3",{id:"share-your-experience-get-support",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#share-your-experience-get-support"},[e("span",null,"Share your Experience & Get support")])],-1),k={href:"https://github.com/datasharingframework/dsf/issues",target:"_blank",rel:"noopener noreferrer"};function y(w,x){const a=r("ExternalLinkIcon"),n=r("RouteLink");return l(),c("div",null,[u,e("ul",null,[e("li",null,[e("a",m,[t("GitHub"),o(a)])]),e("li",null,[t("Follow our "),o(n,{to:"/about/learnmore/team.html"},{default:i(()=>[t("contributors")]),_:1}),t(" on GitHub")]),e("li",null,[e("a",p,[t("Zulip Chat - MII"),o(a)]),t(" (If you would like access, please write us an "),f,t(")")])]),b,e("p",null,[t("You can get familiar with the DSF code on GitHub. Branching follows the git-flow model, for the latest development version see branch "),e("a",_,[t("develop"),o(a)]),t(". Additionally, you can find more information "),o(n,{to:"/stable/"},{default:i(()=>[t("here")]),_:1}),t(" in the documentation.")]),g,e("p",null,[t("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 "),e("a",k,[t("GitHub issues"),o(a)]),t(" are for.")])])}const M=s(d,[["render",y],["__file","contact.html.vue"]]),I=JSON.parse('{"path":"/about/learnmore/contact.html","title":"Contact & Community","lang":"en-US","frontmatter":{"title":"Contact & Community","icon":"call"},"headers":[{"level":2,"title":"✉️ E-MAIL","slug":"e-mail","link":"#e-mail","children":[]},{"level":2,"title":"👥 COMMUNITY","slug":"community","link":"#community","children":[{"level":3,"title":"Stay up to Date","slug":"stay-up-to-date","link":"#stay-up-to-date","children":[]},{"level":3,"title":"Contribute Code","slug":"contribute-code","link":"#contribute-code","children":[]},{"level":3,"title":"Share your Experience & Get support","slug":"share-your-experience-get-support","link":"#share-your-experience-get-support","children":[]}]}],"git":{"createdTime":1683798956000,"updatedTime":1691142763000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":3},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.58,"words":174},"filePathRelative":"about/learnmore/contact.md","localizedDate":"May 11, 2023","excerpt":"
"}');export{M as comp,I as data};
diff --git a/assets/create.html-B8YWfO5m.js b/assets/create.html-B8YWfO5m.js
new file mode 100644
index 000000000..a8aa34332
--- /dev/null
+++ b/assets/create.html-B8YWfO5m.js
@@ -0,0 +1 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as i,c as s,a as e,b as t,d as o,w as c}from"./app-kq9lCQfY.js";const p={},h={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),m={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},u={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function f(_,w){const a=n("RouteLink"),r=n("ExternalLinkIcon");return i(),s("div",null,[e("div",h,[d,e("p",null,[t("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 "),o(a,{to:"/oldstable/tutorial/"},{default:c(()=>[t("process plugin tutorial")]),_:1}),t(". Additionally, we recommend to take a look at the upgraded DSF processes here:")]),e("ul",null,[e("li",null,[t("The "),e("a",m,[t("hello world plugin"),o(r)])]),e("li",null,[t("The "),e("a",u,[t("ping pong plugin"),o(r)])]),e("li",null,[t("The "),e("a",g,[t("update allowlist plugin"),o(r)])])])])])}const v=l(p,[["render",f],["__file","create.html.vue"]]),T=JSON.parse('{"path":"/v1.2.0/develop/create.html","title":"Create a new process plugin","lang":"en-US","frontmatter":{"title":"Create a new process plugin","icon":"code"},"headers":[],"git":{"createdTime":1694544770000,"updatedTime":1699955216000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":0.29,"words":88},"filePathRelative":"v1.2.0/develop/create.md","localizedDate":"September 12, 2023","excerpt":"
\\n
Work in progress
\\n
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. Additionally, we recommend to take a look at the upgraded DSF processes here:
"}');export{v as comp,T as data};
diff --git a/assets/create.html-BBL4dAdr.js b/assets/create.html-BBL4dAdr.js
new file mode 100644
index 000000000..d6d0bf96c
--- /dev/null
+++ b/assets/create.html-BBL4dAdr.js
@@ -0,0 +1 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as i,c as s,a as e,b as t,d as o,w as c}from"./app-kq9lCQfY.js";const p={},d={class:"hint-container tip"},h=e("p",{class:"hint-container-title"},"Work in progress",-1),u={href:"https://github.com/datasharingframework/dsf-process-hello-world/tree/develop",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function f(_,w){const a=n("RouteLink"),r=n("ExternalLinkIcon");return i(),s("div",null,[e("div",d,[h,e("p",null,[t("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 "),o(a,{to:"/oldstable/guideline/tutorial/"},{default:c(()=>[t("process plugin tutorial")]),_:1}),t(". Additionally, we recommend to take a look at the upgraded DSF processes here:")]),e("ul",null,[e("li",null,[t("The "),e("a",u,[t("hello world plugin"),o(r)])]),e("li",null,[t("The "),e("a",g,[t("ping pong plugin"),o(r)])]),e("li",null,[t("The "),e("a",m,[t("update allowlist plugin"),o(r)])])])])])}const v=l(p,[["render",f],["__file","create.html.vue"]]),T=JSON.parse('{"path":"/v1.0.0/develop/create.html","title":"Create a new process plugin","lang":"en-US","frontmatter":{"title":"Create a new process plugin","icon":"code"},"headers":[],"git":{"createdTime":1692708510000,"updatedTime":1692708510000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.29,"words":88},"filePathRelative":"v1.0.0/develop/create.md","localizedDate":"August 22, 2023","excerpt":"
\\n
Work in progress
\\n
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. Additionally, we recommend to take a look at the upgraded DSF processes here:
"}');export{v as comp,T as data};
diff --git a/assets/create.html-BKJiEx7Q.js b/assets/create.html-BKJiEx7Q.js
new file mode 100644
index 000000000..d20a1a79c
--- /dev/null
+++ b/assets/create.html-BKJiEx7Q.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as s,c as p,a as t,b as e,d as o,w as l}from"./app-kq9lCQfY.js";const c={},h={class:"hint-container tip"},d=t("p",{class:"hint-container-title"},"Work in progress",-1),u={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function f(_,w){const n=a("RouteLink"),r=a("ExternalLinkIcon");return s(),p("div",null,[t("p",null,[e("Visit the "),o(n,{to:"/for-you/"},{default:l(()=>[e("how the DSF can help you")]),_:1}),e(" page to get started.")]),t("div",h,[d,t("p",null,[e("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 "),o(n,{to:"/oldstable/tutorial/"},{default:l(()=>[e("process plugin tutorial")]),_:1}),e(". Additionally, we recommend to take a look at the upgraded DSF processes here:")]),t("ul",null,[t("li",null,[e("The "),t("a",u,[e("hello world plugin"),o(r)])]),t("li",null,[e("The "),t("a",g,[e("ping pong plugin"),o(r)])]),t("li",null,[e("The "),t("a",m,[e("update allowlist plugin"),o(r)])])])])])}const v=i(c,[["render",f],["__file","create.html.vue"]]),y=JSON.parse('{"path":"/v1.5.1/develop/create.html","title":"Create a new process plugin","lang":"en-US","frontmatter":{"title":"Create a new process plugin","icon":"code"},"headers":[],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.34,"words":102},"filePathRelative":"v1.5.1/develop/create.md","localizedDate":"April 17, 2024","excerpt":"
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. Additionally, we recommend to take a look at the upgraded DSF processes here:
"}');export{v as comp,y as data};
diff --git a/assets/create.html-CYJ8kogk.js b/assets/create.html-CYJ8kogk.js
new file mode 100644
index 000000000..9a5021c19
--- /dev/null
+++ b/assets/create.html-CYJ8kogk.js
@@ -0,0 +1 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as i,c as s,a as e,b as t,d as o,w as c}from"./app-kq9lCQfY.js";const p={},h={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),u={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function f(_,w){const a=n("RouteLink"),r=n("ExternalLinkIcon");return i(),s("div",null,[e("div",h,[d,e("p",null,[t("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 "),o(a,{to:"/oldstable/tutorial/"},{default:c(()=>[t("process plugin tutorial")]),_:1}),t(". Additionally, we recommend to take a look at the upgraded DSF processes here:")]),e("ul",null,[e("li",null,[t("The "),e("a",u,[t("hello world plugin"),o(r)])]),e("li",null,[t("The "),e("a",m,[t("ping pong plugin"),o(r)])]),e("li",null,[t("The "),e("a",g,[t("update allowlist plugin"),o(r)])])])])])}const v=l(p,[["render",f],["__file","create.html.vue"]]),T=JSON.parse('{"path":"/v1.3.0/develop/create.html","title":"Create a new process plugin","lang":"en-US","frontmatter":{"title":"Create a new process plugin","icon":"code"},"headers":[],"git":{"createdTime":1696944513000,"updatedTime":1699955216000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":0.29,"words":88},"filePathRelative":"v1.3.0/develop/create.md","localizedDate":"October 10, 2023","excerpt":"
\\n
Work in progress
\\n
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. Additionally, we recommend to take a look at the upgraded DSF processes here:
"}');export{v as comp,T as data};
diff --git a/assets/create.html-Cd0lu8lU.js b/assets/create.html-Cd0lu8lU.js
new file mode 100644
index 000000000..66dd0a889
--- /dev/null
+++ b/assets/create.html-Cd0lu8lU.js
@@ -0,0 +1 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as i,c as s,a as e,b as t,d as o,w as c}from"./app-kq9lCQfY.js";const p={},h={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),u={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function f(_,w){const a=n("RouteLink"),r=n("ExternalLinkIcon");return i(),s("div",null,[e("div",h,[d,e("p",null,[t("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 "),o(a,{to:"/oldstable/tutorial/"},{default:c(()=>[t("process plugin tutorial")]),_:1}),t(". Additionally, we recommend to take a look at the upgraded DSF processes here:")]),e("ul",null,[e("li",null,[t("The "),e("a",u,[t("hello world plugin"),o(r)])]),e("li",null,[t("The "),e("a",m,[t("ping pong plugin"),o(r)])]),e("li",null,[t("The "),e("a",g,[t("update allowlist plugin"),o(r)])])])])])}const v=l(p,[["render",f],["__file","create.html.vue"]]),T=JSON.parse('{"path":"/v1.1.0/develop/create.html","title":"Create a new process plugin","lang":"en-US","frontmatter":{"title":"Create a new process plugin","icon":"code"},"headers":[],"git":{"createdTime":1692790324000,"updatedTime":1699955216000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2},{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.29,"words":88},"filePathRelative":"v1.1.0/develop/create.md","localizedDate":"August 23, 2023","excerpt":"
\\n
Work in progress
\\n
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. Additionally, we recommend to take a look at the upgraded DSF processes here:
"}');export{v as comp,T as data};
diff --git a/assets/create.html-D-hEIIMO.js b/assets/create.html-D-hEIIMO.js
new file mode 100644
index 000000000..91ca347e5
--- /dev/null
+++ b/assets/create.html-D-hEIIMO.js
@@ -0,0 +1 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as i,c as s,a as e,b as t,d as o,w as c}from"./app-kq9lCQfY.js";const p={},h={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),u={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function f(_,w){const a=n("RouteLink"),r=n("ExternalLinkIcon");return i(),s("div",null,[e("div",h,[d,e("p",null,[t("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 "),o(a,{to:"/oldstable/tutorial/"},{default:c(()=>[t("process plugin tutorial")]),_:1}),t(". Additionally, we recommend to take a look at the upgraded DSF processes here:")]),e("ul",null,[e("li",null,[t("The "),e("a",u,[t("hello world plugin"),o(r)])]),e("li",null,[t("The "),e("a",m,[t("ping pong plugin"),o(r)])]),e("li",null,[t("The "),e("a",g,[t("update allowlist plugin"),o(r)])])])])])}const v=l(p,[["render",f],["__file","create.html.vue"]]),T=JSON.parse('{"path":"/v1.3.1/develop/create.html","title":"Create a new process plugin","lang":"en-US","frontmatter":{"title":"Create a new process plugin","icon":"code"},"headers":[],"git":{"createdTime":1698748420000,"updatedTime":1699955216000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":0.29,"words":88},"filePathRelative":"v1.3.1/develop/create.md","localizedDate":"October 31, 2023","excerpt":"
\\n
Work in progress
\\n
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. Additionally, we recommend to take a look at the upgraded DSF processes here:
"}');export{v as comp,T as data};
diff --git a/assets/create.html-DM1ZPu4j.js b/assets/create.html-DM1ZPu4j.js
new file mode 100644
index 000000000..030b73136
--- /dev/null
+++ b/assets/create.html-DM1ZPu4j.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as p,a as t,b as e,d as o,w as l}from"./app-kq9lCQfY.js";const c={},h={class:"hint-container tip"},d=t("p",{class:"hint-container-title"},"Work in progress",-1),u={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function f(_,w){const n=a("RouteLink"),r=a("ExternalLinkIcon");return i(),p("div",null,[t("p",null,[e("Visit the "),o(n,{to:"/for-you/"},{default:l(()=>[e("how the DSF can help you")]),_:1}),e(" page to get started.")]),t("div",h,[d,t("p",null,[e("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 "),o(n,{to:"/oldstable/tutorial/"},{default:l(()=>[e("process plugin tutorial")]),_:1}),e(". Additionally, we recommend to take a look at the upgraded DSF processes here:")]),t("ul",null,[t("li",null,[e("The "),t("a",u,[e("hello world plugin"),o(r)])]),t("li",null,[e("The "),t("a",g,[e("ping pong plugin"),o(r)])]),t("li",null,[e("The "),t("a",m,[e("update allowlist plugin"),o(r)])])])])])}const v=s(c,[["render",f],["__file","create.html.vue"]]),y=JSON.parse('{"path":"/v1.5.2/develop/create.html","title":"Create a new process plugin","lang":"en-US","frontmatter":{"title":"Create a new process plugin","icon":"code"},"headers":[],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.34,"words":102},"filePathRelative":"v1.5.2/develop/create.md","localizedDate":"July 8, 2024","excerpt":"
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. Additionally, we recommend to take a look at the upgraded DSF processes here:
"}');export{v as comp,y as data};
diff --git a/assets/create.html-DTtN2S-o.js b/assets/create.html-DTtN2S-o.js
new file mode 100644
index 000000000..0dbb85ed7
--- /dev/null
+++ b/assets/create.html-DTtN2S-o.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as s,c as p,a as t,b as e,d as o,w as l}from"./app-kq9lCQfY.js";const c={},h={class:"hint-container tip"},d=t("p",{class:"hint-container-title"},"Work in progress",-1),u={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function f(_,w){const n=a("RouteLink"),r=a("ExternalLinkIcon");return s(),p("div",null,[t("p",null,[e("Visit the "),o(n,{to:"/for-you/"},{default:l(()=>[e("how the DSF can help you")]),_:1}),e(" page to get started.")]),t("div",h,[d,t("p",null,[e("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 "),o(n,{to:"/oldstable/tutorial/"},{default:l(()=>[e("process plugin tutorial")]),_:1}),e(". Additionally, we recommend to take a look at the upgraded DSF processes here:")]),t("ul",null,[t("li",null,[e("The "),t("a",u,[e("hello world plugin"),o(r)])]),t("li",null,[e("The "),t("a",g,[e("ping pong plugin"),o(r)])]),t("li",null,[e("The "),t("a",m,[e("update allowlist plugin"),o(r)])])])])])}const v=i(c,[["render",f],["__file","create.html.vue"]]),y=JSON.parse('{"path":"/v1.5.0/develop/create.html","title":"Create a new process plugin","lang":"en-US","frontmatter":{"title":"Create a new process plugin","icon":"code"},"headers":[],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.34,"words":102},"filePathRelative":"v1.5.0/develop/create.md","localizedDate":"February 20, 2024","excerpt":"
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. Additionally, we recommend to take a look at the upgraded DSF processes here:
"}');export{v as comp,y as data};
diff --git a/assets/create.html-DYPU2UUv.js b/assets/create.html-DYPU2UUv.js
new file mode 100644
index 000000000..7a8332619
--- /dev/null
+++ b/assets/create.html-DYPU2UUv.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as s,c as p,a as t,b as e,d as o,w as l}from"./app-kq9lCQfY.js";const c={},h={class:"hint-container tip"},d=t("p",{class:"hint-container-title"},"Work in progress",-1),u={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function f(_,w){const n=a("RouteLink"),r=a("ExternalLinkIcon");return s(),p("div",null,[t("p",null,[e("Visit the "),o(n,{to:"/for-you/"},{default:l(()=>[e("how the DSF can help you")]),_:1}),e(" page to get started.")]),t("div",h,[d,t("p",null,[e("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 "),o(n,{to:"/oldstable/tutorial/"},{default:l(()=>[e("process plugin tutorial")]),_:1}),e(". Additionally, we recommend to take a look at the upgraded DSF processes here:")]),t("ul",null,[t("li",null,[e("The "),t("a",u,[e("hello world plugin"),o(r)])]),t("li",null,[e("The "),t("a",m,[e("ping pong plugin"),o(r)])]),t("li",null,[e("The "),t("a",g,[e("update allowlist plugin"),o(r)])])])])])}const v=i(c,[["render",f],["__file","create.html.vue"]]),y=JSON.parse('{"path":"/stable/develop/create.html","title":"Create a new process plugin","lang":"en-US","frontmatter":{"title":"Create a new process plugin","icon":"code"},"headers":[],"git":{"createdTime":1688985700000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2},{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.34,"words":102},"filePathRelative":"stable/develop/create.md","localizedDate":"July 10, 2023","excerpt":"
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. Additionally, we recommend to take a look at the upgraded DSF processes here:
"}');export{v as comp,y as data};
diff --git a/assets/create.html-Dk6P19fM.js b/assets/create.html-Dk6P19fM.js
new file mode 100644
index 000000000..59e3aba3c
--- /dev/null
+++ b/assets/create.html-Dk6P19fM.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as s,c as p,a as t,b as e,d as o,w as l}from"./app-kq9lCQfY.js";const c={},h={class:"hint-container tip"},d=t("p",{class:"hint-container-title"},"Work in progress",-1),u={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function f(_,w){const n=a("RouteLink"),r=a("ExternalLinkIcon");return s(),p("div",null,[t("p",null,[e("Visit the "),o(n,{to:"/for-you/"},{default:l(()=>[e("how the DSF can help you")]),_:1}),e(" page to get started.")]),t("div",h,[d,t("p",null,[e("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 "),o(n,{to:"/oldstable/tutorial/"},{default:l(()=>[e("process plugin tutorial")]),_:1}),e(". Additionally, we recommend to take a look at the upgraded DSF processes here:")]),t("ul",null,[t("li",null,[e("The "),t("a",u,[e("hello world plugin"),o(r)])]),t("li",null,[e("The "),t("a",g,[e("ping pong plugin"),o(r)])]),t("li",null,[e("The "),t("a",m,[e("update allowlist plugin"),o(r)])])])])])}const v=i(c,[["render",f],["__file","create.html.vue"]]),y=JSON.parse('{"path":"/v1.4.0/develop/create.html","title":"Create a new process plugin","lang":"en-US","frontmatter":{"title":"Create a new process plugin","icon":"code"},"headers":[],"git":{"createdTime":1702917645000,"updatedTime":1706902325000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":0.34,"words":102},"filePathRelative":"v1.4.0/develop/create.md","localizedDate":"December 18, 2023","excerpt":"
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. Additionally, we recommend to take a look at the upgraded DSF processes here:
"}');export{v as comp,y as data};
diff --git a/assets/create.html-STcXv8Ol.js b/assets/create.html-STcXv8Ol.js
new file mode 100644
index 000000000..38f672939
--- /dev/null
+++ b/assets/create.html-STcXv8Ol.js
@@ -0,0 +1 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as i,c as s,a as e,b as t,d as o,w as c}from"./app-kq9lCQfY.js";const p={},h={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),m={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},u={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function f(_,w){const a=n("RouteLink"),r=n("ExternalLinkIcon");return i(),s("div",null,[e("div",h,[d,e("p",null,[t("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 "),o(a,{to:"/oldstable/tutorial/"},{default:c(()=>[t("process plugin tutorial")]),_:1}),t(". Additionally, we recommend to take a look at the upgraded DSF processes here:")]),e("ul",null,[e("li",null,[t("The "),e("a",m,[t("hello world plugin"),o(r)])]),e("li",null,[t("The "),e("a",u,[t("ping pong plugin"),o(r)])]),e("li",null,[t("The "),e("a",g,[t("update allowlist plugin"),o(r)])])])])])}const v=l(p,[["render",f],["__file","create.html.vue"]]),T=JSON.parse('{"path":"/v1.3.2/develop/create.html","title":"Create a new process plugin","lang":"en-US","frontmatter":{"title":"Create a new process plugin","icon":"code"},"headers":[],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.29,"words":88},"filePathRelative":"v1.3.2/develop/create.md","localizedDate":"December 4, 2023","excerpt":"
\\n
Work in progress
\\n
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. Additionally, we recommend to take a look at the upgraded DSF processes here:
"}');export{v as comp,T as data};
diff --git a/assets/documentation.html-BhU3Negt.js b/assets/documentation.html-BhU3Negt.js
new file mode 100644
index 000000000..25c03cf40
--- /dev/null
+++ b/assets/documentation.html-BhU3Negt.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as s,a as e,b as t,d as n}from"./app-kq9lCQfY.js";const u={},c=e("p",null,[e("strong",null,"Join us in enhancing our documentation!")],-1),l=e("p",null,"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!",-1),h=e("li",null,[e("strong",null,"Contact us with feedback"),t(": If you find any of our documentation unclear or if you think there's a topic not covered yet, please don't hesitate to reach out to us. Your perspective as a reader is invaluable in helping us to identify areas for improvement.")],-1),d=e("strong",null,"Create an issue",-1),m={href:"https://github.com/datasharingframework/datasharingframework.github.io/issues",target:"_blank",rel:"noopener noreferrer"},p=e("strong",null,"Contribute directly with a pull request",-1),g={href:"https://github.com/datasharingframework/datasharingframework.github.io",target:"_blank",rel:"noopener noreferrer"},f=e("p",null,"We're excited to see your suggestions and are grateful for every contribution that helps us improve. Let's build better documentation together!",-1);function y(b,w){const o=a("ExternalLinkIcon");return i(),s("div",null,[c,l,e("ol",null,[h,e("li",null,[d,t(": You noticed something that needs fixing or you have a suggestion? Head over to our GitHub repository at "),e("a",m,[t("Data Sharing Framework Documentation"),n(o)]),t(" and please create an issue. This way, our team and other contributors can track and address documentation changes systematically.")]),e("li",null,[p,t(": If you're feeling proactive and want to make direct changes, you're more than welcome to submit a pull request. Visit our GitHub repository at "),e("a",g,[t("Data Sharing Framework Documentation"),n(o)]),t(" and feel free to propose your changes. Whether it's a typo fix, a new section, or enhanced explanations, every contribution counts.")])]),f])}const v=r(u,[["render",y],["__file","documentation.html.vue"]]),x=JSON.parse(`{"path":"/v1.5.0/contribute/documentation.html","title":"Contribute documentation","lang":"en-US","frontmatter":{"title":"Contribute documentation","icon":"info"},"headers":[],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.74,"words":222},"filePathRelative":"v1.5.0/contribute/documentation.md","localizedDate":"February 20, 2024","excerpt":"
Join us in enhancing our documentation!
\\n
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!
\\n\\n
Contact us with feedback: If you find any of our documentation unclear or if you think there's a topic not covered yet, please don't hesitate to reach out to us. Your perspective as a reader is invaluable in helping us to identify areas for improvement.
\\n
Create an issue: You noticed something that needs fixing or you have a suggestion? Head over to our GitHub repository at Data Sharing Framework Documentation and please create an issue. This way, our team and other contributors can track and address documentation changes systematically.
\\n
Contribute directly with a pull request: If you're feeling proactive and want to make direct changes, you're more than welcome to submit a pull request. Visit our GitHub repository at Data Sharing Framework Documentation and feel free to propose your changes. Whether it's a typo fix, a new section, or enhanced explanations, every contribution counts.
\\n"}`);export{v as comp,x as data};
diff --git a/assets/documentation.html-C_QbE0N7.js b/assets/documentation.html-C_QbE0N7.js
new file mode 100644
index 000000000..55c9adead
--- /dev/null
+++ b/assets/documentation.html-C_QbE0N7.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as s,a as e,b as t,d as n}from"./app-kq9lCQfY.js";const u={},c=e("p",null,[e("strong",null,"Join us in enhancing our documentation!")],-1),l=e("p",null,"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!",-1),h=e("li",null,[e("strong",null,"Contact us with feedback"),t(": If you find any of our documentation unclear or if you think there's a topic not covered yet, please don't hesitate to reach out to us. Your perspective as a reader is invaluable in helping us to identify areas for improvement.")],-1),d=e("strong",null,"Create an issue",-1),m={href:"https://github.com/datasharingframework/datasharingframework.github.io/issues",target:"_blank",rel:"noopener noreferrer"},p=e("strong",null,"Contribute directly with a pull request",-1),g={href:"https://github.com/datasharingframework/datasharingframework.github.io",target:"_blank",rel:"noopener noreferrer"},f=e("p",null,"We're excited to see your suggestions and are grateful for every contribution that helps us improve. Let's build better documentation together!",-1);function y(b,w){const o=a("ExternalLinkIcon");return i(),s("div",null,[c,l,e("ol",null,[h,e("li",null,[d,t(": You noticed something that needs fixing or you have a suggestion? Head over to our GitHub repository at "),e("a",m,[t("Data Sharing Framework Documentation"),n(o)]),t(" and please create an issue. This way, our team and other contributors can track and address documentation changes systematically.")]),e("li",null,[p,t(": If you're feeling proactive and want to make direct changes, you're more than welcome to submit a pull request. Visit our GitHub repository at "),e("a",g,[t("Data Sharing Framework Documentation"),n(o)]),t(" and feel free to propose your changes. Whether it's a typo fix, a new section, or enhanced explanations, every contribution counts.")])]),f])}const v=r(u,[["render",y],["__file","documentation.html.vue"]]),x=JSON.parse(`{"path":"/v1.4.0/contribute/documentation.html","title":"Contribute documentation","lang":"en-US","frontmatter":{"title":"Contribute documentation","icon":"info"},"headers":[],"git":{"createdTime":1706191215000,"updatedTime":1706191215000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.74,"words":222},"filePathRelative":"v1.4.0/contribute/documentation.md","localizedDate":"January 25, 2024","excerpt":"
Join us in enhancing our documentation!
\\n
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!
\\n\\n
Contact us with feedback: If you find any of our documentation unclear or if you think there's a topic not covered yet, please don't hesitate to reach out to us. Your perspective as a reader is invaluable in helping us to identify areas for improvement.
\\n
Create an issue: You noticed something that needs fixing or you have a suggestion? Head over to our GitHub repository at Data Sharing Framework Documentation and please create an issue. This way, our team and other contributors can track and address documentation changes systematically.
\\n
Contribute directly with a pull request: If you're feeling proactive and want to make direct changes, you're more than welcome to submit a pull request. Visit our GitHub repository at Data Sharing Framework Documentation and feel free to propose your changes. Whether it's a typo fix, a new section, or enhanced explanations, every contribution counts.
\\n"}`);export{v as comp,x as data};
diff --git a/assets/documentation.html-D45C1fbl.js b/assets/documentation.html-D45C1fbl.js
new file mode 100644
index 000000000..edc6400c0
--- /dev/null
+++ b/assets/documentation.html-D45C1fbl.js
@@ -0,0 +1 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as i,c as s,a as e,b as t,d as n}from"./app-kq9lCQfY.js";const u={},c=e("p",null,[e("strong",null,"Join us in enhancing our documentation!")],-1),l=e("p",null,"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!",-1),d=e("li",null,[e("strong",null,"Contact us with feedback"),t(": If you find any of our documentation unclear or if you think there's a topic not covered yet, please don't hesitate to reach out to us. Your perspective as a reader is invaluable in helping us to identify areas for improvement.")],-1),h=e("strong",null,"Create an issue",-1),m={href:"https://github.com/datasharingframework/datasharingframework.github.io/issues",target:"_blank",rel:"noopener noreferrer"},p=e("strong",null,"Contribute directly with a pull request",-1),g={href:"https://github.com/datasharingframework/datasharingframework.github.io",target:"_blank",rel:"noopener noreferrer"},f=e("p",null,"We're excited to see your suggestions and are grateful for every contribution that helps us improve. Let's build better documentation together!",-1);function y(b,_){const o=r("ExternalLinkIcon");return i(),s("div",null,[c,l,e("ol",null,[d,e("li",null,[h,t(": You noticed something that needs fixing or you have a suggestion? Head over to our GitHub repository at "),e("a",m,[t("Data Sharing Framework Documentation"),n(o)]),t(" and please create an issue. This way, our team and other contributors can track and address documentation changes systematically.")]),e("li",null,[p,t(": If you're feeling proactive and want to make direct changes, you're more than welcome to submit a pull request. Visit our GitHub repository at "),e("a",g,[t("Data Sharing Framework Documentation"),n(o)]),t(" and feel free to propose your changes. Whether it's a typo fix, a new section, or enhanced explanations, every contribution counts.")])]),f])}const v=a(u,[["render",y],["__file","documentation.html.vue"]]),x=JSON.parse(`{"path":"/v1.5.2/contribute/documentation.html","title":"Contribute documentation","lang":"en-US","frontmatter":{"title":"Contribute documentation","icon":"info"},"headers":[],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.74,"words":222},"filePathRelative":"v1.5.2/contribute/documentation.md","localizedDate":"July 8, 2024","excerpt":"
Join us in enhancing our documentation!
\\n
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!
\\n\\n
Contact us with feedback: If you find any of our documentation unclear or if you think there's a topic not covered yet, please don't hesitate to reach out to us. Your perspective as a reader is invaluable in helping us to identify areas for improvement.
\\n
Create an issue: You noticed something that needs fixing or you have a suggestion? Head over to our GitHub repository at Data Sharing Framework Documentation and please create an issue. This way, our team and other contributors can track and address documentation changes systematically.
\\n
Contribute directly with a pull request: If you're feeling proactive and want to make direct changes, you're more than welcome to submit a pull request. Visit our GitHub repository at Data Sharing Framework Documentation and feel free to propose your changes. Whether it's a typo fix, a new section, or enhanced explanations, every contribution counts.
\\n"}`);export{v as comp,x as data};
diff --git a/assets/documentation.html-DQT8Cd3U.js b/assets/documentation.html-DQT8Cd3U.js
new file mode 100644
index 000000000..e8fe8188b
--- /dev/null
+++ b/assets/documentation.html-DQT8Cd3U.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as s,a as e,b as t,d as n}from"./app-kq9lCQfY.js";const u={},c=e("p",null,[e("strong",null,"Join us in enhancing our documentation!")],-1),l=e("p",null,"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!",-1),h=e("li",null,[e("strong",null,"Contact us with feedback"),t(": If you find any of our documentation unclear or if you think there's a topic not covered yet, please don't hesitate to reach out to us. Your perspective as a reader is invaluable in helping us to identify areas for improvement.")],-1),d=e("strong",null,"Create an issue",-1),m={href:"https://github.com/datasharingframework/datasharingframework.github.io/issues",target:"_blank",rel:"noopener noreferrer"},p=e("strong",null,"Contribute directly with a pull request",-1),g={href:"https://github.com/datasharingframework/datasharingframework.github.io",target:"_blank",rel:"noopener noreferrer"},f=e("p",null,"We're excited to see your suggestions and are grateful for every contribution that helps us improve. Let's build better documentation together!",-1);function y(b,w){const o=a("ExternalLinkIcon");return i(),s("div",null,[c,l,e("ol",null,[h,e("li",null,[d,t(": You noticed something that needs fixing or you have a suggestion? Head over to our GitHub repository at "),e("a",m,[t("Data Sharing Framework Documentation"),n(o)]),t(" and please create an issue. This way, our team and other contributors can track and address documentation changes systematically.")]),e("li",null,[p,t(": If you're feeling proactive and want to make direct changes, you're more than welcome to submit a pull request. Visit our GitHub repository at "),e("a",g,[t("Data Sharing Framework Documentation"),n(o)]),t(" and feel free to propose your changes. Whether it's a typo fix, a new section, or enhanced explanations, every contribution counts.")])]),f])}const v=r(u,[["render",y],["__file","documentation.html.vue"]]),x=JSON.parse(`{"path":"/v1.5.1/contribute/documentation.html","title":"Contribute documentation","lang":"en-US","frontmatter":{"title":"Contribute documentation","icon":"info"},"headers":[],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.74,"words":222},"filePathRelative":"v1.5.1/contribute/documentation.md","localizedDate":"April 17, 2024","excerpt":"
Join us in enhancing our documentation!
\\n
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!
\\n\\n
Contact us with feedback: If you find any of our documentation unclear or if you think there's a topic not covered yet, please don't hesitate to reach out to us. Your perspective as a reader is invaluable in helping us to identify areas for improvement.
\\n
Create an issue: You noticed something that needs fixing or you have a suggestion? Head over to our GitHub repository at Data Sharing Framework Documentation and please create an issue. This way, our team and other contributors can track and address documentation changes systematically.
\\n
Contribute directly with a pull request: If you're feeling proactive and want to make direct changes, you're more than welcome to submit a pull request. Visit our GitHub repository at Data Sharing Framework Documentation and feel free to propose your changes. Whether it's a typo fix, a new section, or enhanced explanations, every contribution counts.
\\n"}`);export{v as comp,x as data};
diff --git a/assets/documentation.html-DZPnnDjT.js b/assets/documentation.html-DZPnnDjT.js
new file mode 100644
index 000000000..ff68e68b0
--- /dev/null
+++ b/assets/documentation.html-DZPnnDjT.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as s,a as e,b as t,d as n}from"./app-kq9lCQfY.js";const u={},c=e("p",null,[e("strong",null,"Join us in enhancing our documentation!")],-1),l=e("p",null,"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!",-1),d=e("li",null,[e("strong",null,"Contact us with feedback"),t(": If you find any of our documentation unclear or if you think there's a topic not covered yet, please don't hesitate to reach out to us. Your perspective as a reader is invaluable in helping us to identify areas for improvement.")],-1),h=e("strong",null,"Create an issue",-1),m={href:"https://github.com/datasharingframework/datasharingframework.github.io/issues",target:"_blank",rel:"noopener noreferrer"},p=e("strong",null,"Contribute directly with a pull request",-1),g={href:"https://github.com/datasharingframework/datasharingframework.github.io",target:"_blank",rel:"noopener noreferrer"},f=e("p",null,"We're excited to see your suggestions and are grateful for every contribution that helps us improve. Let's build better documentation together!",-1);function y(b,_){const o=a("ExternalLinkIcon");return i(),s("div",null,[c,l,e("ol",null,[d,e("li",null,[h,t(": You noticed something that needs fixing or you have a suggestion? Head over to our GitHub repository at "),e("a",m,[t("Data Sharing Framework Documentation"),n(o)]),t(" and please create an issue. This way, our team and other contributors can track and address documentation changes systematically.")]),e("li",null,[p,t(": If you're feeling proactive and want to make direct changes, you're more than welcome to submit a pull request. Visit our GitHub repository at "),e("a",g,[t("Data Sharing Framework Documentation"),n(o)]),t(" and feel free to propose your changes. Whether it's a typo fix, a new section, or enhanced explanations, every contribution counts.")])]),f])}const v=r(u,[["render",y],["__file","documentation.html.vue"]]),x=JSON.parse(`{"path":"/stable/contribute/documentation.html","title":"Contribute documentation","lang":"en-US","frontmatter":{"title":"Contribute documentation","icon":"info"},"headers":[],"git":{"createdTime":null,"updatedTime":null,"contributors":[]},"readingTime":{"minutes":0.74,"words":222},"filePathRelative":"stable/contribute/documentation.md","excerpt":"
Join us in enhancing our documentation!
\\n
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!
\\n\\n
Contact us with feedback: If you find any of our documentation unclear or if you think there's a topic not covered yet, please don't hesitate to reach out to us. Your perspective as a reader is invaluable in helping us to identify areas for improvement.
\\n
Create an issue: You noticed something that needs fixing or you have a suggestion? Head over to our GitHub repository at Data Sharing Framework Documentation and please create an issue. This way, our team and other contributors can track and address documentation changes systematically.
\\n
Contribute directly with a pull request: If you're feeling proactive and want to make direct changes, you're more than welcome to submit a pull request. Visit our GitHub repository at Data Sharing Framework Documentation and feel free to propose your changes. Whether it's a typo fix, a new section, or enhanced explanations, every contribution counts.
\\n"}`);export{v as comp,x as data};
diff --git a/assets/dsf-concept-Dbcu0twt.js b/assets/dsf-concept-Dbcu0twt.js
new file mode 100644
index 000000000..5fb26f4e0
--- /dev/null
+++ b/assets/dsf-concept-Dbcu0twt.js
@@ -0,0 +1 @@
+const o="/photos/info/introduction/dsf-concept.png";export{o as _};
diff --git a/assets/dsf-for-dev.html-B0G-bUeQ.js b/assets/dsf-for-dev.html-B0G-bUeQ.js
new file mode 100644
index 000000000..b32c24b6d
--- /dev/null
+++ b/assets/dsf-for-dev.html-B0G-bUeQ.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as r,c as t}from"./app-kq9lCQfY.js";const o={};function i(s,a){return r(),t("div")}const m=e(o,[["render",i],["__file","dsf-for-dev.html.vue"]]),d=JSON.parse('{"path":"/v1.5.0/dsf-for-dev.html","title":"DSF for Developers","lang":"en-US","frontmatter":{"title":"DSF for Developers","icon":"info"},"headers":[],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.5.0/dsf-for-dev.md","localizedDate":"February 20, 2024","excerpt":""}');export{m as comp,d as data};
diff --git a/assets/dsf-for-dev.html-BY2mYYLX.js b/assets/dsf-for-dev.html-BY2mYYLX.js
new file mode 100644
index 000000000..39e15921a
--- /dev/null
+++ b/assets/dsf-for-dev.html-BY2mYYLX.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o}from"./app-kq9lCQfY.js";const r={};function i(s,a){return t(),o("div")}const m=e(r,[["render",i],["__file","dsf-for-dev.html.vue"]]),d=JSON.parse('{"path":"/v1.1.0/dsf-for-dev.html","title":"DSF for Developers","lang":"en-US","frontmatter":{"title":"DSF for Developers","icon":"info"},"headers":[],"git":{"createdTime":1692790324000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.1.0/dsf-for-dev.md","localizedDate":"August 23, 2023","excerpt":""}');export{m as comp,d as data};
diff --git a/assets/dsf-for-dev.html-CM31T0vP.js b/assets/dsf-for-dev.html-CM31T0vP.js
new file mode 100644
index 000000000..a96913487
--- /dev/null
+++ b/assets/dsf-for-dev.html-CM31T0vP.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o}from"./app-kq9lCQfY.js";const r={};function i(s,n){return t(),o("div")}const c=e(r,[["render",i],["__file","dsf-for-dev.html.vue"]]),d=JSON.parse('{"path":"/stable/dsf-for-dev.html","title":"DSF for Developers","lang":"en-US","frontmatter":{"title":"DSF for Developers","icon":"info"},"headers":[],"git":{"createdTime":1690473388000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"stable/dsf-for-dev.md","localizedDate":"July 27, 2023","excerpt":""}');export{c as comp,d as data};
diff --git a/assets/dsf-for-dev.html-Cwbe2fMU.js b/assets/dsf-for-dev.html-Cwbe2fMU.js
new file mode 100644
index 000000000..414e7933a
--- /dev/null
+++ b/assets/dsf-for-dev.html-Cwbe2fMU.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o}from"./app-kq9lCQfY.js";const r={};function i(s,a){return t(),o("div")}const m=e(r,[["render",i],["__file","dsf-for-dev.html.vue"]]),d=JSON.parse('{"path":"/v1.3.1/dsf-for-dev.html","title":"DSF for Developers","lang":"en-US","frontmatter":{"title":"DSF for Developers","icon":"info"},"headers":[],"git":{"createdTime":1698748420000,"updatedTime":1698748420000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.3.1/dsf-for-dev.md","localizedDate":"October 31, 2023","excerpt":""}');export{m as comp,d as data};
diff --git a/assets/dsf-for-dev.html-DU7CIKrg.js b/assets/dsf-for-dev.html-DU7CIKrg.js
new file mode 100644
index 000000000..10c41ca9f
--- /dev/null
+++ b/assets/dsf-for-dev.html-DU7CIKrg.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o}from"./app-kq9lCQfY.js";const r={};function i(s,a){return t(),o("div")}const m=e(r,[["render",i],["__file","dsf-for-dev.html.vue"]]),d=JSON.parse('{"path":"/v1.5.1/dsf-for-dev.html","title":"DSF for Developers","lang":"en-US","frontmatter":{"title":"DSF for Developers","icon":"info"},"headers":[],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.5.1/dsf-for-dev.md","localizedDate":"April 17, 2024","excerpt":""}');export{m as comp,d as data};
diff --git a/assets/dsf-for-dev.html-DiPpVl74.js b/assets/dsf-for-dev.html-DiPpVl74.js
new file mode 100644
index 000000000..f8227f77d
--- /dev/null
+++ b/assets/dsf-for-dev.html-DiPpVl74.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o}from"./app-kq9lCQfY.js";const r={};function i(s,a){return t(),o("div")}const m=e(r,[["render",i],["__file","dsf-for-dev.html.vue"]]),d=JSON.parse('{"path":"/v1.4.0/dsf-for-dev.html","title":"DSF for Developers","lang":"en-US","frontmatter":{"title":"DSF for Developers","icon":"info"},"headers":[],"git":{"createdTime":1702917645000,"updatedTime":1702917645000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.4.0/dsf-for-dev.md","localizedDate":"December 18, 2023","excerpt":""}');export{m as comp,d as data};
diff --git a/assets/dsf-for-dev.html-DtYXgtPv.js b/assets/dsf-for-dev.html-DtYXgtPv.js
new file mode 100644
index 000000000..526260e5b
--- /dev/null
+++ b/assets/dsf-for-dev.html-DtYXgtPv.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o}from"./app-kq9lCQfY.js";const r={};function i(s,a){return t(),o("div")}const m=e(r,[["render",i],["__file","dsf-for-dev.html.vue"]]),d=JSON.parse('{"path":"/v1.0.0/dsf-for-dev.html","title":"DSF for Developers","lang":"en-US","frontmatter":{"title":"DSF for Developers","icon":"info"},"headers":[],"git":{"createdTime":1692708510000,"updatedTime":1692708510000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.0.0/dsf-for-dev.md","localizedDate":"August 22, 2023","excerpt":""}');export{m as comp,d as data};
diff --git a/assets/dsf-for-dev.html-DyM8l128.js b/assets/dsf-for-dev.html-DyM8l128.js
new file mode 100644
index 000000000..66531e020
--- /dev/null
+++ b/assets/dsf-for-dev.html-DyM8l128.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o}from"./app-kq9lCQfY.js";const r={};function a(n,i){return t(),o("div")}const c=e(r,[["render",a],["__file","dsf-for-dev.html.vue"]]),m=JSON.parse('{"path":"/v1.5.2/dsf-for-dev.html","title":"DSF for Developers","lang":"en-US","frontmatter":{"title":"DSF for Developers","icon":"info"},"headers":[],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.5.2/dsf-for-dev.md","localizedDate":"July 8, 2024","excerpt":""}');export{c as comp,m as data};
diff --git a/assets/dsf-for-dev.html-gVMw1jIa.js b/assets/dsf-for-dev.html-gVMw1jIa.js
new file mode 100644
index 000000000..85cc1c144
--- /dev/null
+++ b/assets/dsf-for-dev.html-gVMw1jIa.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o}from"./app-kq9lCQfY.js";const r={};function i(s,a){return t(),o("div")}const m=e(r,[["render",i],["__file","dsf-for-dev.html.vue"]]),d=JSON.parse('{"path":"/v1.3.2/dsf-for-dev.html","title":"DSF for Developers","lang":"en-US","frontmatter":{"title":"DSF for Developers","icon":"info"},"headers":[],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.3.2/dsf-for-dev.md","localizedDate":"December 4, 2023","excerpt":""}');export{m as comp,d as data};
diff --git a/assets/dsf-for-dev.html-mtyY8dnA.js b/assets/dsf-for-dev.html-mtyY8dnA.js
new file mode 100644
index 000000000..2d9dfd6a2
--- /dev/null
+++ b/assets/dsf-for-dev.html-mtyY8dnA.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o}from"./app-kq9lCQfY.js";const r={};function i(s,a){return t(),o("div")}const m=e(r,[["render",i],["__file","dsf-for-dev.html.vue"]]),d=JSON.parse('{"path":"/v1.3.0/dsf-for-dev.html","title":"DSF for Developers","lang":"en-US","frontmatter":{"title":"DSF for Developers","icon":"info"},"headers":[],"git":{"createdTime":1696944513000,"updatedTime":1696944513000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.3.0/dsf-for-dev.md","localizedDate":"October 10, 2023","excerpt":""}');export{m as comp,d as data};
diff --git a/assets/dsf-for-dev.html-ztYNqQri.js b/assets/dsf-for-dev.html-ztYNqQri.js
new file mode 100644
index 000000000..d8371801d
--- /dev/null
+++ b/assets/dsf-for-dev.html-ztYNqQri.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o}from"./app-kq9lCQfY.js";const r={};function i(s,a){return t(),o("div")}const m=e(r,[["render",i],["__file","dsf-for-dev.html.vue"]]),d=JSON.parse('{"path":"/v1.2.0/dsf-for-dev.html","title":"DSF for Developers","lang":"en-US","frontmatter":{"title":"DSF for Developers","icon":"info"},"headers":[],"git":{"createdTime":1694544770000,"updatedTime":1694544770000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.2.0/dsf-for-dev.md","localizedDate":"September 12, 2023","excerpt":""}');export{m as comp,d as data};
diff --git a/assets/eclipseContent.html-kdqNoPL9.js b/assets/eclipseContent.html-kdqNoPL9.js
new file mode 100644
index 000000000..15ceed8a6
--- /dev/null
+++ b/assets/eclipseContent.html-kdqNoPL9.js
@@ -0,0 +1,323 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as c,c as u,a as n,d as s,w as t,e as l,b as p}from"./app-kq9lCQfY.js";const i={},k=l(`
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<profilesversion="15">
+ <profilekind="CodeFormatterProfile"name="highmed_dsf"version="15">
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment"value="common_lines"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation"value="common_lines"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.blank_lines_after_imports"value="1"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement"value="common_lines"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.indentation.size"value="4"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration"value="common_lines"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.align_with_spaces"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.disabling_tag"value="@formatter:off"/>
+ <settingid="org.eclipse.jdt.core.formatter.continuation_indentation"value="2"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_enum_constants"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.blank_lines_before_imports"value="1"/>
+ <settingid="org.eclipse.jdt.core.formatter.blank_lines_after_package"value="1"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement"value="common_lines"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.indent_root_tags"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.enabling_tag"value="@formatter:on"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations"value="1"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line"value="one_line_never"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration"value="next_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.line_length"value="120"/>
+ <settingid="org.eclipse.jdt.core.formatter.use_on_off_tags"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line"value="one_line_never"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line"value="one_line_never"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration"value="next_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line"value="one_line_never"/>
+ <settingid="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line"value="one_line_never"/>
+ <settingid="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_binary_expression"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause"value="common_lines"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line"value="one_line_never"/>
+ <settingid="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_block"value="next_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration"value="next_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body"value="next_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.compact_else_if"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_type_parameters"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_compact_loops"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve"value="1"/>
+ <settingid="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation"value="common_lines"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.format_line_comments"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.align_type_members_on_columns"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_assignment"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_module_statements"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line"value="one_line_never"/>
+ <settingid="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression"value="80"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration"value="next_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case"value="next_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.format_header"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_method_declaration"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.join_wrapped_lines"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines"value="2147483647"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration"value="next_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try"value="80"/>
+ <settingid="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause"value="common_lines"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line"value="one_line_never"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.tabulation.size"value="4"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.format_source_code"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.blank_lines_before_field"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer"value="2"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.blank_lines_before_method"value="1"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_switch"value="next_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.format_html"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration"value="common_lines"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_compact_if"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line"value="one_line_never"/>
+ <settingid="org.eclipse.jdt.core.formatter.indent_empty_lines"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_type_arguments"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk"value="1"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_after_label"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.blank_lines_before_member_type"value="1"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_semicolon"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.format_block_comments"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields"value="16"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer"value="end_of_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.wrap_before_binary_operator"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration"value="common_lines"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line"value="one_line_never"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant"value="next_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration"value="next_line"/>
+ <settingid="org.eclipse.jdt.core.formatter.blank_lines_before_package"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header"value="0"/>
+ <settingid="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line"value="false"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.join_lines_in_comments"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.comment.indent_parameter_description"value="true"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement"value="insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.tabulation.char"value="tab"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups"value="1"/>
+ <settingid="org.eclipse.jdt.core.formatter.lineSplit"value="120"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation"value="do not insert"/>
+ <settingid="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch"value="insert"/>
+ </profile>
+</profiles>
+
<?xml version=\\"1.0\\" encoding=\\"UTF-8\\" standalone=\\"no\\"?>\\n<profilesversion=\\"15\\">\\n <profilekind=\\"CodeFormatterProfile\\"name=\\"highmed_dsf\\"version=\\"15\\">\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_ellipsis\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment\\"value=\\"common_lines\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation\\"value=\\"common_lines\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.blank_lines_after_imports\\"value=\\"1\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement\\"value=\\"common_lines\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.format_javadoc_comments\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.indentation.size\\"value=\\"4\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration\\"value=\\"common_lines\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.align_with_spaces\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.disabling_tag\\"value=\\"@formatter:off\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.continuation_indentation\\"value=\\"2\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_enum_constants\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.blank_lines_before_imports\\"value=\\"1\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.blank_lines_after_package\\"value=\\"1\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_binary_operator\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement\\"value=\\"common_lines\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.indent_root_tags\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.enabling_tag\\"value=\\"@formatter:on\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations\\"value=\\"1\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line\\"value=\\"one_line_never\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.indent_statements_compare_to_block\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration\\"value=\\"next_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.line_length\\"value=\\"120\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.use_on_off_tags\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_method_body_on_one_line\\"value=\\"one_line_never\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line\\"value=\\"one_line_never\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_method_declaration\\"value=\\"next_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line\\"value=\\"one_line_never\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line\\"value=\\"one_line_never\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_binary_expression\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause\\"value=\\"common_lines\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line\\"value=\\"one_line_never\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_block\\"value=\\"next_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration\\"value=\\"next_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_lambda_body\\"value=\\"next_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.compact_else_if\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_type_parameters\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_compact_loops\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_binary_operator\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_unary_operator\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve\\"value=\\"1\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation\\"value=\\"common_lines\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_ellipsis\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.format_line_comments\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.align_type_members_on_columns\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_assignment\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_module_statements\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line\\"value=\\"one_line_never\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_conditional_expression\\"value=\\"80\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration\\"value=\\"next_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_block_in_case\\"value=\\"next_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.format_header\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_method_declaration\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.join_wrapped_lines\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.wrap_before_conditional_operator\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines\\"value=\\"2147483647\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration\\"value=\\"next_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_resources_in_try\\"value=\\"80\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause\\"value=\\"common_lines\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_code_block_on_one_line\\"value=\\"one_line_never\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.tabulation.size\\"value=\\"4\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.format_source_code\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.blank_lines_before_field\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer\\"value=\\"2\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.blank_lines_before_method\\"value=\\"1\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.wrap_before_assignment_operator\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_switch\\"value=\\"next_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.format_html\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration\\"value=\\"common_lines\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_compact_if\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line\\"value=\\"one_line_never\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.indent_empty_lines\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_type_arguments\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_unary_operator\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk\\"value=\\"1\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_after_label\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.blank_lines_before_member_type\\"value=\\"1\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_semicolon\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.format_block_comments\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.indent_statements_compare_to_body\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_multiple_fields\\"value=\\"16\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_array_initializer\\"value=\\"end_of_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.wrap_before_binary_operator\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration\\"value=\\"common_lines\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line\\"value=\\"one_line_never\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_enum_constant\\"value=\\"next_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.brace_position_for_type_declaration\\"value=\\"next_line\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.blank_lines_before_package\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header\\"value=\\"0\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line\\"value=\\"false\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.join_lines_in_comments\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.comment.indent_parameter_description\\"value=\\"true\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement\\"value=\\"insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.tabulation.char\\"value=\\"tab\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.blank_lines_between_import_groups\\"value=\\"1\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.lineSplit\\"value=\\"120\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation\\"value=\\"do not insert\\"/>\\n <settingid=\\"org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch\\"value=\\"insert\\"/>\\n </profile>\\n</profiles>\\n
"}');export{d as comp,q as data};
diff --git a/assets/ex11-docker-composeyml.html-MLKKlt0T.js b/assets/ex11-docker-composeyml.html-MLKKlt0T.js
new file mode 100644
index 000000000..9d2251add
--- /dev/null
+++ b/assets/ex11-docker-composeyml.html-MLKKlt0T.js
@@ -0,0 +1,459 @@
+import{_ as p}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as l,c,a as t,d as a,w as e,b as n,e as u}from"./app-kq9lCQfY.js";const o={},r=u(`
"}');export{m as comp,E as data};
diff --git a/assets/exercise1-simpleProcess.html-1gmKbyng.js b/assets/exercise1-simpleProcess.html-1gmKbyng.js
new file mode 100644
index 000000000..377fd208e
--- /dev/null
+++ b/assets/exercise1-simpleProcess.html-1gmKbyng.js
@@ -0,0 +1,4 @@
+import{_ as c}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as l,c as d,a as t,d as s,w as a,b as e,e as i}from"./app-kq9lCQfY.js";const h={},u=i('
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.
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.
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.
Start the DSF FHIR server for the Test_DIC organization in a console at location .../dsf-process-tutorial/test-setup:
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.
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
+
`,3),V={href:"https://dic/fhir/ActivityDefinition",target:"_blank",rel:"noopener noreferrer"},J={href:"https://dic/fhir/StructureDefinition?url=http://highmed.org/fhir/StructureDefinition/task-hello-dic",target:"_blank",rel:"noopener noreferrer"},L={start:"3"},G=t("code",null,"highmedorg_helloDic",-1),W={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},U={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},O={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},Q=t("code",null,"main",-1),X=t("code",null,"org.highmed.dsf.process.tutorial.TutorialExampleStarter",-1),Y=t("ul",null,[t("li",null,[e("Either specify the location and password via program arguments: 1. location of the client certificate ("),t("code",null,".../dsf-process-tutorial/test-data-generator/cert/Webbrowser_Test_User/Webbrowser_Test_User_certificate.p12"),e("), 2. password for the client certificate ("),t("code",null,"password"),e(")")]),t("li",null,[e("Or set the environment variables "),t("code",null,"DSF_CLIENT_CERTIFICATE_PATH"),e(" and "),t("code",null,"DSF_CLIENT_CERTIFICATE_PASSWORD"),e(" with the appropriate values.")])],-1),K={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},Z=t("code",null,"HTTP 201: Created",-1),$={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},ee=t("p",null,[e("Verify that the "),t("code",null,"highmedorg_helloDic"),e(" 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 "),t("code",null,"HelloDic"),e(" class and end with a message showing that the process finished.")],-1),te=t("hr",null,null,-1);function se(re,oe){const o=n("RouteLink"),r=n("ExternalLinkIcon");return l(),d("div",null,[t("p",null,[s(o,{to:"/oldstable/tutorial/prerequisites.html"},{default:a(()=>[e("Prerequisites")]),_:1}),e(" | Exercise 1 | "),s(o,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:a(()=>[e("Exercise 1.1")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:a(()=>[e("Exercise 2")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:a(()=>[e("Exercise 3")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:a(()=>[e("Exercise 4")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:a(()=>[e("Exercise 5")]),_:1})]),u,t("p",null,[e("The most imported Java class used to specify the process plugin for the DSF BPE server is a class that implements the "),p,e(" interface from the DSF "),t("a",f,[e("dsf-bpe-process-base"),s(r)]),e(" module. The DSF BPE server searches for classes implementing this interface using the Java "),t("a",m,[e("ServiceLoader"),s(r)]),e(" mechanism. For this tutorial the "),g,e(" class implements this interface. It is appropriately specified in the "),_,e(".ProcessPluginDefinition file. The "),b,e(" 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 "),v,e(" class specifies what via "),t("a",x,[e("Spring-Framework configuration class"),s(r)]),e(" with Spring Beans are used for the process plugin specific Spring Context. For this plugin the "),k,e(" cass is used to define Spring Beans.")]),t("p",null,[e("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 "),t("a",w,[e("ServiceTask"),s(r)]),e(" 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 "),T,e(" from the DSF "),t("a",y,[e("dsf-bpe-process-base"),s(r)]),e(" module and the class needs to be defined as as Spring Bean.")]),S,t("p",null,[e("Business process instances are started or the execution continued via FHIR "),t("a",D,[e("Task"),s(r)]),e(" resources. The "),t("a",E,[e("Task"),s(r)]),e(" 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 "),t("a",F,[e("Task"),s(r)]),e(` 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 `),P,e(" has methods to access both types of "),t("a",R,[e("Task"),s(r)]),e(" resources.")]),I,t("p",null,[e("FHIR "),t("a",B,[e("ActivityDefinition"),s(r)]),e(" 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 "),t("a",H,[e("Task"),s(r)]),e(" 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 "),t("a",A,[e("ActivityDefinition"),s(r)]),e(" 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.")]),t("p",null,[e("We will take a closer look as "),t("a",C,[e("ActivityDefinition"),s(r)]),e(" resources in "),s(o,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:a(()=>[e("Exercise 3")]),_:1}),e(" and "),s(o,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:a(()=>[e("Exercise 5")]),_:1}),e(".")]),N,t("p",null,[e("Verify the DSF FHIR server started successfully. You can access the webservice of the DSF FHIR server at "),t("a",j,[e("https://dic/fhir"),s(r)]),e("."),q,e(" 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 "),M,e(" (Password: password). Add the certificate and the generated Root CA to your browser certificate store.")]),z,t("p",null,[e("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 "),t("a",V,[e("https://dic/fhir/ActivityDefinition"),s(r)]),e(" 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 "),t("a",J,[e("https://dic/fhir/StructureDefinition?url=http://highmed.org/fhir/StructureDefinition/task-hello-dic"),s(r)]),e(" to check if the expected Task profile was created.")]),t("ol",L,[t("li",null,[e("Start the "),G,e(" process by posting an appropriate FHIR "),t("a",W,[e("Task"),s(r)]),e(" resource to the DSF FHIR server:")])]),t("p",null,[e("The "),t("a",U,[e("Task"),s(r)]),e(" 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 "),t("a",O,[e("Task"),s(r)]),e(" resource can be generated and posted to the DSF FHIR server by executing the "),Q,e(" method of the "),X,e(" class. For the TutorialExampleStarter to work the location of the client certificate and its password need to be specified:")]),Y,t("p",null,[e("Verify that the FHIR "),t("a",K,[e("Task"),s(r)]),e(" resource could be created at the DSF FHIR server. The TutorialExampleStarter class should print a message "),Z,e(" showing that the "),t("a",$,[e("Task"),s(r)]),e(" resource was created.")]),ee,t("p",null,[e("Continue with "),s(o,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:a(()=>[e("Exercise 1.1")]),_:1}),e(".")]),te,t("p",null,[s(o,{to:"/oldstable/tutorial/prerequisites.html"},{default:a(()=>[e("Prerequisites")]),_:1}),e(" | Exercise 1 | "),s(o,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:a(()=>[e("Exercise 1.1")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:a(()=>[e("Exercise 2")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:a(()=>[e("Exercise 3")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:a(()=>[e("Exercise 4")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:a(()=>[e("Exercise 5")]),_:1})])])}const ne=c(h,[["render",se],["__file","exercise1-simpleProcess.html.vue"]]),ce=JSON.parse('{"path":"/oldstable/tutorial/exercise1-simpleProcess.html","title":"Exercise 1 - Simple Process","lang":"en-US","frontmatter":{"title":"Exercise 1 - Simple Process","icon":"slides"},"headers":[{"level":2,"title":"Exercise 1 - Simple Process","slug":"exercise-1-simple-process","link":"#exercise-1-simple-process","children":[{"level":3,"title":"Introduction","slug":"introduction","link":"#introduction","children":[]},{"level":3,"title":"Exercise Tasks","slug":"exercise-tasks","link":"#exercise-tasks","children":[]},{"level":3,"title":"Solution Verification","slug":"solution-verification","link":"#solution-verification","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1692786258000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":4.59,"words":1376},"filePathRelative":"oldstable/tutorial/exercise1-simpleProcess.md","localizedDate":"August 23, 2023","excerpt":"
"}');export{ne as comp,ce as data};
diff --git a/assets/exercise11-processDebugging.html-H4aFbuic.js b/assets/exercise11-processDebugging.html-H4aFbuic.js
new file mode 100644
index 000000000..e1424059d
--- /dev/null
+++ b/assets/exercise11-processDebugging.html-H4aFbuic.js
@@ -0,0 +1,3 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as c,c as n,a as t,d as s,w as o,b as e,e as d}from"./app-kq9lCQfY.js";const u="/photos/guideline/tutorial/eclipse.png",h="/photos/guideline/tutorial/intelliJ.png",m={},p=t("h2",{id:"exercise-1-1-process-debugging",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#exercise-1-1-process-debugging"},[t("span",null,"Exercise 1.1 - Process Debugging")])],-1),g=t("p",null,"This exercise looks at how to use the Java debugger of your IDE to remote debug the execution of a process plugin.",-1),x=t("h3",{id:"introduction",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#introduction"},[t("span",null,"Introduction")])],-1),b=t("hr",null,null,-1),_={href:"http://ghcr.io/highmed/fhir",target:"_blank",rel:"noopener noreferrer"},f={href:"http://ghcr.io/highmed/bpe",target:"_blank",rel:"noopener noreferrer"},E=t("code",null,"EXTRA_JVM_ARGS",-1),v=t("code",null,"EXTRA_JVM_ARGS",-1),k=d(`
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
+
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
+
Configure your Java IDE for remote debugging
Eclipse:
IntelliJ:
Create a debug breakpoint in the first line of the HelloDic class doExecute method.
Start your previously defined remote Java debugger in your IDE.
Execute the TutorialExampleStarter class to start highmed_helloDic process.
User your IDE's debugger to step thru the code of the HelloDic class doExecute method.
',9),D=t("hr",null,null,-1);function y(P,S){const i=l("RouteLink"),r=l("ExternalLinkIcon");return c(),n("div",null,[t("p",null,[s(i,{to:"/oldstable/tutorial/prerequisites.html"},{default:o(()=>[e("Prerequisites")]),_:1}),e(" | "),s(i,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:o(()=>[e("Exercise 1")]),_:1}),e(" | Exercise 1.1 | "),s(i,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:o(()=>[e("Exercise 2")]),_:1}),e(" | "),s(i,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:o(()=>[e("Exercise 3")]),_:1}),e(" | "),s(i,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:o(()=>[e("Exercise 4")]),_:1}),e(" | "),s(i,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:o(()=>[e("Exercise 5")]),_:1})]),p,g,x,b,t("p",null,[e("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 "),t("a",_,[e("ghcr.io/highmed/fhir"),s(r)]),e(" and "),t("a",f,[e("ghcr.io/highmed/bpe"),s(r)]),e(" docker images by specifying the environment variable "),E,e(". 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.")]),t("p",null,[e("An "),v,e(" 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 "),s(i,{to:"/oldstable/tutorial/ex11-docker-composeyml.html"},{default:o(()=>[e("docker-compose.yml")]),_:1}),e(" file to lookup the port numbers specified for the different DSF FHIR and DSF BPE servers.")]),k,t("p",null,[e("Continue with "),s(i,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:o(()=>[e("Exercise 2")]),_:1}),e(".")]),D,t("p",null,[s(i,{to:"/oldstable/tutorial/prerequisites.html"},{default:o(()=>[e("Prerequisites")]),_:1}),e(" | "),s(i,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:o(()=>[e("Exercise 1")]),_:1}),e(" | Exercise 1.1 | "),s(i,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:o(()=>[e("Exercise 2")]),_:1}),e(" | "),s(i,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:o(()=>[e("Exercise 3")]),_:1}),e(" | "),s(i,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:o(()=>[e("Exercise 4")]),_:1}),e(" | "),s(i,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:o(()=>[e("Exercise 5")]),_:1})])])}const T=a(m,[["render",y],["__file","exercise11-processDebugging.html.vue"]]),J=JSON.parse('{"path":"/oldstable/tutorial/exercise11-processDebugging.html","title":"Exercise 1.1 - Process Debugging","lang":"en-US","frontmatter":{"title":"Exercise 1.1 - Process Debugging","icon":"slides"},"headers":[{"level":2,"title":"Exercise 1.1 - Process Debugging","slug":"exercise-1-1-process-debugging","link":"#exercise-1-1-process-debugging","children":[{"level":3,"title":"Introduction","slug":"introduction","link":"#introduction","children":[]},{"level":3,"title":"Exercise Tasks","slug":"exercise-tasks","link":"#exercise-tasks","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1692786258000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.14,"words":341},"filePathRelative":"oldstable/tutorial/exercise11-processDebugging.md","localizedDate":"August 23, 2023","excerpt":"
"}');export{T as comp,J as data};
diff --git a/assets/exercise2-inputParameters.html-D05ppcsc.js b/assets/exercise2-inputParameters.html-D05ppcsc.js
new file mode 100644
index 000000000..5b3bfc590
--- /dev/null
+++ b/assets/exercise2-inputParameters.html-D05ppcsc.js
@@ -0,0 +1,10 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as c,c as d,a as t,d as s,w as n,b as e,e as r}from"./app-kq9lCQfY.js";const h={},u=t("h2",{id:"exercise-2-input-parameters",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#exercise-2-input-parameters"},[t("span",null,"Exercise 2 - Input Parameters")])],-1),p=t("p",null,[e("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 "),t("code",null,"highmedorg_helloDic"),e(" process by trying them both.")],-1),m=t("h3",{id:"introduction",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#introduction"},[t("span",null,"Introduction")])],-1),f=t("hr",null,null,-1),g=t("p",null,"DSF process plugins can be configured with input parameters using two different approaches:",-1),_=t("li",null,"Static configuration using environment variables during the deployment of a process plugin.",-1),b={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},v=t("h4",{id:"environment-variables",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#environment-variables"},[t("span",null,"Environment Variables")])],-1),k={href:"https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-value-annotations",target:"_blank",rel:"noopener noreferrer"},x=t("code",null,"TutorialConfig",-1),y=t("code",null,"${..}",-1),w=t("code",null,"${some.property:defaultValue}",-1),T=t("code",null,"some.property",-1),S=t("code",null,"SOME_PROPERTY",-1),D={href:"https://github.com/highmed/highmed-dsf/blob/main/dsf-tools/dsf-tools-documentation-generator/src/main/java/org/highmed/dsf/tools/generator/ProcessDocumentation.java",target:"_blank",rel:"noopener noreferrer"},E=t("code",null,"org.highmed.dsf.tools.generator",-1),P=t("code",null,"pom.xml",-1),R=t("code",null,"tutorial-process",-1),I={href:"https://github.com/highmed/highmed-dsf/blob/main/dsf-tools/dsf-tools-documentation-generator/src/main/java/org/highmed/dsf/tools/generator/DocumentationGenerator.java",target:"_blank",rel:"noopener noreferrer"},F={href:"https://github.com/highmed/highmed-dsf/blob/main/dsf-tools/dsf-tools-documentation-generator/src/main/java/org/highmed/dsf/tools/generator/ProcessDocumentation.java",target:"_blank",rel:"noopener noreferrer"},C=t("h4",{id:"task-input-parameters",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#task-input-parameters"},[t("span",null,"Task Input Parameters")])],-1),V={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},B={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},q={href:"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",target:"_blank",rel:"noopener noreferrer"},H=t("ul",null,[t("li",null,[t("code",null,"message-name"),e(" (mandatory 1..1): the name of the BPMN message event, same as in the BPMN model")]),t("li",null,[t("code",null,"business-key"),e(" (optional 0..1): used to identify process instances")]),t("li",null,[t("code",null,"correlation-key"),e("(optional 0..1): used to identify multi-instance process instances used for messaging multiple targets")])],-1),A=t("p",null,"A later exercise will examine these input parameters and their meaning in more detail.",-1),M={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},z={href:"http://hl7.org/fhir/R4/codesystem.html",target:"_blank",rel:"noopener noreferrer"},N={href:"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",target:"_blank",rel:"noopener noreferrer"},j={href:"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",target:"_blank",rel:"noopener noreferrer"},G={href:"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",target:"_blank",rel:"noopener noreferrer"},L={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},O=t("h4",{id:"version-and-release-date-placeholders",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#version-and-release-date-placeholders"},[t("span",null,"Version and Release-Date Placeholders")])],-1),U={href:"http://hl7.org/fhir/R4/codesystem.html",target:"_blank",rel:"noopener noreferrer"},W={href:"http://hl7.org/fhir/R4/structuredefinition.html",target:"_blank",rel:"noopener noreferrer"},$={href:"http://hl7.org/fhir/R4/valueset.html",target:"_blank",rel:"noopener noreferrer"},J=t("code",null,"#{version}",-1),Y=t("code",null,"#{date}",-1),K=t("code",null,"ProcessPluginDefinition#getVersion()",-1),Q=t("code",null,"ProcessPluginDefinition#getReleaseDate()",-1),X=t("br",null,null,-1),Z={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},ee={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},te=t("code",null,"Resource.meta.tag",-1),se=t("code",null,"read-access-tag",-1),ae=r(`
`,1),oe={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},ne=t("code",null,"Task.requester",-1),re=t("code",null,"Task.restriction.recipient",-1),ie=t("code",null,"read-access-tag",-1),le=t("p",null,"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.",-1),ce={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},de={href:"http://hl7.org/fhir/R4/activitydefinition.html",target:"_blank",rel:"noopener noreferrer"},he=t("h3",{id:"exercise-tasks",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#exercise-tasks"},[t("span",null,"Exercise Tasks")])],-1),ue=t("hr",null,null,-1),pe=r("
Add an environment variable to enable/disable logging to the TutorialConfig class specify the default value as false.
Inject the value of the environment variable in to HelloDic class, by modifying its constructor and using the new field of the TutorialConfig class.
Use the value of the environment variable in the HelloDic class to decide whether the log message from exercise 1 should be printed.
Adapt test-setup/docker-compose.yml by adding the new environment variable to the service dic-bpe and set the value to "true".
",4),me={href:"http://hl7.org/fhir/R4/codesystem.html",target:"_blank",rel:"noopener noreferrer"},fe=t("code",null,"http://highmed.org/fhir/CodeSystem/tutorial",-1),ge=t("code",null,"tutorial-input",-1),_e={href:"http://hl7.org/fhir/R4/valueset.html",target:"_blank",rel:"noopener noreferrer"},be=t("code",null,"http://highmed.org/fhir/ValueSet/tutorial",-1),ve={href:"http://hl7.org/fhir/R4/codesystem.html",target:"_blank",rel:"noopener noreferrer"},ke={href:"http://hl7.org/fhir/R4/codesystem.html",target:"_blank",rel:"noopener noreferrer"},xe=t("code",null,"string",-1),ye=t("code",null,"task-hello-dic.xml",-1),we={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},Te={href:"http://hl7.org/fhir/R4/codesystem.html",target:"_blank",rel:"noopener noreferrer"},Se=t("code",null,"HelloDic",-1),De={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},Ee=t("li",null,[e("Adapt the starter class "),t("code",null,"TutorialExampleStarter"),e(" by adding the new input parameter with an arbitrary string.")],-1),Pe=r(`
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.
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.
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.
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.
",3),Me={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},ze=t("code",null,"TutorialExampleStarter",-1),Ne=t("hr",null,null,-1);function je(Ge,Le){const o=i("RouteLink"),a=i("ExternalLinkIcon");return c(),d("div",null,[t("p",null,[s(o,{to:"/oldstable/tutorial/prerequisites.html"},{default:n(()=>[e("Prerequisites")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:n(()=>[e("Exercise 1")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:n(()=>[e("Exercise 1.1")]),_:1}),e(" | Exercise 2 | "),s(o,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:n(()=>[e("Exercise 3")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:n(()=>[e("Exercise 4")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:n(()=>[e("Exercise 5")]),_:1})]),u,p,m,f,g,t("ul",null,[_,t("li",null,[e("Dynamic configuration by sending values as part of the "),t("a",b,[e("Task"),s(a)]),e(" resource to start or continue a process instance.")])]),v,t("p",null,[e("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 "),t("a",k,[e("Spring-Framework @Value"),s(a)]),e(" annotation to the configuration class "),x,e(". The value of the annotation uses the "),y,e(" notation and follows the form "),w,e(", 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 "),T,e(" therefore corresponds to the environment variable "),S,e(".")]),t("p",null,[e("To create an automated documentation of environment variables during the Maven build process, the DSF provided "),t("a",D,[e("@ProcessDocumentation"),s(a)]),e(" annotation from the package "),E,e(" can be used. The "),P,e(" of the "),R,e(" submodule calls the DSF provided "),t("a",I,[e("DocumentGenerator"),s(a)]),e(" class from the same package during the prepare-package phase of the build process. The generator searches for all "),t("a",F,[e("@ProcessDocumentation"),s(a)]),e(" annotations and generates a Markdown documentation based on the annotation's values in the target folder.")]),C,t("p",null,[e("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 "),t("a",V,[e("Task"),s(a)]),e(" resource that starts or continues a process instance. It should be noted that a FHIR profile must be created for each "),t("a",B,[e("Task"),s(a)]),e(" resource, i.e. for each message event in a process model, which inherits from the "),t("a",q,[e("DSF Task Base Profile"),s(a)]),e(". This base profile defines three default input parameters:")]),H,A,t("p",null,[e("Since input parameters of "),t("a",M,[e("Task"),s(a)]),e(" resources are identified by predefined codes, they are defined via FHIR "),t("a",z,[e("CodeSystem"),s(a)]),e(" and "),s(o,{to:"/oldstable/tutorial/hl7.org/fhir/R4/valueset.html"},{default:n(()=>[e("ValueSet")]),_:1}),e(" resources. The "),t("a",N,[e("BPMN-Message CodeSystem"),s(a)]),e(" and the "),t("a",j,[e("BPMN-Message ValueSet"),s(a)]),e(" are used in the "),t("a",G,[e("DSF Task Base Profile"),s(a)]),e(" to define the three default input parameters of "),t("a",L,[e("Task"),s(a)]),e(" resources.")]),O,t("p",null,[e("To avoid the need to specify the version and release date for each "),t("a",U,[e("CodeSystem"),s(a)]),e(", "),t("a",W,[e("StructureDefinition (Task profile)"),s(a)]),e(" and "),t("a",$,[e("ValueSet"),s(a)]),e(" resource, the placeholders "),J,e(" and "),Y,e(" can be used. They are replaced with the values returned by the methods "),K,e(" and "),Q,e(" respectively during deployment of a process plugin by the DSF BPE server.")]),t("p",null,[e("Read Access Tag"),X,e(" While writing FHIR resources on the DSF FHIR server is only allowed by the own organization (except "),t("a",Z,[e("Task"),s(a)]),e("), rules have to be defined for reading FHIR resources by external organizations (again except "),t("a",ee,[e("Task"),s(a)]),e("). The "),te,e(" field is used for this purpose. To allow read access for all organizations (the standard for metadata resources), the following "),se,e(" value can be written into this field:")]),ae,t("p",null,[e("The read access rules for "),t("a",oe,[e("Task"),s(a)]),e(" resources are defined through the fields "),ne,e(" and "),re,e(". Therefore, no "),ie,e(" is needed.")]),le,t("p",null,[e("The write access rules for "),t("a",ce,[e("Task"),s(a)]),e(" resources are defined through the "),t("a",de,[e("ActivityDefinition"),s(a)]),e(" resources belonging to the process. We will take a look at this in "),s(o,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:n(()=>[e("exercise 3")]),_:1}),e(" and "),s(o,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:n(()=>[e("exercise 5")]),_:1}),e(".")]),he,ue,t("ol",null,[pe,t("li",null,[e("Create a new "),t("a",me,[e("CodeSystem"),s(a)]),e(" with url "),fe,e(" having a concept with code "),ge,e(".")]),t("li",null,[e("Create a new "),t("a",_e,[e("ValueSet"),s(a)]),e(" with url "),be,e(" that includes all concepts from the "),t("a",ve,[e("CodeSystem"),s(a)]),e(".")]),t("li",null,[e("Add the new "),t("a",ke,[e("CodeSystem"),s(a)]),e(" and ValueSet resources to the highmedorg_helloDic process in the TutorialProcessPluginDefinition class.")]),t("li",null,[e("Add a new input parameter of type "),xe,e(" to the "),ye,e(),t("a",we,[e("Task"),s(a)]),e(" profile using the concept of the new "),t("a",Te,[e("CodeSystem"),s(a)]),e(" as a fixed coding.")]),t("li",null,[e("Read the new input parameter in the "),Se,e(' class from the "leading" '),t("a",De,[e("Task"),s(a)]),e(" and add the value to the log message from exercise 1.")]),Ee]),Pe,t("ol",Re,[t("li",null,[e("Start the "),Ie,e(" process by posting an appropriate FHIR "),t("a",Fe,[e("Task"),s(a)]),e(" resource to the DSF FHIR server of the "),Ce,e(" organization: Execute the "),Ve,e(" method of the "),Be,e(" class as in "),s(o,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:n(()=>[e("exercise 1")]),_:1}),e(" to create the "),t("a",qe,[e("Task"),s(a)]),e(" resource needed to start the "),He,e(" process.")])]),Ae,t("p",null,[e("Also check that modification to the "),t("a",Me,[e("Task"),s(a)]),e(" input parameter specified in the "),ze,e(" class, have the appropriate effect on your log message.")]),t("p",null,[e("Continue with "),s(o,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:n(()=>[e("Exercise 3")]),_:1}),e(".")]),Ne,t("p",null,[s(o,{to:"/oldstable/tutorial/prerequisites.html"},{default:n(()=>[e("Prerequisites")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:n(()=>[e("Exercise 1")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:n(()=>[e("Exercise 1.1")]),_:1}),e(" | Exercise 2 | "),s(o,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:n(()=>[e("Exercise 3")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:n(()=>[e("Exercise 4")]),_:1}),e(" | "),s(o,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:n(()=>[e("Exercise 5")]),_:1})])])}const We=l(h,[["render",je],["__file","exercise2-inputParameters.html.vue"]]),$e=JSON.parse('{"path":"/oldstable/tutorial/exercise2-inputParameters.html","title":"Exercise 2 - Input Parameters","lang":"en-US","frontmatter":{"title":"Exercise 2 - Input Parameters","icon":"slides"},"headers":[{"level":2,"title":"Exercise 2 - Input Parameters","slug":"exercise-2-input-parameters","link":"#exercise-2-input-parameters","children":[{"level":3,"title":"Introduction","slug":"introduction","link":"#introduction","children":[]},{"level":3,"title":"Exercise Tasks","slug":"exercise-tasks","link":"#exercise-tasks","children":[]},{"level":3,"title":"Solution Verification","slug":"solution-verification","link":"#solution-verification","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1692786258000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":4.58,"words":1373},"filePathRelative":"oldstable/tutorial/exercise2-inputParameters.md","localizedDate":"August 23, 2023","excerpt":"
"}');export{We as comp,$e as data};
diff --git a/assets/exercise3-messageEvents.html-BvCPZCXY.js b/assets/exercise3-messageEvents.html-BvCPZCXY.js
new file mode 100644
index 000000000..37246080e
--- /dev/null
+++ b/assets/exercise3-messageEvents.html-BvCPZCXY.js
@@ -0,0 +1,41 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as c,c as p,a as t,d as n,w as o,b as e,e as i}from"./app-kq9lCQfY.js";const u="/photos/guideline/tutorial/ex3.png",h={},d=t("h2",{id:"exercise-3-message-events",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#exercise-3-message-events"},[t("span",null,"Exercise 3 - Message Events")])],-1),g=t("p",null,"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.",-1),f=t("code",null,"highmedorg_helloDic",-1),m=t("code",null,"highmedorg_helloCos",-1),_=t("code",null,"Test_DIC",-1),k=t("code",null,"Test_COS",-1),v={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},b=t("code",null,"Test_DIC",-1),x=t("code",null,"Test_COS",-1),D=t("h3",{id:"introduction",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#introduction"},[t("span",null,"Introduction")])],-1),S=t("hr",null,null,-1),y=t("h4",{id:"message-flow-and-fhir-task-resources",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#message-flow-and-fhir-task-resources"},[t("span",null,"Message Flow and FHIR Task resources")])],-1),z={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},w={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},E=t("p",null,'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.',-1),T=t("figure",null,[t("img",{src:u,alt:"Message Flow",tabindex:"0",loading:"lazy"}),t("figcaption",null,"Message Flow")],-1),R={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},I={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-start-event",target:"_blank",rel:"noopener noreferrer"},F={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-intermediate-catching-event",target:"_blank",rel:"noopener noreferrer"},q=t("em",null,"Business Key",-1),C=t("em",null,"Correlation Key",-1),A=i(`
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
+
`,8),O={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},P={href:"http://hl7.org/fhir/R4/activitydefinition.html",target:"_blank",rel:"noopener noreferrer"},M=t("h4",{id:"activitydefinitions-for-the-dsf",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#activitydefinitions-for-the-dsf"},[t("span",null,"ActivityDefinitions for the DSF")])],-1),H={href:"http://hl7.org/fhir/R4/activitydefinition.html",target:"_blank",rel:"noopener noreferrer"},B={href:"http://hl7.org/fhir/R4/activitydefinition.html",target:"_blank",rel:"noopener noreferrer"},L={href:"http://highmed.org/fhir/StructureDefinition/activity-definition",target:"_blank",rel:"noopener noreferrer"},N={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization",target:"_blank",rel:"noopener noreferrer"},V=t("p",null,"The authorization extension needs to be configured at least once and has four sub extensions:",-1),G=t("h5",{id:"message-name-1-1",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#message-name-1-1"},[t("span",null,"message-name [1..1]")])],-1),U={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-start-event",target:"_blank",rel:"noopener noreferrer"},Z={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-intermediate-catching-event",target:"_blank",rel:"noopener noreferrer"},K={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/tasks/receive-task/",target:"_blank",rel:"noopener noreferrer"},j=t("h5",{id:"task-profile-1-1",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#task-profile-1-1"},[t("span",null,"task-profile [1..1]")])],-1),W={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},$=t("h5",{id:"requester-1",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#requester-1"},[t("span",null,"requester [1..]")])],-1),J={href:"http://highmed.org/fhir/ValueSet/process-authorization-requester",target:"_blank",rel:"noopener noreferrer"},Y={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization",target:"_blank",rel:"noopener noreferrer"},Q={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization",target:"_blank",rel:"noopener noreferrer"},X={href:"http://hl7.org/fhir/R4/organizationaffiliation.html",target:"_blank",rel:"noopener noreferrer"},ee={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role",target:"_blank",rel:"noopener noreferrer"},te={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role",target:"_blank",rel:"noopener noreferrer"},ne=t("li",null,[t("p",null,"LOCAL_ALL All local organizations regardless of their identifier or role in a consortium.")],-1),se=t("li",null,[t("p",null,"REMOTE_ALL All remote (non local) organizations regardless of their identifier or role in a consortium.")],-1),ae=t("h5",{id:"recipient-1",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#recipient-1"},[t("span",null,"recipient [1..]")])],-1),oe={href:"http://highmed.org/fhir/ValueSet/process-authorization-recipient",target:"_blank",rel:"noopener noreferrer"},ie={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization",target:"_blank",rel:"noopener noreferrer"},re={href:"http://hl7.org/fhir/R4/organizationaffiliation.html",target:"_blank",rel:"noopener noreferrer"},le={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role",target:"_blank",rel:"noopener noreferrer"},ce=t("li",null,[t("p",null,"LOCAL_ALL All organizations regardless of their identifier or role in a consortium.")],-1),pe={href:"https://github.com/highmed/highmed-dsf/wiki/DSF-0.7.0-Configuration-Parameters-FHIR#org_highmed_dsf_fhir_server_organization_identifier_value",target:"_blank",rel:"noopener noreferrer"},ue={href:"https://github.com/highmed/highmed-dsf/wiki/DSF-0.7.0-Configuration-Parameters-BPE#org_highmed_dsf_bpe_fhir_server_organization_identifier_value",target:"_blank",rel:"noopener noreferrer"},he=i(`
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.
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.
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.
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.
Start the DSF FHIR server for the Test_COS organization in a console at location .../dsf-process-tutorial/test-setup:
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
+
`,2),Ue=t("code",null,"highmedorg_helloCos",-1),Ze={href:"http://hl7.org/fhir/R4/activitydefinition.html",target:"_blank",rel:"noopener noreferrer"},Ke={href:"https://cos/fhir/ActivityDefinition",target:"_blank",rel:"noopener noreferrer"},je={href:"http://hl7.org/fhir/R4/bundle.html",target:"_blank",rel:"noopener noreferrer"},We={href:"http://hl7.org/fhir/R4/activitydefinition.html",target:"_blank",rel:"noopener noreferrer"},$e={href:"https://cos/fhir/StructureDefinition?url=http://highmed.org/fhir/StructureDefinition/task-hello-cos",target:"_blank",rel:"noopener noreferrer"},Je={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},Ye={start:"5"},Qe=t("code",null,"highmedorg_helloDic",-1),Xe={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},et=t("code",null,"Test_DIC",-1),tt=t("code",null,"main",-1),nt=t("code",null,"org.highmed.dsf.process.tutorial.TutorialExampleStarter",-1),st=t("code",null,"highmedorg_helloDic",-1),at={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},ot=t("code",null,"highmedorg_helloDic",-1),it=t("code",null,"Test_DIC",-1),rt=t("code",null,"Test_DIC",-1),lt={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},ct=t("code",null,"highmedorg_helloCos",-1),pt=t("code",null,"Test_COS",-1),ut=t("br",null,null,-1),ht={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},dt=t("code",null,"Test_COS",-1),gt=t("code",null,"highmedorg_helloCos",-1),ft=t("code",null,"Test_COS",-1),mt=t("hr",null,null,-1);function _t(kt,vt){const a=r("RouteLink"),s=r("ExternalLinkIcon");return c(),p("div",null,[t("p",null,[n(a,{to:"/oldstable/tutorial/prerequisites.html"},{default:o(()=>[e("Prerequisites")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:o(()=>[e("Exercise 1")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:o(()=>[e("Exercise 1.1")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:o(()=>[e("Exercise 2")]),_:1}),e(" | Exercise 3 | "),n(a,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:o(()=>[e("Exercise 4")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:o(()=>[e("Exercise 5")]),_:1})]),d,g,t("p",null,[e("To demonstrate communication between two organizations we will configure message flow between the processes "),f,e(" and "),m,e(". The processes are then to be executed at the organizations "),_,e(" and "),k,e(" respectively in the docker test setup, with the former triggering execution of the latter by automatically sending a "),t("a",v,[e("Task"),n(s)]),e(" from organization "),b,e(" to organization "),x,e(".")]),D,S,y,t("p",null,[e("BPMN processes are instantiated and started within the DSF by creating a matching FHIR "),t("a",z,[e("Task"),n(s)]),e(" resource in the DSF FHIR server. This is true for executing a process on the local DSF BPE server by manually creating a "),t("a",w,[e("Task"),n(s)]),e(" resource, but also works by creating and starting a process instance at a remote DSF BPE server from an executing process automatically.")]),E,T,t("p",null,[e("Every time message flow is used in a BPMN process for the DSF, a corresponding FHIR "),t("a",R,[e("Task"),n(s)]),e(" 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 "),t("a",I,[e("Message Start Event"),n(s)]),e(" or "),t("a",F,[e("Intermediate Message Catch Event"),n(s)]),e(". A "),q,e(" and a "),C,e(" are specified if different process instances need to be linked to a single execution, for example to be able to send a message back.")]),A,t("p",null,[e("The canonical URL is used for "),t("a",O,[e("Task.instantiatesUri"),n(s)]),e(" and "),t("a",P,[e("ActivityDefinition.url / version"),n(s)]),e(".")]),M,t("p",null,[e("FHIR "),t("a",H,[e("ActivityDefinition"),n(s)]),e(" resources are used to announce what processes can be instantiated at a given DSF instance and contain the authorization rules for the specified process. "),t("a",B,[e("ActivityDefinition"),n(s)]),e(" for the DSF need to comply with the "),t("a",L,[e("http://highmed.org/fhir/StructureDefinition/activity-definition"),n(s)]),e(" profile, with authorization rules configured using the "),t("a",N,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization"),n(s)]),e(" extension.")]),V,G,t("p",null,[e("String value specifying the message name of "),t("a",U,[e("Message Start Event"),n(s)]),e(", "),t("a",Z,[e("Intermediate Message Catch Event"),n(s)]),e(" or "),t("a",K,[e("Message Receive Task"),n(s)]),e(" this authorization rule should match. Can only be specified once per authorization rule extension.")]),j,t("p",null,[e("Canonical URL value specifying the "),t("a",W,[e("Task"),n(s)]),e(" profile this authorization rule should match. Can only be specified once per authorization rule extension.")]),$,t("p",null,[e("Coding value matching entries from the "),t("a",J,[e("http://highmed.org/fhir/ValueSet/process-authorization-requester"),n(s)]),e(" ValueSet:")]),t("ul",null,[t("li",null,[t("p",null,[e("LOCAL_ORGANIZATION A local organization with a specific identifier. The organization identifier needs to specified using the "),t("a",Y,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization"),n(s)]),e(" extension.")])]),t("li",null,[t("p",null,[e("REMOTE_ORGANIZATION A remote (non local) organization with a specific identifier. The organization identifier needs to specified using the "),t("a",Q,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization"),n(s)]),e(" extension.")])]),t("li",null,[t("p",null,[e("LOCAL_ROLE A local organizations with a specific role defined via "),t("a",X,[e("OrganizationAffiliation"),n(s)]),e(". Role and consortium identifier need to be specified using the "),t("a",ee,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role"),n(s)]),e(" extension.")])]),t("li",null,[t("p",null,[e("REMOTE_ROLE A remote (non local) organizations with a specific role defined via "),n(a,{to:"/oldstable/tutorial/hl7.org/fhir/R4/organizationaffiliation.html"},{default:o(()=>[e("OrganizationAffiliation")]),_:1}),e(". Role and consortium identifier need to be specified using the "),t("a",te,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role"),n(s)]),e(" extension.")])]),ne,se]),ae,t("p",null,[e("Coding value matching entries from the "),t("a",oe,[e("http://highmed.org/fhir/ValueSet/process-authorization-recipient"),n(s)]),e(" ValueSet.")]),t("ul",null,[t("li",null,[t("p",null,[e("LOCAL_ORGANIZATION Organization with a specific identifier. The organization identifier needs to specified using the "),t("a",ie,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization"),n(s)]),e(" extension.")])]),t("li",null,[t("p",null,[e("LOCAL_ROLE Organizations with a specific role defined via "),t("a",re,[e("OrganizationAffiliation"),n(s)]),e(". Role and consortium identifier need to be specified using the "),t("a",le,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role"),n(s)]),e(" extension.")])]),ce]),t("p",null,[e("The local organization of a DSF instance is configured using the environment variables "),t("a",pe,[e("ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE"),n(s)]),e(" for the DSF FHIR server and "),t("a",ue,[e("ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE"),n(s)]),e(" for the DSF BPE server.")]),he,t("ol",null,[t("li",null,[e("Modify the "),de,e(" process in the "),ge,e(" file and replace the "),t("a",fe,[e("End Event"),n(s)]),e(" with a "),t("a",me,[e("Message End Event"),n(s)]),e(". Configure input parameters "),_e,e(", "),ke,e(" and "),ve,e(" in the BPMN model for the "),t("a",be,[e("Message End Event"),n(s)]),e(". Set the message name of the "),t("a",xe,[e("Message End Event"),n(s)]),e(" and configure it to be executed using the HelloCosMessage class."),De,e(" Use "),t("a",Se,[e("http://highmed.org/fhir/StructureDefinition/task-hello-cos|#{version}"),n(s)]),e(" as the profile and "),ye,e(" as the message name. Figure out what the appropriate "),ze,e(" value is, based on the name (process definition key) of the process to be triggered.")]),t("li",null,[e("Modify the "),we,e(" process in the "),Ee,e(" file and configure the message name of the "),t("a",Te,[e("Message Start Event"),n(s)]),e(" with the same value as the message name of the "),t("a",Re,[e("Message End Event"),n(s)]),e(" in the "),Ie,e(" process.")]),t("li",null,[e("Create a new "),t("a",Fe,[e("StructureDefinition"),n(s)]),e(" with a "),t("a",qe,[e("Task"),n(s)]),e(" profile for the "),Ce,e(" message.")]),t("li",null,[e("Create a new "),t("a",Ae,[e("ActivityDefinition"),n(s)]),e(" resource for the "),Oe,e(" process and configure the authorization extension to allow the "),Pe,e(" organization as the requester and the "),Me,e(" organization as the recipient.")]),He]),Be,t("p",null,[e("Verify the DSF FHIR server started successfully. You can access the webservice of the DSF FHIR server at "),t("a",Le,[e("https://cos/fhir"),n(s)]),e("."),Ne,e(" 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 "),Ve,e(" (Password: password).")]),Ge,t("p",null,[e("Verify the DSF BPE server started successfully and deployed the "),Ue,e(" process. The DSF BPE server should print a message that the process was deployed. The DSF FHIR server should now have a new "),t("a",Ze,[e("ActivityDefinition"),n(s)]),e(" resource. Go to "),t("a",Ke,[e("https://cos/fhir/ActivityDefinition"),n(s)]),e(" to check if the expected resource was created by the BPE while deploying the process. The returned FHIR "),t("a",je,[e("Bundle"),n(s)]),e(" should contain two "),t("a",We,[e("ActivityDefinition"),n(s)]),e(" resources. Also, go to "),t("a",$e,[e("https://cos/fhir/StructureDefinition?url=http://highmed.org/fhir/StructureDefinition/task-hello-cos"),n(s)]),e(" to check if the expected "),t("a",Je,[e("Task"),n(s)]),e(" profile was created.")]),t("ol",Ye,[t("li",null,[e("Start the "),Qe,e(" process by posting a specific FHIR "),t("a",Xe,[e("Task"),n(s)]),e(" resource to the DSF FHIR server of the "),et,e(" organization: Execute therefore the "),tt,e(" method of the "),nt,e(" class to create the Task resource needed to start the "),st,e(" process.")])]),t("p",null,[e("Verify that the FHIR "),t("a",at,[e("Task"),n(s)]),e(" resource was created at the DSF FHIR server and the "),ot,e(" process was executed by the DSF BPE server of the "),it,e(" organization. The DSF BPE server of the "),rt,e(" organization should print a message showing that a "),t("a",lt,[e("Task"),n(s)]),e(" resource to start the "),ct,e(" process was send to the "),pt,e(" organization."),ut,e(" Verify that a FHIR "),t("a",ht,[e("Task"),n(s)]),e(" resource was created at the DSF FHIR server of the "),dt,e(" organization and the "),gt,e(" process was then executed by the DSF BPE server of the "),ft,e(" organization.")]),t("p",null,[e("Continue with "),n(a,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:o(()=>[e("exercise 4")]),_:1}),e(".")]),mt,t("p",null,[n(a,{to:"/oldstable/tutorial/prerequisites.html"},{default:o(()=>[e("Prerequisites")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:o(()=>[e("Exercise 1")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:o(()=>[e("Exercise 1.1")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:o(()=>[e("Exercise 2")]),_:1}),e(" | Exercise 3 | "),n(a,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:o(()=>[e("Exercise 4")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:o(()=>[e("Exercise 5")]),_:1})])])}const Dt=l(h,[["render",_t],["__file","exercise3-messageEvents.html.vue"]]),St=JSON.parse('{"path":"/oldstable/tutorial/exercise3-messageEvents.html","title":"Exercise 3 - Message Events","lang":"en-US","frontmatter":{"title":"Exercise 3 - Message Events","icon":"slides"},"headers":[{"level":2,"title":"Exercise 3 - Message Events","slug":"exercise-3-message-events","link":"#exercise-3-message-events","children":[{"level":3,"title":"Introduction","slug":"introduction","link":"#introduction","children":[]},{"level":3,"title":"Exercise Tasks","slug":"exercise-tasks","link":"#exercise-tasks","children":[]},{"level":3,"title":"Solution Verification","slug":"solution-verification","link":"#solution-verification","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1692786258000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":6.16,"words":1849},"filePathRelative":"oldstable/tutorial/exercise3-messageEvents.md","localizedDate":"August 23, 2023","excerpt":"
"}');export{Dt as comp,St as data};
diff --git a/assets/exercise4-exclusiveGateways.html-CNjavIrD.js b/assets/exercise4-exclusiveGateways.html-CNjavIrD.js
new file mode 100644
index 000000000..2ae526e2e
--- /dev/null
+++ b/assets/exercise4-exclusiveGateways.html-CNjavIrD.js
@@ -0,0 +1,9 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as c,c as d,a as t,d as s,w as o,b as e,e as r}from"./app-kq9lCQfY.js";const h={},u=r('
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.
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:
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.
Add a boolean variable to the process instance execution variables storing the decision.
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.
Add a condition expressions to each outgoing sequence flow based on the previously stored execution variable.
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.
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.
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.
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.
`,20),D={start:"4"},S=t("code",null,"highmedorg_helloDic",-1),P={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},T=t("code",null,"Test_DIC",-1),C=t("code",null,"main",-1),B=t("code",null,"org.highmed.dsf.process.tutorial.TutorialExampleStarter",-1),F={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},q=t("code",null,"highmedorg_helloDic",-1),V=t("p",null,[e("Verify that the "),t("code",null,"highmedorg_helloDic"),e(" process was executed successfully by the "),t("code",null,"Test_DIC"),e(" DSF BPE server and possibly the "),t("code",null,"highmedorg_helloCos"),e(" process by the "),t("code",null,"Test_COS"),e(" DSF BPE server, depending on whether decision of your algorithm based on the input parameter allowed to start the "),t("code",null,"highmedorg_helloDic"),e(" process.")],-1),G=t("hr",null,null,-1);function I(R,N){const a=n("RouteLink"),i=n("ExternalLinkIcon");return c(),d("div",null,[t("p",null,[s(a,{to:"/oldstable/tutorial/prerequisites.html"},{default:o(()=>[e("Prerequisites")]),_:1}),e(" | "),s(a,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:o(()=>[e("Exercise 1")]),_:1}),e(" | "),s(a,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:o(()=>[e("Exercise 1.1")]),_:1}),e(" | "),s(a,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:o(()=>[e("Exercise 2")]),_:1}),e(" | "),s(a,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:o(()=>[e("Exercise 3")]),_:1}),e(" | Exercise 4 | "),s(a,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:o(()=>[e("Exercise 5")]),_:1})]),u,t("p",null,[e("Different sequence flows during the execution of a process instance can be modeled using BPMN "),t("a",p,[e("Exclusive Gateways"),s(i)]),e(". For each outgoing sequence flow of the gateway, a BPMN "),t("a",g,[e("Condition Expression"),s(i)]),e(" 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.")]),m,t("p",null,[e("A BPMN "),t("a",x,[e("Condition Expression"),s(i)]),e(" uses the "),b,e(" 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 "),t("a",f,[e("ServiceTask"),s(i)]),e(". For example, the BPMN "),t("a",v,[e("Condition Expression"),s(i)]),e(),_,e(" checks whether the value in the execution variable "),w,e(" is greater than 100.")]),E,t("p",null,[e("For more details on process variables see the "),t("a",y,[e("Camunda documentation"),s(i)]),e(".")]),k,t("ol",D,[t("li",null,[e("Start the "),S,e(" process by posting a specific FHIR "),t("a",P,[e("Task"),s(i)]),e(" resource to the DSF FHIR server of the "),T,e(" organization: Execute therefore the "),C,e(" method of the "),B,e(" class to create the "),t("a",F,[e("Task"),s(i)]),e(" resource needed to start the "),q,e(" process.")])]),V,t("p",null,[e("Continue with "),s(a,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:o(()=>[e("exercise 5")]),_:1})]),G,t("p",null,[s(a,{to:"/oldstable/tutorial/prerequisites.html"},{default:o(()=>[e("Prerequisites")]),_:1}),e(" | "),s(a,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:o(()=>[e("Exercise 1")]),_:1}),e(" | "),s(a,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:o(()=>[e("Exercise 1.1")]),_:1}),e(" | "),s(a,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:o(()=>[e("Exercise 2")]),_:1}),e(" | "),s(a,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:o(()=>[e("Exercise 3")]),_:1}),e(" | Exercise 4 | "),s(a,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:o(()=>[e("Exercise 5")]),_:1})])])}const M=l(h,[["render",I],["__file","exercise4-exclusiveGateways.html.vue"]]),A=JSON.parse('{"path":"/oldstable/tutorial/exercise4-exclusiveGateways.html","title":"Exercise 4 - Exclusive Gateways","lang":"en-US","frontmatter":{"title":"Exercise 4 - Exclusive Gateways","icon":"slides"},"headers":[{"level":2,"title":"Exercise 4 - Exclusive Gateways","slug":"exercise-4-exclusive-gateways","link":"#exercise-4-exclusive-gateways","children":[{"level":3,"title":"Introduction","slug":"introduction","link":"#introduction","children":[]},{"level":3,"title":"Exercise Tasks","slug":"exercise-tasks","link":"#exercise-tasks","children":[]},{"level":3,"title":"Solution Verification","slug":"solution-verification","link":"#solution-verification","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1692786258000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.29,"words":686},"filePathRelative":"oldstable/tutorial/exercise4-exclusiveGateways.md","localizedDate":"August 23, 2023","excerpt":"
"}');export{M as comp,A as data};
diff --git a/assets/exercise5-eventBasedGateways.html-TXYnwT8n.js b/assets/exercise5-eventBasedGateways.html-TXYnwT8n.js
new file mode 100644
index 000000000..ab0ee1dc2
--- /dev/null
+++ b/assets/exercise5-eventBasedGateways.html-TXYnwT8n.js
@@ -0,0 +1,56 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as c,c as p,a as t,d as n,w as o,b as e,e as i}from"./app-kq9lCQfY.js";const u="/photos/guideline/tutorial/ex5.png",h={},d=i('
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.
',5),g={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},f={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},m={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/gateways/event-based-gateway/",target:"_blank",rel:"noopener noreferrer"},k={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},_={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/events/timer-events/#timer-intermediate-catching-event",target:"_blank",rel:"noopener noreferrer"},v=t("figure",null,[t("img",{src:u,alt:"",tabindex:"0",loading:"lazy"}),t("figcaption")],-1),b=t("h5",{id:"timer-events",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#timer-events"},[t("span",null,"Timer Events")])],-1),x={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/events/timer-events/",target:"_blank",rel:"noopener noreferrer"},y={href:"https://en.wikipedia.org/wiki/ISO_8601#Durations",target:"_blank",rel:"noopener noreferrer"},E={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/events/timer-events/#time-duration",target:"_blank",rel:"noopener noreferrer"},w=t("h4",{id:"matching-process-instances-with-business-keys",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#matching-process-instances-with-business-keys"},[t("span",null,"Matching Process Instances With Business Keys")])],-1),D={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},S={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},z=t("p",null,"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.",-1),q=t("h4",{id:"activitydefinitions-for-the-dsf",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#activitydefinitions-for-the-dsf"},[t("span",null,"ActivityDefinitions for the DSF")])],-1),R={href:"http://hl7.org/fhir/R4/activitydefinition.html",target:"_blank",rel:"noopener noreferrer"},T={href:"http://hl7.org/fhir/R4/activitydefinition.html",target:"_blank",rel:"noopener noreferrer"},I={href:"http://highmed.org/fhir/StructureDefinition/activity-definition",target:"_blank",rel:"noopener noreferrer"},F={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization",target:"_blank",rel:"noopener noreferrer"},C=t("p",null,"The authorization extension needs to be configured at least once and has four sub extensions:",-1),A=t("h5",{id:"message-name-1-1",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#message-name-1-1"},[t("span",null,"message-name [1..1]")])],-1),O={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-start-event",target:"_blank",rel:"noopener noreferrer"},H={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/events/message-events/#message-intermediate-catching-event",target:"_blank",rel:"noopener noreferrer"},P={href:"https://docs.camunda.org/manual/7.17/reference/bpmn20/tasks/receive-task/",target:"_blank",rel:"noopener noreferrer"},B=t("h5",{id:"task-profile-1-1",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#task-profile-1-1"},[t("span",null,"task-profile [1..1]")])],-1),L={href:"http://hl7.org/fhir/R4/task.html",target:"_blank",rel:"noopener noreferrer"},M=t("h5",{id:"requester-1",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#requester-1"},[t("span",null,"requester [1..]")])],-1),V={href:"http://highmed.org/fhir/ValueSet/process-authorization-requester",target:"_blank",rel:"noopener noreferrer"},G={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization",target:"_blank",rel:"noopener noreferrer"},N={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization",target:"_blank",rel:"noopener noreferrer"},U={href:"http://hl7.org/fhir/R4/organizationaffiliation.html",target:"_blank",rel:"noopener noreferrer"},W={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role",target:"_blank",rel:"noopener noreferrer"},Z={href:"http://hl7.org/fhir/R4/organizationaffiliation.html",target:"_blank",rel:"noopener noreferrer"},j={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role",target:"_blank",rel:"noopener noreferrer"},J=t("li",null,[t("p",null,"LOCAL_ALL All local organizations regardless of their identifier or role in a consortium.")],-1),K=t("li",null,[t("p",null,"REMOTE_ALL All remote (non local) organizations regardless of their identifier or role in a consortium.")],-1),Y=t("h5",{id:"recipient-1",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#recipient-1"},[t("span",null,"recipient [1..]")])],-1),Q={href:"http://highmed.org/fhir/ValueSet/process-authorization-recipient",target:"_blank",rel:"noopener noreferrer"},X={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization",target:"_blank",rel:"noopener noreferrer"},$={href:"http://hl7.org/fhir/R4/organizationaffiliation.html",target:"_blank",rel:"noopener noreferrer"},ee={href:"http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role",target:"_blank",rel:"noopener noreferrer"},te=t("li",null,[t("p",null,"LOCAL_ALL All organizations regardless of their identifier or role in a consortium.")],-1),ne={href:"https://github.com/highmed/highmed-dsf/wiki/DSF-0.7.0-Configuration-Parameters-FHIR#org_highmed_dsf_fhir_server_organization_identifier_value",target:"_blank",rel:"noopener noreferrer"},se={href:"https://github.com/highmed/highmed-dsf/wiki/DSF-0.7.0-Configuration-Parameters-BPE#org_highmed_dsf_bpe_fhir_server_organization_identifier_value",target:"_blank",rel:"noopener noreferrer"},ae=i(`
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.
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.
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.
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.
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.
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.
Start the DSF FHIR server for the Test_HRP organization in a fifth at location .../dsf-process-tutorial/test-setup:
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.
",4);function xt(yt,Et){const a=r("RouteLink"),s=r("ExternalLinkIcon");return c(),p("div",null,[t("p",null,[n(a,{to:"/oldstable/tutorial/prerequisites.html"},{default:o(()=>[e("Prerequisites")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:o(()=>[e("Exercise 1")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:o(()=>[e("Exercise 1.1")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:o(()=>[e("Exercise 2")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:o(()=>[e("Exercise 3")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:o(()=>[e("Exercise 4")]),_:1}),e(" | Exercise 5")]),d,t("p",null,[e("If an existing and started process instance is waiting for a message from another organization, the corresponding FHIR "),t("a",g,[e("Task"),n(s)]),e(' may never arrive. Either because the other organization decides to never send the "message" or because some technical problem prohibits the '),t("a",f,[e("Task"),n(s)]),e(" resource from being posted to the DSF FHIR server. This would result in stale process instances that never finish.")]),t("p",null,[e("In order to solve this problem we can add an "),t("a",m,[e("Event Based Gateway"),n(s)]),e(" to the process waiting for a response and then either handle a "),t("a",k,[e("Task"),n(s)]),e(" resource with the response and finish the process in a success state or fire of an "),t("a",_,[e("Intermediate Timer Catch Event"),n(s)]),e(" 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:")]),v,b,t("p",null,[e("For "),t("a",x,[e("Timer Events"),n(s)]),e(" the duration until the timer fires is specified using the "),t("a",y,[e("ISO 8601 Durations"),n(s)]),e(" format. Examples can be found in the "),t("a",E,[e("Camunda 7 documentation"),n(s)]),e(".")]),w,t("p",null,[e('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 '),t("a",D,[e("Task.input"),n(s)]),e(" parameter. For 1:1 communication relationships this is handled by the DSF BPE servers automatically, but the corresponding "),t("a",S,[e("Task"),n(s)]),e(" profiles need to define the business-key input parameter as mandatory.")]),z,q,t("p",null,[e("FHIR "),t("a",R,[e("ActivityDefinition"),n(s)]),e(" resources are used to announce what processes can be instantiated at a given DSF instance and contain the authorization rules for the specified process. "),t("a",T,[e("ActivityDefinition"),n(s)]),e(" for the DSF need to comply with the "),t("a",I,[e("http://highmed.org/fhir/StructureDefinition/activity-definition"),n(s)]),e(" profile, with authorization rules configured using the "),t("a",F,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization"),n(s)]),e(" extension.")]),C,A,t("p",null,[e("String value specifying the message name of "),t("a",O,[e("Message Start Event"),n(s)]),e(", "),t("a",H,[e("Intermediate Message Catch Event"),n(s)]),e(" or "),t("a",P,[e("Message Receive Task"),n(s)]),e(" this authorization rule should match. Can only be specified once per authorization rule extension.")]),B,t("p",null,[e("Canonical URL value specifying the "),t("a",L,[e("Task"),n(s)]),e(" profile this authorization rule should match. Can only be specified once per authorization rule extension.")]),M,t("p",null,[e("Coding value matching entries from the "),t("a",V,[e("http://highmed.org/fhir/ValueSet/process-authorization-requester"),n(s)]),e(" ValueSet:")]),t("ul",null,[t("li",null,[t("p",null,[e("LOCAL_ORGANIZATION A local organization with a specific identifier. The organization identifier needs to specified using the "),t("a",G,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization"),n(s)]),e(" extension.")])]),t("li",null,[t("p",null,[e("REMOTE_ORGANIZATION A remote (non local) organization with a specific identifier. The organization identifier needs to specified using the "),t("a",N,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization"),n(s)]),e(" extension.")])]),t("li",null,[t("p",null,[e("LOCAL_ROLE A local organizations with a specific role defined via "),t("a",U,[e("OrganizationAffiliation"),n(s)]),e(". Role and consortium identifier need to be specified using the "),t("a",W,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role"),n(s)]),e(" extension.")])]),t("li",null,[t("p",null,[e("REMOTE_ROLE A remote (non local) organizations with a specific role defined via "),t("a",Z,[e("OrganizationAffiliation"),n(s)]),e(". Role and consortium identifier need to be specified using the "),t("a",j,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role"),n(s)]),e(" extension.")])]),J,K]),Y,t("p",null,[e("Coding value matching entries from the "),t("a",Q,[e("http://highmed.org/fhir/ValueSet/process-authorization-recipient"),n(s)]),e(" ValueSet.")]),t("ul",null,[t("li",null,[t("p",null,[e("LOCAL_ORGANIZATION Organization with a specific identifier. The organization identifier needs to specified using the "),t("a",X,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-organization"),n(s)]),e(" extension.")])]),t("li",null,[t("p",null,[e("LOCAL_ROLE Organizations with a specific role defined via "),t("a",$,[e("OrganizationAffiliation"),n(s)]),e(". Role and consortium identifier need to be specified using the "),t("a",ee,[e("http://highmed.org/fhir/StructureDefinition/extension-process-authorization-consortium-role"),n(s)]),e(" extension.")])]),te]),t("p",null,[e("The local organization of a DSF instance is configured using the environment variables "),t("a",ne,[e("ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE"),n(s)]),e(" for the DSF FHIR server and "),t("a",se,[e("ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE"),n(s)]),e(" for the DSF BPE server.")]),ae,t("ol",null,[t("li",null,[e("Modify the "),oe,e(" and use the value from the "),t("a",ie,[e("Task.input"),n(s)]),e(" parameter of the "),re,e(),t("a",le,[e("Task"),n(s)]),e(" to send it to the "),ce,e(" process via a "),t("a",pe,[e("Task.input"),n(s)]),e(" parameter in the "),ue,e(" Task. Override the "),he,e(" to configure a "),t("a",de,[e("Task.input"),n(s)]),e(" parameter to be send.")]),t("li",null,[e("Modify the "),ge,e(" process to use a "),t("a",fe,[e("Message End Event"),n(s)]),e(" to trigger the process in file "),me,e(". Figure out the values for the "),ke,e(", "),_e,e(" and "),ve,e(" input parameters of the "),t("a",be,[e("Message End Event"),n(s)]),e(" based on the "),t("a",xe,[e("AcitvityDefinition"),n(s)]),e(" in file "),ye,e(".")]),t("li",null,[e("Modify the "),Ee,e(" process: "),t("ul",null,[t("li",null,[e("Change the "),t("a",we,[e("Message End Event"),n(s)]),e(" to an "),t("a",De,[e("Intermediate Message Throw Event"),n(s)])]),t("li",null,[e("Add an "),t("a",Se,[e("Event Based Gateway"),n(s)]),e(" after the throw event")]),t("li",null,[e("Configure two cases for the "),t("a",ze,[e("Event Based Gateway"),n(s)]),e(": "),t("ol",null,[t("li",null,[e("An "),t("a",qe,[e("Intermediate Message Catch Event"),n(s)]),e(" to catch the "),Re,e(" message from the "),Te,e(" process.")]),t("li",null,[e("An "),t("a",Ie,[e("Intermediate Timer Catch Event"),n(s)]),e(" to end the process if no message is sent by the "),Fe,e(" process after two minutes. Make sure both cases finish with a process "),t("a",Ce,[e("End Event"),n(s)]),e(".")])])])])]),t("li",null,[e("Modify the process in file "),Ae,e(" and set the process definition key and version. Figure out the appropriate values based on the "),t("a",Oe,[e("AcitvityDefinition"),n(s)]),e(" in file "),He,e(".")]),Pe]),Be,t("p",null,[e("Verify the DSF FHIR server started successfully. You can access the webservice of the DSF FHIR server at "),t("a",Le,[e("https://hrp/fhir"),n(s)]),e("."),Me,e(" 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 "),Ve,e(" (Password: password).")]),Ge,t("p",null,[e("Verify the DSF BPE server started successfully and deployed the "),Ne,e(" process. The DSF BPE server should print a message that the process was deployed. The DSF FHIR server should now have a new "),t("a",Ue,[e("ActivityDefinition"),n(s)]),e(" resource. Go to "),t("a",We,[e("https://hrp/fhir/ActivityDefinition"),n(s)]),e(" to check if the expected resource was created by the BPE while deploying the process. The returned FHIR "),t("a",Ze,[e("Bundle"),n(s)]),e(" should contain a three "),t("a",je,[e("ActivityDefinition"),n(s)]),e(" resources. Also, go to "),t("a",Je,[e("https://hrp/fhir/StructureDefinition?url=http://highmed.org/fhir/StructureDefinition/task-hello-hrp"),n(s)]),e(" to check if the expected "),t("a",Ke,[e("Task"),n(s)]),e(" profile was created.")]),t("ol",Ye,[t("li",null,[e("Start the "),Qe,e(" process by posting a specific FHIR "),t("a",Xe,[e("Task"),n(s)]),e(" resource to the DSF FHIR server of the "),$e,e(" organization: Execute therefore the "),et,e(" method of the "),tt,e(" class to create the "),t("a",nt,[e("Task"),n(s)]),e(" resource needed to start the "),st,e(" process.")])]),t("p",null,[e("Verify that the FHIR "),t("a",at,[e("Task"),n(s)]),e(" resource was created at the DSF FHIR server and the "),ot,e(" process was executed by the DSF BPE server of the "),it,e(" organization. The DSF BPE server of the "),rt,e(" organization should print a message showing that a "),t("a",lt,[e("Task"),n(s)]),e(" resource to start the "),ct,e(" process was sent to the "),pt,e(" organization."),ut,e(" Verify that a FHIR "),t("a",ht,[e("Task"),n(s)]),e(" resource was created at the DSF FHIR server of the "),dt,e(" organization and the "),gt,e(" process was executed by the DSF BPE server of the "),ft,e(" organization. The DSF BPE server of the "),mt,e(" organization should print a message showing that a "),t("a",kt,[e("Task"),n(s)]),e(" resource to start the "),_t,e(" process was send to the "),vt,e(" organization.")]),bt,t("p",null,[n(a,{to:"/oldstable/tutorial/prerequisites.html"},{default:o(()=>[e("Prerequisites")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:o(()=>[e("Exercise 1")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:o(()=>[e("Exercise 1.1")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:o(()=>[e("Exercise 2")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:o(()=>[e("Exercise 3")]),_:1}),e(" | "),n(a,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:o(()=>[e("Exercise 4")]),_:1}),e(" | Exercise 5")])])}const St=l(h,[["render",xt],["__file","exercise5-eventBasedGateways.html.vue"]]),zt=JSON.parse('{"path":"/oldstable/tutorial/exercise5-eventBasedGateways.html","title":"Exercise 5 - Event Based Gateways and Intermediate Events","lang":"en-US","frontmatter":{"title":"Exercise 5 - Event Based Gateways and Intermediate Events","icon":"slides"},"headers":[{"level":2,"title":"Exercise 5 - Event Based Gateways and Intermediate Events","slug":"exercise-5-event-based-gateways-and-intermediate-events","link":"#exercise-5-event-based-gateways-and-intermediate-events","children":[{"level":3,"title":"Introduction","slug":"introduction","link":"#introduction","children":[]},{"level":3,"title":"Exercise Tasks","slug":"exercise-tasks","link":"#exercise-tasks","children":[]},{"level":3,"title":"Solution Verification","slug":"solution-verification","link":"#solution-verification","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1692786258000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":6.73,"words":2019},"filePathRelative":"oldstable/tutorial/exercise5-eventBasedGateways.md","localizedDate":"August 23, 2023","excerpt":"
"}');export{St as comp,zt as data};
diff --git a/assets/feasibility.html-fV-0rrxS.js b/assets/feasibility.html-fV-0rrxS.js
new file mode 100644
index 000000000..19c69f0cd
--- /dev/null
+++ b/assets/feasibility.html-fV-0rrxS.js
@@ -0,0 +1 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as n,c as o,a as e,b as i,d as r}from"./app-kq9lCQfY.js";const l={},c=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),h={href:"https://www.forschen-fuer-gesundheit.de/menu_standorte.php",target:"_blank",rel:"noopener noreferrer"},d={href:"https://github.com/medizininformatik-initiative/feasibility-dsf-process/",target:"_blank",rel:"noopener noreferrer"},f={href:"https://www.forschen-fuer-gesundheit.de/",target:"_blank",rel:"noopener noreferrer"},m={href:"https://www.medizininformatik-initiative.de/sites/default/files/2023-05/20230509_TMF_Faltflyer_A4_digital.pdf",target:"_blank",rel:"noopener noreferrer"},u=e("h2",{id:"the-feasibility-process",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#the-feasibility-process"},[e("span",null,"The Feasibility Process")])],-1),p=e("p",null,"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.",-1),b={href:"https://github.com/medizininformatik-initiative/feasibility-dsf-process/",target:"_blank",rel:"noopener noreferrer"},y=e("h2",{id:"technical-information",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#technical-information"},[e("span",null,"Technical Information")])],-1),_={href:"https://github.com/medizininformatik-initiative/feasibility-deploy/wiki/DSF-Middleware-Setup",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/medizininformatik-initiative/feasibility-dsf-process/",target:"_blank",rel:"noopener noreferrer"},v={href:"https://github.com/medizininformatik-initiative/feasibility-deploy/tree/main/feasibility-triangle",target:"_blank",rel:"noopener noreferrer"},w={href:"https://github.com/medizininformatik-initiative/mii-dsf-processes/tree/main",target:"_blank",rel:"noopener noreferrer"},k={href:"https://github.com/medizininformatik-initiative/mii-dsf-processes/blob/main/mii-dsf-processes-docker-test-setup/README-Process-Projectathon-Data-Sharing.md",target:"_blank",rel:"noopener noreferrer"};function F(T,z){const t=s("ExternalLinkIcon");return n(),o("div",null,[c,e("p",null,[i("Funded by the German Federal Ministry of Research and Education, 25 "),e("a",h,[i("sites"),r(t)]),i(" have installed the DSF to execute the "),e("a",d,[i("Feasibility"),r(t)]),i(" process. To perform feasibility queries, a researcher can register and query data on the "),e("a",f,[i("FDPG (Forschungsdaten Portal für Gesundheit - Research Data Portal)"),r(t)]),i(" 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 "),e("a",m,[i("flyer"),r(t)]),i(".")]),u,p,e("p",null,[i("To enable researchers to leverage this integrated data for specific research projects, there is a critical need for the ability to query cohort sizes across institutions. The "),e("a",b,[i("feasibility"),r(t)]),i(" process allows researchers to conduct automated and distributed feasibility queries, i.e., cohort size estimates. This process is executed according to the open standard BPMN 2.0, the underlying process data model is based on HL7 FHIR R4 resources.")]),y,e("ul",null,[e("li",null,[e("a",_,[i("DSF Middleware Setup"),r(t)]),i(": The DSF middleware connects your site to the central platform. This allows it to receive feasibility query requests as well as reporting back any results of these queries.")]),e("li",null,[e("a",g,[i("Feasibility Process"),r(t)]),i(": Core Feasibility Process")]),e("li",null,[e("a",v,[i("Feasibility Triangle"),r(t)]),i(": The Feasibility Triangle part of this repository provides a site (data integration center) with all the necessary components to set up in order to allow feasibility queries from the central feasibility portal.")]),e("li",null,[e("a",w,[i("Data Transfer"),r(t)])]),e("li",null,[e("a",k,[i("Data extraction after successful feasibility query"),r(t)])])])])}const q=a(l,[["render",F],["__file","feasibility.html.vue"]]),P=JSON.parse('{"path":"/intro/use-cases/feasibility.html","title":"Feasibility","lang":"en-US","frontmatter":{"title":"Feasibility","icon":"diagram"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"The Feasibility Process","slug":"the-feasibility-process","link":"#the-feasibility-process","children":[]},{"level":2,"title":"Technical Information","slug":"technical-information","link":"#technical-information","children":[]}],"git":{"createdTime":1690473388000,"updatedTime":1698661553000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":3},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.23,"words":370},"filePathRelative":"intro/use-cases/feasibility.md","localizedDate":"July 27, 2023","excerpt":"
Overview
\\n
Funded by the German Federal Ministry of Research and Education, 25 sites have installed the DSF to execute the Feasibility process. To perform feasibility queries, a researcher can register and query data on the FDPG (Forschungsdaten Portal für Gesundheit - Research Data Portal) 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.
"}');export{q as comp,P as data};
diff --git a/assets/fhir.html-CTifciWc.js b/assets/fhir.html-CTifciWc.js
new file mode 100644
index 000000000..aede818b9
--- /dev/null
+++ b/assets/fhir.html-CTifciWc.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as r,c as s,e as i}from"./app-kq9lCQfY.js";const t={},o=i('
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
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
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
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
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
Recommendation: Configure username if proxy requires authentication
',58),n=[o];function l(d,a){return r(),s("div",null,n)}const _=e(t,[["render",l],["__file","fhir.html.vue"]]),h=JSON.parse('{"path":"/v1.0.0/maintain/configuration/fhir.html","title":"Parameters FHIR Server","lang":"en-US","frontmatter":{},"headers":[{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE","slug":"dev-dsf-fhir-client-certificate","link":"#dev-dsf-fhir-client-certificate","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY","slug":"dev-dsf-fhir-client-certificate-private-key","link":"#dev-dsf-fhir-client-certificate-private-key","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD or DEV_DSF_FHIR_CLIENT_CERTIFICATE_PRIVATE_KEY_PASSWORD_FILE","slug":"dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","link":"#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_CONNECT","slug":"dev-dsf-fhir-client-timeout-connect","link":"#dev-dsf-fhir-client-timeout-connect","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TIMEOUT_READ","slug":"dev-dsf-fhir-client-timeout-read","link":"#dev-dsf-fhir-client-timeout-read","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_TRUST_SERVER_CERTIFICATE_CAS","slug":"dev-dsf-fhir-client-trust-server-certificate-cas","link":"#dev-dsf-fhir-client-trust-server-certificate-cas","children":[]},{"level":3,"title":"DEV_DSF_FHIR_CLIENT_VERBOSE","slug":"dev-dsf-fhir-client-verbose","link":"#dev-dsf-fhir-client-verbose","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_FORCEUNLOCK","slug":"dev-dsf-fhir-db-liquibase-forceunlock","link":"#dev-dsf-fhir-db-liquibase-forceunlock","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_LOCKWAITTIME","slug":"dev-dsf-fhir-db-liquibase-lockwaittime","link":"#dev-dsf-fhir-db-liquibase-lockwaittime","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD or DEV_DSF_FHIR_DB_LIQUIBASE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","link":"#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_LIQUIBASE_USERNAME","slug":"dev-dsf-fhir-db-liquibase-username","link":"#dev-dsf-fhir-db-liquibase-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_URL","slug":"dev-dsf-fhir-db-url","link":"#dev-dsf-fhir-db-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_GROUP","slug":"dev-dsf-fhir-db-user-group","link":"#dev-dsf-fhir-db-user-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PASSWORD or DEV_DSF_FHIR_DB_USER_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","link":"#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_GROUP","slug":"dev-dsf-fhir-db-user-permanent-delete-group","link":"#dev-dsf-fhir-db-user-permanent-delete-group","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD or DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_PASSWORD_FILE","slug":"dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","link":"#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_PERMANENT_DELETE_USERNAME","slug":"dev-dsf-fhir-db-user-permanent-delete-username","link":"#dev-dsf-fhir-db-user-permanent-delete-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_DB_USER_USERNAME","slug":"dev-dsf-fhir-db-user-username","link":"#dev-dsf-fhir-db-user-username","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_BASE_URL","slug":"dev-dsf-fhir-server-base-url","link":"#dev-dsf-fhir-server-base-url","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_INIT_BUNDLE","slug":"dev-dsf-fhir-server-init-bundle","link":"#dev-dsf-fhir-server-init-bundle","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE","slug":"dev-dsf-fhir-server-organization-identifier-value","link":"#dev-dsf-fhir-server-organization-identifier-value","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_PAGE_COUNT","slug":"dev-dsf-fhir-server-page-count","link":"#dev-dsf-fhir-server-page-count","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_ROLECONFIG","slug":"dev-dsf-fhir-server-roleconfig","link":"#dev-dsf-fhir-server-roleconfig","children":[]},{"level":3,"title":"DEV_DSF_FHIR_SERVER_STATIC_RESOURCE_CACHE","slug":"dev-dsf-fhir-server-static-resource-cache","link":"#dev-dsf-fhir-server-static-resource-cache","children":[]},{"level":3,"title":"DEV_DSF_PROXY_NOPROXY","slug":"dev-dsf-proxy-noproxy","link":"#dev-dsf-proxy-noproxy","children":[]},{"level":3,"title":"DEV_DSF_PROXY_PASSWORD or DEV_DSF_PROXY_PASSWORD_FILE","slug":"dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","link":"#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file","children":[]},{"level":3,"title":"DEV_DSF_PROXY_URL","slug":"dev-dsf-proxy-url","link":"#dev-dsf-proxy-url","children":[]},{"level":3,"title":"DEV_DSF_PROXY_USERNAME","slug":"dev-dsf-proxy-username","link":"#dev-dsf-proxy-username","children":[]}],"git":{"createdTime":1692708510000,"updatedTime":1692778861000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.77,"words":830},"filePathRelative":"v1.0.0/maintain/configuration/fhir.md","localizedDate":"August 22, 2023","excerpt":"\\n
Please also check common parameters for additional configuration options.
\\n
DEV_DSF_FHIR_CLIENT_CERTIFICATE
\\n
\\n
Property: dev.dsf.fhir.client.certificate
\\n
Required: Yes
\\n
Description: PEM encoded file with local client certificate for https connections to remote DSF FHIR servers
\\n
Recommendation: Use docker secret file to configure
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.
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
Certificate A: Server Certificate (DFN PKI Profile: 'Web Server', Common-Name: Your external DSF FHIR Servers FQDN)
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.
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.
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
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
`,1),k=e("p",null,[t("Download and Extract Config Files"),e("br"),t(" Download prepared DSF FHIR server config files and folder structure from")],-1),F=e("strong",null,"Test HiGHmed",-1),S=e("br",null,null,-1),E={href:"https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_test_fhir_0_9_3.tar.gz",target:"_blank",rel:"noopener noreferrer"},D=s(`
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
+
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
+
`,1),x=e("p",null,[e("em",null,[t("The "),e("code",null,"tar"),t(" command will unpack the config files at "),e("code",null,"/opt/fhir"),t(" assuming you changed into the "),e("code",null,"/opt"),t(" directory.")])],-1),H=s(`
Verify that the fhir system user or group can write into the following folder
/opt/fhir/log
Add certificates and keys
Add the server certificate (certificate A) and the corresponding private-key to /opt/fhir/secrets/
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
',1),N=e("strong",null,"services -> app -> environment:",-1),P=e("li",null,[e("strong",null,"ORG_HIGHMED_DSF_FHIR_SERVER_BASE_URL"),t(": https://"),e("em",null,"TODO_DSF_FRIR_SERVER_EXTERNAL_FQDN"),t("/fhir"),e("br"),t(" Set your FHIR servers external FQDN, e.g. "),e("code",null,"foo.bar.de"),t(" -> "),e("code",null,"https://foo.bar.de/fhir")],-1),O=e("strong",null,"ORG_HIGHMED_DSF_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE",-1),A=e("em",null,"TODO_ORGANIZATION_IDENTIFIER",-1),G=e("br",null,null,-1),B={href:"http://hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},M=s('
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.
',5),V=e("li",null,[e("p",null,[t("Start the DSF FHIR Server"),e("br"),t(" Start using: "),e("code",null,"docker-compose up -d && docker-compose logs -f"),t(" (Ctrl-C will close log, but not stop container)")])],-1),L=e("h3",{id:"dsf-bpe-server",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#dsf-bpe-server"},[e("span",null,"DSF BPE Server")])],-1),U=s(`
Add Group/User Add group and user used by the DSF BPE java application. Ubuntu compatible commands below:
`,1),z=e("p",null,[t("Download and Extract Config Files"),e("br"),t(" Download prepared DSF BPE server config files and folder structure from")],-1),q=e("strong",null,"Test HiGHmed",-1),Q=e("br",null,null,-1),X={href:"https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_test_bpe_0_9_3.tar.gz",target:"_blank",rel:"noopener noreferrer"},Y=s(`
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
+
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
+
`,1),j=e("p",null,[e("em",null,[t("The "),e("code",null,"tar"),t(" command will unpack the config files at "),e("code",null,"/opt/bpe"),t(" assuming you changed into the "),e("code",null,"/opt"),t(" directory.")])],-1),J=e("li",null,[e("p",null,[t("Verify that the "),e("code",null,"bpe"),t(" system user or group can write into the following folders")]),e("ul",null,[e("li",null,[e("code",null,"/opt/bpe/log")]),e("li",null,[e("code",null,"/opt/bpe/psn")])])],-1),ee=e("p",null,"Add certificates and keys",-1),te=s(`
Add the client certificate (certificate B) and the corresponding private-key to /opt/bpe/secrets/
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),he=e("p",null,"Modify the docker-compose.yml file and set environment variables to the appropriate values",-1),ue=e("strong",null,"services -> app -> environment:",-1),pe=e("strong",null,"ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE",-1),_e=e("em",null,"TODO_ORGANIZATION_IDENTIFIER",-1),me=e("br",null,null,-1),ge={href:"http://hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},fe=e("li",null,[e("strong",null,"ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL"),t(": https://"),e("strong",null,"TODO_DSF_FRIR_SERVER_FQDN"),t("/fhir"),e("br"),t(" Set your FHIR servers external FQDN, e.g. "),e("code",null,"foo.bar.de"),t(" -> "),e("code",null,"https://foo.bar.de/fhir")],-1),be=e("li",null,[t("For additional environment variables, see "),e("a",{href:"configBpe"},"DSF 0.9.3 BPE Server configuration parameters")],-1),ve=s("
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)
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[...]
Stop the DSF BPE Server
Hit Ctrl-C to close log
Stop using: docker-compose stop
",3),ke=e("p",null,"Add the following DSF BPE process plugins, for instructions on how to configure the plugin, see release notes.",-1),Fe=e("strong",null,"num-codex / codex-processes-ap1",-1),Se=e("br",null,null,-1),Ee={href:"https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},De=e("br",null,null,-1),we={href:"https://github.com/num-codex/codex-processes-ap1/wiki/Process-Deployment-and-Configuration-v0.7.0",target:"_blank",rel:"noopener noreferrer"},Ie=e("strong",null,"highmed / highmed-processes / data-sharing",-1),ye=e("br",null,null,-1),Re={href:"https://github.com/highmed/highmed-processes/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},xe=e("strong",null,"highmed / highmed-processes / feasibility",-1),He=e("br",null,null,-1),Te={href:"https://github.com/highmed/highmed-processes/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},Ce=e("strong",null,"highmed / highmed-processes / feasibility-mpc",-1),Ne=e("br",null,null,-1),Pe={href:"https://github.com/highmed/highmed-processes/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},Oe=e("strong",null,"highmed / highmed-processes / local-services",-1),Ae=e("br",null,null,-1),Ge={href:"https://github.com/highmed/highmed-processes/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},Be=e("strong",null,"highmed / highmed-processes / ping",-1),Me=e("br",null,null,-1),Ve={href:"https://github.com/highmed/highmed-processes/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},Le=e("strong",null,"highmed / highmed-processes / update-allow-list",-1),Ue=e("br",null,null,-1),ze={href:"https://github.com/highmed/highmed-processes/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},qe=e("br",null,null,-1),Qe={href:"https://github.com/highmed/highmed-processes/wiki/Process-Ping-Deployment-v0.7.0",target:"_blank",rel:"noopener noreferrer"},Xe=e("p",null,[e("em",null,[t("Notice: Jar-files within the folders "),e("code",null,"/opt/bpe/process"),t(" and "),e("code",null,"/opt/bpe/plugin"),t(" need to be readable by the linxux "),e("code",null,"bpe"),t(" user -> "),e("code",null,"chown root:bpe"),t(", "),e("code",null,"chmod 440")])],-1),Ye=e("li",null,[e("p",null,[t("Start the DSF BPE Server (with process plugins)"),e("br"),t(" Start using: "),e("code",null,"docker-compose up -d && docker-compose logs -f"),t(" (Ctrl-C will close log, but not stop container)")])],-1),Ze=e("li",null,[e("p",null,[t("Request Allow-List upload from HiGHmed TTP"),e("br"),t(" The Allow-List upload is needed in order to execute HiGHmed and NUM-CODEX processes.")])],-1);function Ke(We,$e){const r=n("ExternalLinkIcon");return l(),a("div",null,[c,e("p",null,[t("Both VMs need latest docker and docker-compose. For the latest install guide see "),e("a",h,[t("https://docs.docker.com/engine/install"),i(r)]),t(" and "),e("a",u,[t("https://docs.docker.com/compose/install"),i(r)])]),p,e("p",null,[t("docker-compose (warning: "),e("a",_,[t("2.17.3"),i(r)]),t(" might not be "),e("a",m,[t("latest"),i(r)]),t("):")]),g,e("p",null,[t("Here is a quick overview of the expected network setup. Connections to the fTTP, the terminology server and "),e("a",f,[t("simplifier.net"),i(r)]),t(" for validating GECCO FHIR resources as well as the local GECCO FHIR server are not listed:")]),b,e("ol",null,[v,e("li",null,[k,e("ul",null,[e("li",null,[F,t(" instance:"),S,e("a",E,[t("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_test_fhir_0_9_3.tar.gz"),i(r)]),D]),e("li",null,[w,t(" instance:"),I,e("a",y,[t("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_prod_fhir_0_9_3.tar.gz"),i(r)]),R])]),x]),H,e("li",null,[T,e("ul",null,[C,e("li",null,[N,e("ul",null,[P,e("li",null,[O,t(": "),A,G,t(" Set your Organizations DSF identifier, aka the shortest FQDN that resolves to the main homepage of the organization, e.g. "),e("a",B,[t("hs-heilbronn.de"),i(r)])]),M])])])]),V]),L,e("ol",null,[U,e("li",null,[z,e("ul",null,[e("li",null,[q,t(" instance:"),Q,e("a",X,[t("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_test_bpe_0_9_3.tar.gz"),i(r)]),Y]),e("li",null,[Z,t(" instance:"),K,e("a",W,[t("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_prod_bpe_0_9_3.tar.gz"),i(r)]),$])]),j]),J,e("li",null,[ee,e("ul",null,[te,e("li",null,[t("Add the CRR public-key used for asymmetrically encrypting the GECCO FHIR Bundles to "),re,e("ul",null,[ie,e("li",null,[t("You can download the 4096 Bit RSA PEM encoded public-key for "),e("ul",null,[e("li",null,[t("a "),se,t(" instance from:"),oe,e("a",ne,[t("https://keys.num-codex.de/crr_public-key-pre-prod.pem"),i(r)])]),e("li",null,[t("a "),le,t(" instance from:"),ae,e("a",de,[t("https://keys.num-codex.de/crr_public-key-prod.pem"),i(r)])])])])])])])]),ce,e("li",null,[he,e("ul",null,[e("li",null,[ue,e("ul",null,[e("li",null,[pe,t(": "),_e,me,t(" Set your Organizations DSF identifier, aka the shortest FQDN that resolves the main homepage of the organization, e.g. "),e("a",ge,[t("hs-heilbronn.de"),i(r)])]),fe,be])])])]),ve,e("li",null,[ke,e("ul",null,[e("li",null,[Fe,t(" version 0.7.0 or later:"),Se,e("a",Ee,[t("https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0"),i(r)]),De,t(" See "),e("a",we,[t("NUM-CODEX: Process Deployment and Configuration"),i(r)]),t(" on how to configure the process plugin.")]),e("li",null,[Ie,t(" version 0.7.0 or later:"),ye,e("a",Re,[t("https://github.com/highmed/highmed-processes/releases/tag/v0.7.0"),i(r)])]),e("li",null,[xe,t(" version 0.7.0 or later:"),He,e("a",Te,[t("https://github.com/highmed/highmed-processes/releases/tag/v0.7.0"),i(r)])]),e("li",null,[Ce,t(" version 0.7.0 or later:"),Ne,e("a",Pe,[t("https://github.com/highmed/highmed-processes/releases/tag/v0.7.0"),i(r)])]),e("li",null,[Oe,t(" version 0.7.0 or later:"),Ae,e("a",Ge,[t("https://github.com/highmed/highmed-processes/releases/tag/v0.7.0"),i(r)])]),e("li",null,[Be,t(" version 0.7.0 or later:"),Me,e("a",Ve,[t("https://github.com/highmed/highmed-processes/releases/tag/v0.7.0"),i(r)])]),e("li",null,[Le,t(" version 0.7.0 or later:"),Ue,e("a",ze,[t("https://github.com/highmed/highmed-processes/releases/tag/v0.7.0"),i(r)]),qe,t(" See "),e("a",Qe,[t("HiGHmed: Process Ping Deployment"),i(r)]),t(" on how to deploy and configure the process plugin.")])]),Xe]),Ye,Ze])])}const et=o(d,[["render",Ke],["__file","highmedInstall.html.vue"]]),tt=JSON.parse('{"path":"/oldstable/releases/highmedInstall.html","title":"","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]},{"level":3,"title":"On-Boarding Excel Spreadsheet","slug":"on-boarding-excel-spreadsheet","link":"#on-boarding-excel-spreadsheet","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1696001091000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":6.39,"words":1918},"filePathRelative":"oldstable/releases/highmedInstall.md","localizedDate":"August 23, 2023","excerpt":"
This setup guide uses pre-build docker images for DSF Version 0.9.3. This guide is only suitable for HiGHmed organizations. \\nIf you are not a member of HiGHmed, see NUM-CODEX Install.
\\n
Prerequisites
\\n
Virtual Machines
"}');export{et as comp,tt as data};
diff --git a/assets/highmed_dsf_network_setup_ext_dmz-DyQZOoIs.js b/assets/highmed_dsf_network_setup_ext_dmz-DyQZOoIs.js
new file mode 100644
index 000000000..176af872d
--- /dev/null
+++ b/assets/highmed_dsf_network_setup_ext_dmz-DyQZOoIs.js
@@ -0,0 +1 @@
+const e="/photos/guideline/generalInformation/highmed_dsf_network_setup.svg",o="/photos/guideline/generalInformation/highmed_dsf_network_setup_ext_dmz.svg";export{e as _,o as a};
diff --git a/assets/icon/apple-icon-152.png b/assets/icon/apple-icon-152.png
new file mode 100644
index 000000000..71c690527
Binary files /dev/null and b/assets/icon/apple-icon-152.png differ
diff --git a/assets/icon/chrome-192.png b/assets/icon/chrome-192.png
new file mode 100644
index 000000000..71c690527
Binary files /dev/null and b/assets/icon/chrome-192.png differ
diff --git a/assets/icon/chrome-512.png b/assets/icon/chrome-512.png
new file mode 100644
index 000000000..71c690527
Binary files /dev/null and b/assets/icon/chrome-512.png differ
diff --git a/assets/icon/chrome-mask-192.png b/assets/icon/chrome-mask-192.png
new file mode 100644
index 000000000..71c690527
Binary files /dev/null and b/assets/icon/chrome-mask-192.png differ
diff --git a/assets/icon/chrome-mask-512.png b/assets/icon/chrome-mask-512.png
new file mode 100644
index 000000000..71c690527
Binary files /dev/null and b/assets/icon/chrome-mask-512.png differ
diff --git a/assets/icon/favicon.ico b/assets/icon/favicon.ico
new file mode 100644
index 000000000..ed857d176
Binary files /dev/null and b/assets/icon/favicon.ico differ
diff --git a/assets/icon/guide-maskable.png b/assets/icon/guide-maskable.png
new file mode 100644
index 000000000..71c690527
Binary files /dev/null and b/assets/icon/guide-maskable.png differ
diff --git a/assets/icon/ms-ico-144.png b/assets/icon/ms-ico-144.png
new file mode 100644
index 000000000..71c690527
Binary files /dev/null and b/assets/icon/ms-ico-144.png differ
diff --git a/assets/index.html--WxwSsgq.js b/assets/index.html--WxwSsgq.js
new file mode 100644
index 000000000..fb5e28191
--- /dev/null
+++ b/assets/index.html--WxwSsgq.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c as d,a as t,b as e,d as a,w as n,e as l}from"./app-kq9lCQfY.js";const c={},h=l('
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.
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.
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.
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 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.
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.
',13),p=t("p",null,[e("Should you have any questions or need personalized assistance, don't hesitate to reach out to the DSF core team directly at "),t("strong",null,[t("a",{href:"mailto:dsf-gecko@hs-heilbronn.de"},"dsf-gecko@hs-heilbronn.de")]),e(".")],-1);function u(g,f){const i=r("RouteLink");return o(),d("div",null,[h,t("p",null,[e("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 "),t("strong",null,[a(i,{to:"/for-you/learn.html"},{default:n(()=>[e("Learn how to implement your use case")]),_:1})]),e(" page to start your journey towards integrating the DSF into your research project.")]),p,t("p",null,[e("Embark on your DSF journey today and "),a(i,{to:"/stable/contribute/"},{default:n(()=>[e("join a community")]),_:1}),e(" committed to advancing biomedical research through secure, interoperable data sharing.")])])}const b=s(c,[["render",u],["__file","index.html.vue"]]),v=JSON.parse(`{"path":"/for-you/","title":"DSF for your project","lang":"en-US","frontmatter":{"title":"DSF for your project","icon":"creative"},"headers":[{"level":2,"title":"Overview of DSF","slug":"overview-of-dsf","link":"#overview-of-dsf","children":[]},{"level":2,"title":"Key features and benefits","slug":"key-features-and-benefits","link":"#key-features-and-benefits","children":[{"level":3,"title":"Distributed data sharing processes","slug":"distributed-data-sharing-processes","link":"#distributed-data-sharing-processes","children":[]},{"level":3,"title":"Flexibility with data standards","slug":"flexibility-with-data-standards","link":"#flexibility-with-data-standards","children":[]},{"level":3,"title":"Security and access control","slug":"security-and-access-control","link":"#security-and-access-control","children":[]},{"level":3,"title":"Deployment in clinical environments","slug":"deployment-in-clinical-environments","link":"#deployment-in-clinical-environments","children":[]}]},{"level":2,"title":"Getting started with the DSF","slug":"getting-started-with-the-dsf","link":"#getting-started-with-the-dsf","children":[]}],"git":{"createdTime":1706902325000,"updatedTime":1712160983000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":3}]},"readingTime":{"minutes":1.45,"words":435},"filePathRelative":"for-you/index.md","localizedDate":"February 2, 2024","excerpt":"
\\n
Summary
\\n
\\n
\\n
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.
\\n
\\n
\\n
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.
\\n
\\n
\\n
Proven in clinical research: Deployed in German university hospitals, DSF's effectiveness and reliability are validated in real-world settings.
\\n
\\n
\\n
Implementation guidance: DSF offers resources on how to implement new process plugins.
\\n
\\n
\\n
"}`);export{b as comp,v as data};
diff --git a/assets/index.html-0F9WiFvk.js b/assets/index.html-0F9WiFvk.js
new file mode 100644
index 000000000..142857224
--- /dev/null
+++ b/assets/index.html-0F9WiFvk.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as r,e as n}from"./app-kq9lCQfY.js";const a={},t=n('
\\n"}');export{d as comp,f as data};
diff --git a/assets/index.html-1GNavLp5.js b/assets/index.html-1GNavLp5.js
new file mode 100644
index 000000000..8f0d95270
--- /dev/null
+++ b/assets/index.html-1GNavLp5.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as a,w as h,e as d}from"./app-kq9lCQfY.js";const c={},m={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"Important note",-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},f=d('
',5),_=e("li",null,"Improved versioning to support up- and downwards-compatibility",-1),g=e("li",null,"Enhanced web ui to start processes in the web browser",-1),w=e("li",null,"Allow local user authentication and authorization with OpenID Connect",-1),b=e("li",null,"New process plugin API",-1),v=e("li",null,"Removed mostly unused features to simplify instance configuration",-1),x=e("li",null,"Unified proxy setup",-1),S={href:"https://github.com/datasharingframework/dsf/releases",target:"_blank",rel:"noopener noreferrer"};function k(D,F){const i=r("RouteLink"),n=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click "),a(i,{to:"/intro/"},{default:h(()=>[t("here")]),_:1}),t(" to find more information about the DSF in general.")]),e("div",m,[p,e("p",null,[t("This is a major DSF release not compatible with 0.9.x and older version developed at "),e("a",u,[t("https://github.com/highmed/highmed-dsf"),a(n)]),t(".")])]),f,e("ul",null,[_,g,w,b,v,x,e("li",null,[t("Many more features, see "),e("a",S,[t("1.x release-notes"),a(n)])])])])}const N=o(c,[["render",k],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/v1.5.1/","title":"DSF 1.5.1","lang":"en-US","frontmatter":{"title":"DSF 1.5.1","icon":"guide"},"headers":[{"level":2,"title":"New features","slug":"new-features","link":"#new-features","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.46,"words":139},"filePathRelative":"v1.5.1/index.md","localizedDate":"April 17, 2024","excerpt":"
Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click here to find more information about the DSF in general.
"}');export{N as comp,C as data};
diff --git a/assets/index.html-3a35NisQ.js b/assets/index.html-3a35NisQ.js
new file mode 100644
index 000000000..9514e802d
--- /dev/null
+++ b/assets/index.html-3a35NisQ.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as r,c as a,e as i}from"./app-kq9lCQfY.js";const t={},n=i('
\\n"}');export{m as comp,h as data};
diff --git a/assets/index.html-4tMg7LJV.js b/assets/index.html-4tMg7LJV.js
new file mode 100644
index 000000000..f6608b0e9
--- /dev/null
+++ b/assets/index.html-4tMg7LJV.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as a,w as h,e as d}from"./app-kq9lCQfY.js";const c={},m={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"Important note",-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},f=d('
',5),_=e("li",null,"Improved versioning to support up- and downwards-compatibility",-1),g=e("li",null,"Enhanced web ui to start processes in the web browser",-1),w=e("li",null,"Allow local user authentication and authorization with OpenID Connect",-1),b=e("li",null,"New process plugin API",-1),v=e("li",null,"Removed mostly unused features to simplify instance configuration",-1),x=e("li",null,"Unified proxy setup",-1),S={href:"https://github.com/datasharingframework/dsf/releases",target:"_blank",rel:"noopener noreferrer"};function k(D,F){const i=r("RouteLink"),n=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click "),a(i,{to:"/intro/"},{default:h(()=>[t("here")]),_:1}),t(" to find more information about the DSF in general.")]),e("div",m,[p,e("p",null,[t("This is a major DSF release not compatible with 0.9.x and older version developed at "),e("a",u,[t("https://github.com/highmed/highmed-dsf"),a(n)]),t(".")])]),f,e("ul",null,[_,g,w,b,v,x,e("li",null,[t("Many more features, see "),e("a",S,[t("1.x release-notes"),a(n)])])])])}const N=o(c,[["render",k],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/v1.3.2/","title":"DSF 1.3.2","lang":"en-US","frontmatter":{"title":"DSF 1.3.2","icon":"guide"},"headers":[{"level":2,"title":"New features","slug":"new-features","link":"#new-features","children":[]}],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.46,"words":139},"filePathRelative":"v1.3.2/index.md","localizedDate":"December 4, 2023","excerpt":"
Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click here to find more information about the DSF in general.
"}');export{N as comp,C as data};
diff --git a/assets/index.html-59Lw0KGh.js b/assets/index.html-59Lw0KGh.js
new file mode 100644
index 000000000..77a1c4e30
--- /dev/null
+++ b/assets/index.html-59Lw0KGh.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as n,e as r}from"./app-kq9lCQfY.js";const a={},t=r('
\\n"}');export{f as comp,m as data};
diff --git a/assets/index.html-6QqXTGgD.js b/assets/index.html-6QqXTGgD.js
new file mode 100644
index 000000000..c72fe0773
--- /dev/null
+++ b/assets/index.html-6QqXTGgD.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as r,e as a}from"./app-kq9lCQfY.js";const n={},l=a('
"}');export{u as comp,m as data};
diff --git a/assets/index.html-7wErRCxo.js b/assets/index.html-7wErRCxo.js
new file mode 100644
index 000000000..40abc6281
--- /dev/null
+++ b/assets/index.html-7wErRCxo.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as a,c as l,a as t,b as e,d as r,e as o}from"./app-kq9lCQfY.js";const c={},u=t("p",null,"We take security of the DSF, its process plugins, services and tools we operate very seriously.",-1),d={href:"https://dsf.dev/intro/info/architecture.html",target:"_blank",rel:"noopener noreferrer"},h={href:"https://dsf.dev/intro/info/security.html",target:"_blank",rel:"noopener noreferrer"},p={href:"https://dsf.dev/intro/info/allowList.html",target:"_blank",rel:"noopener noreferrer"},m={href:"https://dsf.dev/stable/maintain/install.html",target:"_blank",rel:"noopener noreferrer"},f={href:"https://dsf.dev/stable/maintain/upgrade-from-1.html",target:"_blank",rel:"noopener noreferrer"},y=o('
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.
We as the DSF development team take security of our software, services and data very seriously. We understand that despite our best efforts, vulnerabilities can exist. To address this, we encourage responsible reporting of any security vulnerabilities discovered in our software and systems.
We kindly ask security researchers and the general public to follow the principles of Coordinated Vulnerability Disclosure (CVD) or Responsible Disclosure when reporting vulnerabilities to us. This approach helps us to mitigate potential risks and protect our users' data effectively.
',7),g=t("strong",null,[t("a",{href:"mailto:dsf-security@hs-heilbronn.de"},"dsf-security@hs-heilbronn.de")],-1),b={href:"https://github.com/datasharingframework/dsf/blob/main/SECURITY_CERTIFICATE.pem",target:"_blank",rel:"noopener noreferrer"},v=t("ul",null,[t("li",null,"Provide a detailed description of the vulnerability, including if possible the potential impact and how it can be exploited."),t("li",null,"Include steps to reproduce the vulnerability or proof-of-concept code, if possible."),t("li",null,"Avoid accessing or modifying user data without permission, and do not exploit a security issue for any reason other than testing."),t("li",null,"Maintain confidentiality and do not publicly disclose the vulnerability, until we have had the opportunity to investigate and address it.")],-1),_={href:"https://github.com/datasharingframework/dsf/blob/main/SECURITY.md",target:"_blank",rel:"noopener noreferrer"},w=o('
Acknowledgement: We usually will acknowledge receipt of your vulnerability report within 48 hours.
Investigation: Our security team will investigate the issue and work diligently to verify and reproduce the vulnerability.
Communication: We will keep you informed of our progress as we work to resolve the issue.
Resolution: We will strive to resolve security issues in a timely manner and release updates, patches, or remediations as needed.
Recognition: We value your effort in making our systems more secure and will recognize your contribution, if desired, once the vulnerability is resolved.
We promise not to initiate legal action against individuals who report vulnerabilities responsibly in accordance with this policy. This includes not suing for accidental access to data or reporting in good faith.
',5),k=t("strong",null,[t("a",{href:"mailto:dsf-security@hs-heilbronn.de"},"dsf-security@hs-heilbronn.de")],-1),S={href:"https://github.com/datasharingframework/dsf/blob/main/SECURITY_CERTIFICATE.pem",target:"_blank",rel:"noopener noreferrer"};function x(T,I){const i=n("ExternalLinkIcon");return a(),l("div",null,[u,t("p",null,[e("We describe the security mechanisms used by the DSF to implement secure communication on the pages "),t("a",d,[e("Architecture"),r(i)]),e(", "),t("a",h,[e("Security"),r(i)]),e(" and "),t("a",p,[e("Allow List"),r(i)]),e(".")]),t("p",null,[e("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 "),t("a",m,[e("instructions to install"),r(i)]),e(" the latest version of the DSF or "),t("a",f,[e("to upgrade"),r(i)]),e(" on the latest version. The instructions described there implement the security configuration recommended by us.")]),y,t("p",null,[e("If you believe you have found a security vulnerability in our system, please email us at "),g,e(". If you want to use end-to-end-encryption, you can send us mails using s-mime with the certificate chain provided "),t("a",b,[e("here"),r(i)]),e(". We kindly request the following:")]),v,t("p",null,[e("Please do not file an issue on a security-related topic and use the e-mail address provided. You can verify the address both in the "),t("a",_,[e("application repository"),r(i)]),e(" and at the homepage (this page).")]),w,t("p",null,[e("If you have any questions about this policy or security of the Data Sharing Framework, the services and tools we provide, please contact us at "),k,e(". You can send us encrypted e-mails using s-mime. You can find the certificate chain "),t("a",S,[e("here"),r(i)]),e(".")])])}const W=s(c,[["render",x],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/security/","title":"Security","lang":"en-US","frontmatter":{"title":"Security","icon":"safe"},"headers":[{"level":2,"title":"Security vulnerability disclosure policy","slug":"security-vulnerability-disclosure-policy","link":"#security-vulnerability-disclosure-policy","children":[{"level":3,"title":"Our commitment to security","slug":"our-commitment-to-security","link":"#our-commitment-to-security","children":[]},{"level":3,"title":"Responsible disclosure","slug":"responsible-disclosure","link":"#responsible-disclosure","children":[]},{"level":3,"title":"How to Report a Vulnerability","slug":"how-to-report-a-vulnerability","link":"#how-to-report-a-vulnerability","children":[]},{"level":3,"title":"Our promise","slug":"our-promise","link":"#our-promise","children":[]},{"level":3,"title":"Legal Protection","slug":"legal-protection","link":"#legal-protection","children":[]},{"level":3,"title":"Questions?","slug":"questions","link":"#questions","children":[]}]}],"git":{"createdTime":1706191215000,"updatedTime":1706191215000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.97,"words":590},"filePathRelative":"security/readme.md","localizedDate":"January 25, 2024","excerpt":"
We take security of the DSF, its process plugins, services and tools we operate very seriously.
\\n
We describe the security mechanisms used by the DSF to implement secure communication on the pages Architecture, Security and Allow List.
"}');export{W as comp,C as data};
diff --git a/assets/index.html-B0FSLKVu.js b/assets/index.html-B0FSLKVu.js
new file mode 100644
index 000000000..363fa9384
--- /dev/null
+++ b/assets/index.html-B0FSLKVu.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,e as r}from"./app-kq9lCQfY.js";const n={},l=r('
\\n"}');export{h as comp,m as data};
diff --git a/assets/index.html-BA9Y-W0Q.js b/assets/index.html-BA9Y-W0Q.js
new file mode 100644
index 000000000..2ac0ef316
--- /dev/null
+++ b/assets/index.html-BA9Y-W0Q.js
@@ -0,0 +1 @@
+import{_ as o}from"./dsf-concept-Dbcu0twt.js";import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as i,c as d,a as e,b as a,d as t,e as c}from"./app-kq9lCQfY.js";const l="/photos/learnmore/funding/bmbf-mii.png",h={},m=e("hr",null,null,-1),u=e("h1",{id:"data-sharing-framework",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#data-sharing-framework"},[e("span",null,"Data Sharing Framework")])],-1),p=e("strong",null,"Data Sharing Framework (DSF)",-1),f={href:"https://www.gesundheitsforschung-bmbf.de/de/dsf-medizininformatik-struktur-data-sharing-framework-community-16133.php",target:"_blank",rel:"noopener noreferrer"},g=e("figure",null,[e("img",{src:o,alt:"DSF concept",tabindex:"0",loading:"lazy"}),e("figcaption",null,"DSF concept")],-1),b={id:"rolf-hansen-memorial-award-2023-goes-to-hauke-hund",tabindex:"-1"},k={class:"header-anchor",href:"#rolf-hansen-memorial-award-2023-goes-to-hauke-hund"},w={href:"https://github.com/hhund",target:"_blank",rel:"noopener noreferrer"},_={href:"https://www.mie2023.org/",target:"_blank",rel:"noopener noreferrer"},y=e("em",null,"No Transfer Without Validation: A Data Sharing Framework Use Case",-1),F={href:"https://ebooks.iospress.nl/doi/10.3233/SHTI230066",target:"_blank",rel:"noopener noreferrer"},S=c('
',2);function v(x,M){const n=s("ExternalLinkIcon");return i(),d("div",null,[m,u,e("p",null,[a("The "),p,a(" is a concept for a secure middleware to distribute data sharing processes based on the BPMN 2.0 and FHIR R4 standards. The DSF is used to support biomedical research with routine data, aiming to extract, merge, pseudonymize and provide data stored in multiple distributed organizations. Every participating site runs a FHIR endpoint accessible by other sites and a business process engine in the local secured network. The process engines execute BPMN processes in order to coordinate local and remote steps necessary to enable cross-site data sharing or feasibility analyses. This includes access to local data repositories, use-and-access-committee decision support, consent filtering, and privacy preserving record-linkage and pseudonymization. The aim is to enable secure and syntactically-, semantically- and process-interoperable data exchange across organizational boundaries. The secure communication infrastructure is funded by the German Federal Ministry of Education and Research within the Medical Informatics structure as "),e("em",null,[e("a",f,[a("DSF Community"),t(n)])]),a(".")]),g,e("h2",b,[e("a",k,[e("span",null,[a("Rolf Hansen Memorial Award 2023 goes to "),e("a",w,[a("Hauke Hund"),t(n)])])])]),e("p",null,[a("We are very pleased to have won the Rolf Hansen Memorial Award at "),e("a",_,[a("EFMI MIE 2023"),t(n)]),a(" 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: "),y,a(" in May at the EFMI MIE. "),e("a",F,[a("doi:10.3233/SHTI230066 "),t(n)])]),S])}const H=r(h,[["render",v],["__file","index.html.vue"]]),z=JSON.parse('{"path":"/","title":"Data Sharing Framework","lang":"en-US","frontmatter":{"home":true,"icon":"home","title":"Data Sharing Framework","heroImage":"/photos/home/logo.svg","heroText":"Data Sharing Framework","tagline":"A performant, secure, and innovative framework that enables biomedical researchers to extract value from routine data.","features":[{"title":"Introduction","icon":"info","details":"Introduction to the DSF and informations about Use-Cases/Projects.","link":"/intro/"},{"title":"Get Started","icon":"launch","details":"Get technical insights and install the DSF | Develop Process Plugins.","link":"/stable/"},{"title":"About Us","icon":"creative","details":"Contact, partners, the team behind the DSF and more... Join our community!","link":"/about/learnmore/"},{"title":"GitHub","icon":"github","details":"Take a look at the open-source reference implementation.","link":"https://github.com/datasharingframework/dsf"}]},"headers":[{"level":2,"title":"Rolf Hansen Memorial Award 2023 goes to Hauke Hund","slug":"rolf-hansen-memorial-award-2023-goes-to-hauke-hund","link":"#rolf-hansen-memorial-award-2023-goes-to-hauke-hund","children":[]}],"git":{"createdTime":1680254536000,"updatedTime":1715791698000,"contributors":[{"name":"simonmoedinger","email":"simonmoedi@web.de","commits":8},{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":5},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":5},{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2},{"name":"Mohammad Amir Kannout","email":"mkannout@stud.hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.46,"words":439},"filePathRelative":"index.md","localizedDate":"March 31, 2023","excerpt":"\\n
Data Sharing Framework
\\n
The Data Sharing Framework (DSF) is a concept for a secure middleware to distribute data sharing processes based on the BPMN 2.0 and FHIR R4 standards. The DSF is used to support biomedical research with routine data, aiming to extract, merge, pseudonymize and provide data stored in multiple distributed organizations. Every participating site runs a FHIR endpoint accessible by other sites and a business process engine in the local secured network. The process engines execute BPMN processes in order to coordinate local and remote steps necessary to enable cross-site data sharing or feasibility analyses. This includes access to local data repositories, use-and-access-committee decision support, consent filtering, and privacy preserving record-linkage and pseudonymization. The aim is to enable secure and syntactically-, semantically- and process-interoperable data exchange across organizational boundaries. The secure communication infrastructure is funded by the German Federal Ministry of Education and Research within the Medical Informatics structure as DSF Community.
"}');export{H as comp,z as data};
diff --git a/assets/index.html-BALcS47z.js b/assets/index.html-BALcS47z.js
new file mode 100644
index 000000000..a4d59f819
--- /dev/null
+++ b/assets/index.html-BALcS47z.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,e as r}from"./app-kq9lCQfY.js";const n={},l=r('
"}');export{m as comp,u as data};
diff --git a/assets/index.html-BCPmXfDv.js b/assets/index.html-BCPmXfDv.js
new file mode 100644
index 000000000..80997b77d
--- /dev/null
+++ b/assets/index.html-BCPmXfDv.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as a,c as l,a as e}from"./app-kq9lCQfY.js";const i={},n=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),o=e("ul",null,[e("li",null,[e("a",{href:"create"},"Create a new process plugin")]),e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade processes from 0.9.x")])],-1),t=[n,o];function s(c,d){return a(),l("div",null,t)}const h=r(i,[["render",s],["__file","index.html.vue"]]),v=JSON.parse('{"path":"/v1.5.2/develop/","title":"Develop Process Plugins","lang":"en-US","frontmatter":{"title":"Develop Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"v1.5.2/develop/README.md","localizedDate":"July 8, 2024","excerpt":"
\\n"}');export{m as comp,v as data};
diff --git a/assets/index.html-BL-TOoxL.js b/assets/index.html-BL-TOoxL.js
new file mode 100644
index 000000000..a81255327
--- /dev/null
+++ b/assets/index.html-BL-TOoxL.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as o,a as e}from"./app-kq9lCQfY.js";const a={},l=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),n=e("ul",null,[e("li",null,[e("a",{href:"create"},"Create a new process plugin")]),e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade processes from 0.9.x")])],-1),t=[l,n];function s(c,d){return i(),o("div",null,t)}const h=r(a,[["render",s],["__file","index.html.vue"]]),v=JSON.parse('{"path":"/v1.3.0/develop/","title":"Develop Process Plugins","lang":"en-US","frontmatter":{"title":"Develop Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1696944513000,"updatedTime":1696944513000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"v1.3.0/develop/README.md","localizedDate":"October 10, 2023","excerpt":"
\\n"}');export{h as comp,v as data};
diff --git a/assets/index.html-BM8BVXez.js b/assets/index.html-BM8BVXez.js
new file mode 100644
index 000000000..58afc4a3c
--- /dev/null
+++ b/assets/index.html-BM8BVXez.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as s,a as e,b as a,d as t,w as n}from"./app-kq9lCQfY.js";const d={},m=e("h2",{id:"overview-v-0-9-x",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview-v-0-9-x"},[e("span",null,"Overview (v 0.9.x)")])],-1);function u(h,c){const l=i("RouteLink");return r(),s("div",null,[e("p",null,[a("Data Sharing Framework 0.9.x is an old version of the Data Sharing Framework. Click "),t(l,{to:"/intro/"},{default:n(()=>[a("here")]),_:1}),a(" to find more information about the DSF in general.")]),m,e("ul",null,[e("li",null,[t(l,{to:"/oldstable/generalInformation/"},{default:n(()=>[a("General Information")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/code/"},{default:n(()=>[a("Code")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/build/"},{default:n(()=>[a("Build and Test")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/releases/"},{default:n(()=>[a("Releases and Deployment")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/tutorial/"},{default:n(()=>[a("DSF Process Plugin Tutorial")]),_:1})])])])}const v=o(d,[["render",u],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/oldstable/","title":"Version 0.9.x","lang":"en-US","frontmatter":{"title":"Version 0.9.x","icon":"guide"},"headers":[{"level":2,"title":"Overview (v 0.9.x)","slug":"overview-v-0-9-x","link":"#overview-v-0-9-x","children":[]}],"git":{"createdTime":1688985700000,"updatedTime":1692783801000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":3},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":3},{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.17,"words":51},"filePathRelative":"oldstable/README.md","localizedDate":"July 10, 2023","excerpt":"
Data Sharing Framework 0.9.x is an old version of the Data Sharing Framework. Click here to find more information about the DSF in general.
\\n"}');export{v as comp,u as data};
diff --git a/assets/index.html-Bc9IQ5FT.js b/assets/index.html-Bc9IQ5FT.js
new file mode 100644
index 000000000..21333a0ab
--- /dev/null
+++ b/assets/index.html-Bc9IQ5FT.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as o,a as e}from"./app-kq9lCQfY.js";const a={},l=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),n=e("ul",null,[e("li",null,[e("a",{href:"create"},"Create a new process plugin")]),e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade processes from 0.9.x")])],-1),t=[l,n];function s(c,d){return i(),o("div",null,t)}const h=r(a,[["render",s],["__file","index.html.vue"]]),v=JSON.parse('{"path":"/v1.3.2/develop/","title":"Develop Process Plugins","lang":"en-US","frontmatter":{"title":"Develop Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"v1.3.2/develop/README.md","localizedDate":"December 4, 2023","excerpt":"
\\n"}');export{v as comp,u as data};
diff --git a/assets/index.html-BgN128oA.js b/assets/index.html-BgN128oA.js
new file mode 100644
index 000000000..2fe4f6abd
--- /dev/null
+++ b/assets/index.html-BgN128oA.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as a,w as h,e as d}from"./app-kq9lCQfY.js";const c={},m={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"Important note",-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},f=d('
',5),_=e("li",null,"Improved versioning to support up- and downwards-compatibility",-1),g=e("li",null,"Enhanced web ui to start processes in the web browser",-1),w=e("li",null,"Allow local user authentication and authorization with OpenID Connect",-1),b=e("li",null,"New process plugin API",-1),v=e("li",null,"Removed mostly unused features to simplify instance configuration",-1),x=e("li",null,"Unified proxy setup",-1),S={href:"https://github.com/datasharingframework/dsf/releases",target:"_blank",rel:"noopener noreferrer"};function k(D,F){const i=r("RouteLink"),n=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click "),a(i,{to:"/intro/"},{default:h(()=>[t("here")]),_:1}),t(" to find more information about the DSF in general.")]),e("div",m,[p,e("p",null,[t("This is a major DSF release not compatible with 0.9.x and older version developed at "),e("a",u,[t("https://github.com/highmed/highmed-dsf"),a(n)]),t(".")])]),f,e("ul",null,[_,g,w,b,v,x,e("li",null,[t("Many more features, see "),e("a",S,[t("1.x release-notes"),a(n)])])])])}const N=o(c,[["render",k],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/v1.4.0/","title":"DSF 1.4.0","lang":"en-US","frontmatter":{"title":"DSF 1.4.0","icon":"guide"},"headers":[{"level":2,"title":"New features","slug":"new-features","link":"#new-features","children":[]}],"git":{"createdTime":1702917645000,"updatedTime":1702917645000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.46,"words":139},"filePathRelative":"v1.4.0/index.md","localizedDate":"December 18, 2023","excerpt":"
Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click here to find more information about the DSF in general.
"}');export{N as comp,C as data};
diff --git a/assets/index.html-BkHpX9Lh.js b/assets/index.html-BkHpX9Lh.js
new file mode 100644
index 000000000..8f46f6511
--- /dev/null
+++ b/assets/index.html-BkHpX9Lh.js
@@ -0,0 +1 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as r,c as s,a as t,d as i,w as o,b as a}from"./app-kq9lCQfY.js";const u={};function m(d,c){const e=n("RouteLink");return r(),s("div",null,[t("ul",null,[t("li",null,[i(e,{to:"/intro/tutorials/MIE2023.html"},{default:o(()=>[a("MIE 2023")]),_:1})]),t("li",null,[i(e,{to:"/intro/tutorials/GMDS2022-dev.html"},{default:o(()=>[a("GMDS 2022 - DSF Process Plugin Tutorial v 0.9.x")]),_:1})])])])}const f=l(u,[["render",m],["__file","index.html.vue"]]),p=JSON.parse('{"path":"/intro/tutorials/","title":"Tutorials","lang":"en-US","frontmatter":{"title":"Tutorials","icon":"edit"},"headers":[],"git":{"createdTime":1690461865000,"updatedTime":1697551355000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.06,"words":17},"filePathRelative":"intro/tutorials/README.md","localizedDate":"July 27, 2023","excerpt":"
\\n"}');export{f as comp,p as data};
diff --git a/assets/index.html-Bmlmhagb.js b/assets/index.html-Bmlmhagb.js
new file mode 100644
index 000000000..ca655d903
--- /dev/null
+++ b/assets/index.html-Bmlmhagb.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,e as r}from"./app-kq9lCQfY.js";const n={},l=r('
"}');export{m as comp,u as data};
diff --git a/assets/index.html-BsAx9IPS.js b/assets/index.html-BsAx9IPS.js
new file mode 100644
index 000000000..89e1b1a9f
--- /dev/null
+++ b/assets/index.html-BsAx9IPS.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as r,e as n}from"./app-kq9lCQfY.js";const a={},t=n('
\\n"}');export{d as comp,f as data};
diff --git a/assets/index.html-Bt8TXjqJ.js b/assets/index.html-Bt8TXjqJ.js
new file mode 100644
index 000000000..485396beb
--- /dev/null
+++ b/assets/index.html-Bt8TXjqJ.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as o,a as e}from"./app-kq9lCQfY.js";const a={},l=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),n=e("ul",null,[e("li",null,[e("a",{href:"create"},"Create a new process plugin")]),e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade processes from 0.9.x")])],-1),t=[l,n];function s(c,d){return i(),o("div",null,t)}const h=r(a,[["render",s],["__file","index.html.vue"]]),v=JSON.parse('{"path":"/v1.3.1/develop/","title":"Develop Process Plugins","lang":"en-US","frontmatter":{"title":"Develop Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1698748420000,"updatedTime":1698748420000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"v1.3.1/develop/README.md","localizedDate":"October 31, 2023","excerpt":"
\\n"}');export{v as comp,u as data};
diff --git a/assets/index.html-Bv1aj902.js b/assets/index.html-Bv1aj902.js
new file mode 100644
index 000000000..c4842d2de
--- /dev/null
+++ b/assets/index.html-Bv1aj902.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as n,e as a}from"./app-kq9lCQfY.js";const r={},t=a('
\\n"}');export{d as comp,v as data};
diff --git a/assets/index.html-BxKmwZz7.js b/assets/index.html-BxKmwZz7.js
new file mode 100644
index 000000000..1b424e1fa
--- /dev/null
+++ b/assets/index.html-BxKmwZz7.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,e as r}from"./app-kq9lCQfY.js";const n={},l=r('
"}');export{m as comp,u as data};
diff --git a/assets/index.html-C-fzjFRH.js b/assets/index.html-C-fzjFRH.js
new file mode 100644
index 000000000..c323659dc
--- /dev/null
+++ b/assets/index.html-C-fzjFRH.js
@@ -0,0 +1 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as i,c,a as e,d as n,w as a,b as o}from"./app-kq9lCQfY.js";const m={};function s(u,d){const t=r("RouteLink");return i(),c("div",null,[e("ul",null,[e("li",null,[n(t,{to:"/oldstable/generalinformation/authentication.html"},{default:a(()=>[o("Authentication")]),_:1})]),e("li",null,[n(t,{to:"/oldstable/generalinformation/networkSetup.html"},{default:a(()=>[o("Network Setup and General Architecture")]),_:1})])])])}const _=l(m,[["render",s],["__file","index.html.vue"]]),p=JSON.parse('{"path":"/oldstable/generalinformation/","title":"General Information","lang":"en-US","frontmatter":{"title":"General Information","icon":"set"},"headers":[],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.04,"words":13},"filePathRelative":"oldstable/generalinformation/README.md","localizedDate":"August 23, 2023","excerpt":"
\\n"}');export{_ as comp,p as data};
diff --git a/assets/index.html-C0hIsdj5.js b/assets/index.html-C0hIsdj5.js
new file mode 100644
index 000000000..e54919189
--- /dev/null
+++ b/assets/index.html-C0hIsdj5.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as a,c as n,d as r}from"./app-kq9lCQfY.js";const l={};function s(c,i){const e=o("Catalog");return a(),n("div",null,[r(e)])}const _=t(l,[["render",s],["__file","index.html.vue"]]),d=JSON.parse('{"path":"/intro/info/","title":"Info","lang":"en-US","frontmatter":{"title":"Info","article":false,"feed":false,"sitemap":false},"headers":[],"git":{},"readingTime":{"minutes":0,"words":1},"filePathRelative":null,"excerpt":""}');export{_ as comp,d as data};
diff --git a/assets/index.html-C6oGyzQN.js b/assets/index.html-C6oGyzQN.js
new file mode 100644
index 000000000..e8d3b8219
--- /dev/null
+++ b/assets/index.html-C6oGyzQN.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as a,c as o,a as e,b as n,d as t,e as l}from"./app-kq9lCQfY.js";const h={},d={class:"hint-container tip"},u=e("p",{class:"hint-container-title"},"Gemeinsame technische Sprechstunde der DSF-Community und des FDPG+",-1),c=e("li",null,"Montags, 13:00-14:00 Uhr",-1),m={href:"https://dsf.dev/sprechstunde",target:"_blank",rel:"noopener noreferrer"},g=e("h1",{id:"hackathon-vom-18-06-2024",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hackathon-vom-18-06-2024"},[e("span",null,"Hackathon vom 18.06.2024")])],-1),p={class:"hint-container tip"},f=e("p",{class:"hint-container-title"},"Zusammenfassung",-1),b={href:"https://audimax.heiconf.uni-heidelberg.de/jxh4-jxx2-tm6c-d37q",target:"_blank",rel:"noopener noreferrer"},_=e("li",null,[e("a",{href:"#vorbereitung"},"Vorbereitung")],-1),k=e("li",null,[e("a",{href:"#installationshinweise"},"Installationshinweise")],-1),v=l('
Wir laden Sie herzlich zu unserem kommenden Hackathon am 18.06. von 10:00 Uhr bis 15:30 Uhr ein. Diese Veranstaltung bietet die Gelegenheit, sich mit den neuesten Updates und Funktionen unserer Komponenten vertraut zu machen.
Agenda:
Einführung in Neuerungen (10:00 - 11:00 Uhr):
Begrüßung und Einführung in die neuen Funktionen und Verbesserungen des DSFs
Präsentation der Änderungen der MII DSF-Prozessplugins, sowie von Blaze und Flare
Updates MII-Komponenten (ab 11:00 Uhr bis verlängerter Pause, um NUM-DIZ-Meeting besuchen zu können):
DSF
Feasibility
Data Sharing
Data Transfer
KDS Report
Blaze
Flare mit neuer KDS Ontologie
Testen des Prozessplugins "Data Sharing" (ab 14:15 Uhr):
Praktische Anwendung des "Data Sharing"-Prozessplugins auf unserer Testinfrastruktur.
Ziel der Veranstaltung ist es die Test- und Produktivsysteme möglichst aller Standorte auf den neusten Stand zu patchen.
In diesem Hackathon ist das Aktualisieren der Systeme ein aktiver Bestandteil und bedarf keiner speziellen Vorbereitung. Für das Testen der Data Sharing Prozesse sollten jedoch einige Voraussetzungen bereits vor dem Termin erfüllt sein.
',7),w={href:"http://mii-test.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},z={href:"http://allowlist-test.gecko.hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},S=e("p",null,"Wir empfehlen auch sicherzustellen, dass Sie Zugriff auf die Weboberfläche Ihres DSF-FHIR-Servers haben.",-1),D=e("h3",{id:"fhir-store",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#fhir-store"},[e("span",null,"FHIR-Store")])],-1),x=e("p",null,"Zur Datenausleitung im Kontext des Data Sharing Prozesses werden wir FHIR Bundles mit Testdaten zur Verfügung stellen, die in Form eines FHIR Bundles auf einem FHIR Store gespeichert werden müssen. Dabei kann ein beliebiger FHIR Server (z.B. HAPI FHIR oder Blaze) verwendet werden. Es kann auch der FHIR Server verwendet werden, der z.B. für Feasibility im Testsystem genutzt wird.",-1),F=e("p",null,"Weitere Details zum Data Sharing Prozess sind hier zu finden:",-1),I={href:"https://github.com/medizininformatik-initiative/mii-process-data-sharing/wiki",target:"_blank",rel:"noopener noreferrer"},P=e("p",null,"Eine Installation kann vor oder während des Hackathons durchgeführt werden.",-1),H=e("h2",{id:"installationshinweise",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#installationshinweise"},[e("span",null,"Installationshinweise")])],-1),T=e("h3",{id:"dsf",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#dsf"},[e("span",null,"DSF")])],-1),y={href:"https://dsf.dev/stable/maintain/install.html",target:"_blank",rel:"noopener noreferrer"},B={href:"https://dsf.dev/stable/maintain/upgrade-from-1.html",target:"_blank",rel:"noopener noreferrer"},M=e("h3",{id:"prozessplugins",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#prozessplugins"},[e("span",null,"Prozessplugins")])],-1),R={href:"https://github.com/datasharingframework/dsf-process-ping-pong/releases/tag/v1.0.1.0",target:"_blank",rel:"noopener noreferrer"},V={href:"https://github.com/datasharingframework/dsf-process-allow-list/releases/tag/v1.0.0.1",target:"_blank",rel:"noopener noreferrer"},N={href:"https://github.com/medizininformatik-initiative/feasibility-deploy/wiki/DSF-Middleware-Setup",target:"_blank",rel:"noopener noreferrer"},U={href:"https://github.com/medizininformatik-initiative/mii-process-report/wiki/Process-Report-Deployment-v1.1.x.x",target:"_blank",rel:"noopener noreferrer"},A={href:"https://github.com/medizininformatik-initiative/mii-process-report/wiki/Process-Report-Deployment-v1.0.x.x",target:"_blank",rel:"noopener noreferrer"},E={href:"https://github.com/medizininformatik-initiative/mii-process-data-transfer/wiki/Process-Data-Transfer-Deployment-v1.0.x.x",target:"_blank",rel:"noopener noreferrer"},j={href:"https://github.com/medizininformatik-initiative/mii-process-data-sharing/wiki/Process-Data-Sharing-Deployment-v1.0.x.x",target:"_blank",rel:"noopener noreferrer"},q=e("h3",{id:"weitere-anwendungen",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#weitere-anwendungen"},[e("span",null,"Weitere Anwendungen")])],-1),K={href:"https://github.com/medizininformatik-initiative/flare",target:"_blank",rel:"noopener noreferrer"},W={href:"https://github.com/samply/blaze/blob/master/docs/deployment/README.md",target:"_blank",rel:"noopener noreferrer"},Z=e("h2",{id:"data-sharing-demodaten",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#data-sharing-demodaten"},[e("span",null,"Data Sharing Demodaten")])],-1),G={href:"https://github.com/medizininformatik-initiative/mii-process-data-sharing/blob/develop/src/test/resources/fhir/Bundle/Dic1FhirStore_Demo_Bundle.xml",target:"_blank",rel:"noopener noreferrer"},C=e("p",null,[n("Falls Sie Fragen zum Hackathon oder der Installation des DSF haben, melden Sie sich gerne über den DSF-Community Zulip-Channel oder "),e("a",{href:"mailto:dsf-gecko@hs-heilbronn.de"},"dsf-gecko@hs-heilbronn.de"),n(".")],-1);function O(L,J){const i=s("ExternalLinkIcon");return a(),o("div",null,[e("div",d,[u,e("ul",null,[c,e("li",null,[n("Ort: "),e("a",m,[n("https://dsf.dev/sprechstunde"),t(i)])])])]),g,e("div",p,[f,e("ul",null,[e("li",null,[n("Konferenz: "),e("a",b,[n("https://audimax.heiconf.uni-heidelberg.de/jxh4-jxx2-tm6c-d37q"),t(i)])]),_,k])]),v,e("p",null,[n("Für den Hackathon werden wir primär die Test-DMS aus Heilbronn verwenden, dafür muss neben der Freigabe zur FDPG auch die Freigabe zum und vom MII-Test-System der HHN vorhanden sein ("),e("a",w,[n("mii-test.gecko.hs-heilbronn.de"),t(i)]),n(").")]),e("p",null,[n("In diesem Kontext bietet es sich an, auch die Freigaben für weitere Test-DMSen zu beantragen. Weitere Details dazu befinden sich in der Liste der Firewallregeln im Test-Allowlist-Management-Tool ("),e("a",z,[n("allowlist-test.gecko.hs-heilbronn.de"),t(i)]),n(") unter dem Punkt “Download Allowlist”. Wir planen während des Termins auch mit ausgewählten DIZen erste Funktionstests der Test-DMSen durchzuführen.")]),S,D,x,F,e("p",null,[e("a",I,[n("https://github.com/medizininformatik-initiative/mii-process-data-sharing/wiki"),t(i)])]),P,H,T,e("p",null,[e("a",y,[n("Installation"),t(i)]),n(" oder "),e("a",B,[n("Update"),t(i)])]),M,e("ul",null,[e("li",null,[n("DSF Ping Pong 1.0.1.0 "),e("a",R,[n("Release Notes"),t(i)])]),e("li",null,[n("DSF Allowlist Plugin 1.0.0.1 "),e("a",V,[n("Release Notes"),t(i)])]),e("li",null,[n("MII Feasibility 1.0.0.5 "),e("a",N,[n("Instructions"),t(i)])]),e("li",null,[n("MII Process Report 1.1.0.0 for Test Infrastructure "),e("a",U,[n("Instructions"),t(i)]),n(". Please use 1.0.x.x for Prod for now "),e("a",A,[n("Instructions"),t(i)])]),e("li",null,[n("MII Process Data Transfer 1.0.1.0 "),e("a",E,[n("Instructions"),t(i)])]),e("li",null,[n("MII Process Data Sharing 1.0.0.1 "),e("a",j,[n("Instructions"),t(i)])])]),q,e("ul",null,[e("li",null,[n("Flare "),e("a",K,[n("Instructions"),t(i)])]),e("li",null,[n("Blaze 0.27.1 "),e("a",W,[n("Instructions"),t(i)])])]),Z,e("ul",null,[e("li",null,[e("a",G,[n("https://github.com/medizininformatik-initiative/mii-process-data-sharing/blob/develop/src/test/resources/fhir/Bundle/Dic1FhirStore_Demo_Bundle.xml"),t(i)])])]),C])}const Y=r(h,[["render",O],["__file","index.html.vue"]]),$=JSON.parse('{"path":"/hackathon/","title":"Hackathon","lang":"en-US","frontmatter":{"title":"Hackathon","icon":"guide"},"headers":[{"level":2,"title":"Vorbereitung","slug":"vorbereitung","link":"#vorbereitung","children":[{"level":3,"title":"Netzwerkfreigaben","slug":"netzwerkfreigaben","link":"#netzwerkfreigaben","children":[]},{"level":3,"title":"FHIR-Store","slug":"fhir-store","link":"#fhir-store","children":[]}]},{"level":2,"title":"Installationshinweise","slug":"installationshinweise","link":"#installationshinweise","children":[{"level":3,"title":"DSF","slug":"dsf","link":"#dsf","children":[]},{"level":3,"title":"Prozessplugins","slug":"prozessplugins","link":"#prozessplugins","children":[]},{"level":3,"title":"Weitere Anwendungen","slug":"weitere-anwendungen","link":"#weitere-anwendungen","children":[]}]},{"level":2,"title":"Data Sharing Demodaten","slug":"data-sharing-demodaten","link":"#data-sharing-demodaten","children":[]}],"git":{"createdTime":1697030297000,"updatedTime":1719907123000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":16},{"name":"Maximilian Kurscheidt","email":"maximilian.kurscheidt@hs-heilbronn.de","commits":4},{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Jan Böhringer","email":"jan.boehringer@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon@Laptop-von-Simon.local","commits":1}]},"readingTime":{"minutes":1.91,"words":573},"filePathRelative":"hackathon/index.md","localizedDate":"October 11, 2023","excerpt":"\\n
\\n
Gemeinsame technische Sprechstunde der DSF-Community und des FDPG+
"}');export{Y as comp,$ as data};
diff --git a/assets/index.html-C7I1gN0A.js b/assets/index.html-C7I1gN0A.js
new file mode 100644
index 000000000..7aa2c9163
--- /dev/null
+++ b/assets/index.html-C7I1gN0A.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as i,c as a,a as e,b as t,d as n,e as l}from"./app-kq9lCQfY.js";const u={},c=e("p",null,"We are thrilled that you consider contributing to our projects. Your contributions, big or small, are greatly valued and play a significant role in the success and improvement of our work. Whether you're a seasoned developer or just starting out, there's a place for you here to make a meaningful impact.",-1),d=e("h3",{id:"ways-you-can-contribute",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#ways-you-can-contribute"},[e("span",null,[e("strong",null,"Ways you can contribute:")])])],-1),g=e("strong",null,"Helping other users",-1),h=e("strong",null,"MII Zulip",-1),p={href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29",target:"_blank",rel:"noopener noreferrer"},f=e("strong",null,"GitHub Discussions",-1),m={href:"https://github.com/datasharingframework/dsf/discussions",target:"_blank",rel:"noopener noreferrer"},b=l("
Testing releases:
Stay ahead: Help us testing the latest releases. Your feedback on functionality, bugs, and user experience is invaluable.
Report findings: Share your testing results to help us refine and enhance our releases.
Reviewing changes:
Peer review: Contribute by reviewing pull requests. Your insights can help ensure the quality and integrity of code changes.
Constructive feedback: Offer constructive feedback and suggestions to help improve and refine proposed changes.
",2),_=e("strong",null,"Documentation changes",-1),y=e("li",null,[e("strong",null,"Improve documentation"),t(": Help us improving and updating our documentation. Clear and accurate documentation is crucial for user understanding and success. Please checkout our "),e("a",{href:"./documentation"},"Getting started guide for documentation contributions"),t(" to DSF.")],-1),v=e("strong",null,"Suggest improvements",-1),w={href:"https://github.com/datasharingframework/datasharingframework.github.io",target:"_blank",rel:"noopener noreferrer"},k=e("strong",null,"Contributing bug reports",-1),I=e("strong",null,"Report bugs",-1),x={href:"https://github.com/datasharingframework/dsf/issues",target:"_blank",rel:"noopener noreferrer"},S=e("li",null,[e("strong",null,"Reproduction steps"),t(": Include steps to reproduce the bug and any relevant logs according to our bug report issue template.")],-1),C=e("li",null,[e("strong",null,"Contributing feature requests"),t(": "),e("ul",null,[e("li",null,[e("strong",null,"Suggest features"),t(": You have an idea for a new feature? We'd love to hear it! Open an issue to describe your proposed feature and its potential benefits according to our feature request template.")]),e("li",null,[e("strong",null,"Collaborate on implementation"),t(": If you're able to, contribute to the development of your proposed feature or bug fix. Collaboration can lead to more innovative and effective solutions. Please checkout our "),e("a",{href:"./code"},"Getting started guide for code contributions"),t(" to DSF.")])])],-1),D=e("strong",null,"Contributing process plugins",-1),G=e("strong",null,"Develop process plugins for the DSF",-1),T={href:"https://dsf.dev/stable/develop/",target:"_blank",rel:"noopener noreferrer"},W=e("li",null,[e("strong",null,"Share your work"),t(": Your plugins could be a valuable addition to the ecosystem and benefit other users.")],-1),Y=e("p",null,"Before you start contributing, we recommend reading our getting started guidelines for detailed information on our processes and standards. This ensures a smooth and productive experience for everyone involved.",-1),j=e("p",null,[e("strong",null,"Your contributions in any form, are what drives the continuous growth and improvement of this project. Thank you for being a part of our community and for your willingness to contribute!")],-1);function H(q,F){const o=s("ExternalLinkIcon");return i(),a("div",null,[c,d,e("ol",null,[e("li",null,[g,t(": "),e("ul",null,[e("li",null,[h,t(": If you are part of the German Medical Informatics Initiative, "),e("a",p,[t("join the MII Zulip community"),n(o)]),t(" to assist others, share your knowledge, and learn from fellow contributors.")]),e("li",null,[f,t(": Engage with our community in "),e("a",m,[t("GitHub Discussions"),n(o)]),t(" by answering questions, providing feedback, and sharing your insights.")])])]),b,e("li",null,[_,t(": "),e("ul",null,[y,e("li",null,[v,t(": If you notice gaps or areas for enhancement in our documentation, we welcome "),e("a",w,[t("your suggestions and contributions"),n(o)]),t(".")])])]),e("li",null,[k,t(": "),e("ul",null,[e("li",null,[I,t(": If you find a bug, please report it via "),e("a",x,[t("an issue on GitHub"),n(o)]),t(". Detailed bug reports are incredibly helpful.")]),S])]),C,e("li",null,[D,t(": "),e("ul",null,[e("li",null,[G,t(": If you have ideas for a process plugin, we encourage you to develop and contribute them. Our "),e("a",T,[t("Getting started guide for process plugin development"),n(o)]),t(" will be a useful reference.")]),W])])]),Y,j])}const B=r(u,[["render",H],["__file","index.html.vue"]]),E=JSON.parse(`{"path":"/stable/contribute/","title":"Contribute","lang":"en-US","frontmatter":{"title":"Contribute","icon":"info"},"headers":[{"level":3,"title":"Ways you can contribute:","slug":"ways-you-can-contribute","link":"#ways-you-can-contribute","children":[]}],"git":{"createdTime":null,"updatedTime":null,"contributors":[]},"readingTime":{"minutes":1.64,"words":491},"filePathRelative":"stable/contribute/readme.md","excerpt":"
We are thrilled that you consider contributing to our projects. Your contributions, big or small, are greatly valued and play a significant role in the success and improvement of our work. Whether you're a seasoned developer or just starting out, there's a place for you here to make a meaningful impact.
"}`);export{B as comp,E as data};
diff --git a/assets/index.html-CBRQ-c2y.js b/assets/index.html-CBRQ-c2y.js
new file mode 100644
index 000000000..44e3caf77
--- /dev/null
+++ b/assets/index.html-CBRQ-c2y.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as i,c as a,a as e,b as t,d as n,e as l}from"./app-kq9lCQfY.js";const u={},c=e("p",null,"We are thrilled that you consider contributing to our projects. Your contributions, big or small, are greatly valued and play a significant role in the success and improvement of our work. Whether you're a seasoned developer or just starting out, there's a place for you here to make a meaningful impact.",-1),d=e("h3",{id:"ways-you-can-contribute",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#ways-you-can-contribute"},[e("span",null,[e("strong",null,"Ways you can contribute:")])])],-1),g=e("strong",null,"Helping other users",-1),h=e("strong",null,"MII Zulip",-1),p={href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29",target:"_blank",rel:"noopener noreferrer"},f=e("strong",null,"GitHub Discussions",-1),m={href:"https://github.com/datasharingframework/dsf/discussions",target:"_blank",rel:"noopener noreferrer"},b=l("
Testing releases:
Stay ahead: Help us testing the latest releases. Your feedback on functionality, bugs, and user experience is invaluable.
Report findings: Share your testing results to help us refine and enhance our releases.
Reviewing changes:
Peer review: Contribute by reviewing pull requests. Your insights can help ensure the quality and integrity of code changes.
Constructive feedback: Offer constructive feedback and suggestions to help improve and refine proposed changes.
",2),_=e("strong",null,"Documentation changes",-1),y=e("li",null,[e("strong",null,"Improve documentation"),t(": Help us improving and updating our documentation. Clear and accurate documentation is crucial for user understanding and success. Please checkout our "),e("a",{href:"./documentation"},"Getting started guide for documentation contributions"),t(" to DSF.")],-1),v=e("strong",null,"Suggest improvements",-1),k={href:"https://github.com/datasharingframework/datasharingframework.github.io",target:"_blank",rel:"noopener noreferrer"},w=e("strong",null,"Contributing bug reports",-1),I=e("strong",null,"Report bugs",-1),x={href:"https://github.com/datasharingframework/dsf/issues",target:"_blank",rel:"noopener noreferrer"},S=e("li",null,[e("strong",null,"Reproduction steps"),t(": Include steps to reproduce the bug and any relevant logs according to our bug report issue template.")],-1),C=e("li",null,[e("strong",null,"Contributing feature requests"),t(": "),e("ul",null,[e("li",null,[e("strong",null,"Suggest features"),t(": You have an idea for a new feature? We'd love to hear it! Open an issue to describe your proposed feature and its potential benefits according to our feature request template.")]),e("li",null,[e("strong",null,"Collaborate on implementation"),t(": If you're able to, contribute to the development of your proposed feature or bug fix. Collaboration can lead to more innovative and effective solutions. Please checkout our "),e("a",{href:"./code"},"Getting started guide for code contributions"),t(" to DSF.")])])],-1),D=e("strong",null,"Contributing process plugins",-1),H=e("strong",null,"Develop process plugins for the DSF",-1),G={href:"https://dsf.dev/stable/develop/",target:"_blank",rel:"noopener noreferrer"},T=e("li",null,[e("strong",null,"Share your work"),t(": Your plugins could be a valuable addition to the ecosystem and benefit other users.")],-1),W=e("p",null,"Before you start contributing, we recommend reading our getting started guidelines for detailed information on our processes and standards. This ensures a smooth and productive experience for everyone involved.",-1),Y=e("p",null,[e("strong",null,"Your contributions in any form, are what drives the continuous growth and improvement of this project. Thank you for being a part of our community and for your willingness to contribute!")],-1);function j(q,F){const o=s("ExternalLinkIcon");return i(),a("div",null,[c,d,e("ol",null,[e("li",null,[g,t(": "),e("ul",null,[e("li",null,[h,t(": If you are part of the German Medical Informatics Initiative, "),e("a",p,[t("join the MII Zulip community"),n(o)]),t(" to assist others, share your knowledge, and learn from fellow contributors.")]),e("li",null,[f,t(": Engage with our community in "),e("a",m,[t("GitHub Discussions"),n(o)]),t(" by answering questions, providing feedback, and sharing your insights.")])])]),b,e("li",null,[_,t(": "),e("ul",null,[y,e("li",null,[v,t(": If you notice gaps or areas for enhancement in our documentation, we welcome "),e("a",k,[t("your suggestions and contributions"),n(o)]),t(".")])])]),e("li",null,[w,t(": "),e("ul",null,[e("li",null,[I,t(": If you find a bug, please report it via "),e("a",x,[t("an issue on GitHub"),n(o)]),t(". Detailed bug reports are incredibly helpful.")]),S])]),C,e("li",null,[D,t(": "),e("ul",null,[e("li",null,[H,t(": If you have ideas for a process plugin, we encourage you to develop and contribute them. Our "),e("a",G,[t("Getting started guide for process plugin development"),n(o)]),t(" will be a useful reference.")]),T])])]),W,Y])}const B=r(u,[["render",j],["__file","index.html.vue"]]),E=JSON.parse(`{"path":"/v1.5.2/contribute/","title":"Contribute","lang":"en-US","frontmatter":{"title":"Contribute","icon":"info"},"headers":[{"level":3,"title":"Ways you can contribute:","slug":"ways-you-can-contribute","link":"#ways-you-can-contribute","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.64,"words":491},"filePathRelative":"v1.5.2/contribute/readme.md","localizedDate":"July 8, 2024","excerpt":"
We are thrilled that you consider contributing to our projects. Your contributions, big or small, are greatly valued and play a significant role in the success and improvement of our work. Whether you're a seasoned developer or just starting out, there's a place for you here to make a meaningful impact.
"}`);export{B as comp,E as data};
diff --git a/assets/index.html-CCBpJJly.js b/assets/index.html-CCBpJJly.js
new file mode 100644
index 000000000..5d852d23e
--- /dev/null
+++ b/assets/index.html-CCBpJJly.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as a,w as h,e as d}from"./app-kq9lCQfY.js";const c={},m={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"Important note",-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},f=d('
',5),_=e("li",null,"Improved versioning to support up- and downwards-compatibility",-1),g=e("li",null,"Enhanced web ui to start processes in the web browser",-1),w=e("li",null,"Allow local user authentication and authorization with OpenID Connect",-1),b=e("li",null,"New process plugin API",-1),v=e("li",null,"Removed mostly unused features to simplify instance configuration",-1),x=e("li",null,"Unified proxy setup",-1),S={href:"https://github.com/datasharingframework/dsf/releases",target:"_blank",rel:"noopener noreferrer"};function k(D,F){const i=r("RouteLink"),n=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click "),a(i,{to:"/intro/"},{default:h(()=>[t("here")]),_:1}),t(" to find more information about the DSF in general.")]),e("div",m,[p,e("p",null,[t("This is a major DSF release not compatible with 0.9.x and older version developed at "),e("a",u,[t("https://github.com/highmed/highmed-dsf"),a(n)]),t(".")])]),f,e("ul",null,[_,g,w,b,v,x,e("li",null,[t("Many more features, see "),e("a",S,[t("1.x release-notes"),a(n)])])])])}const N=o(c,[["render",k],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/v1.5.0/","title":"DSF 1.5.0","lang":"en-US","frontmatter":{"title":"DSF 1.5.0","icon":"guide"},"headers":[{"level":2,"title":"New features","slug":"new-features","link":"#new-features","children":[]}],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.46,"words":139},"filePathRelative":"v1.5.0/index.md","localizedDate":"February 20, 2024","excerpt":"
Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click here to find more information about the DSF in general.
"}');export{N as comp,C as data};
diff --git a/assets/index.html-CEEtxclz.js b/assets/index.html-CEEtxclz.js
new file mode 100644
index 000000000..4210e47b7
--- /dev/null
+++ b/assets/index.html-CEEtxclz.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as a,w as h,e as d}from"./app-kq9lCQfY.js";const c={},m={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"Important note",-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},f=d('
',5),_=e("li",null,"Improved versioning to support up- and downwards-compatibility",-1),g=e("li",null,"Enhanced web ui to start processes in the web browser",-1),w=e("li",null,"Allow local user authentication and authorization with OpenID Connect",-1),b=e("li",null,"New process plugin API",-1),v=e("li",null,"Removed mostly unused features to simplify instance configuration",-1),x=e("li",null,"Unified proxy setup",-1),S={href:"https://github.com/datasharingframework/dsf/releases",target:"_blank",rel:"noopener noreferrer"};function k(D,F){const i=r("RouteLink"),n=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click "),a(i,{to:"/intro/"},{default:h(()=>[t("here")]),_:1}),t(" to find more information about the DSF in general.")]),e("div",m,[p,e("p",null,[t("This is a major DSF release not compatible with 0.9.x and older version developed at "),e("a",u,[t("https://github.com/highmed/highmed-dsf"),a(n)]),t(".")])]),f,e("ul",null,[_,g,w,b,v,x,e("li",null,[t("Many more features, see "),e("a",S,[t("1.x release-notes"),a(n)])])])])}const N=o(c,[["render",k],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/v1.3.1/","title":"DSF 1.3.1","lang":"en-US","frontmatter":{"title":"DSF 1.3.1","icon":"guide"},"headers":[{"level":2,"title":"New features","slug":"new-features","link":"#new-features","children":[]}],"git":{"createdTime":1698748420000,"updatedTime":1698748420000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.46,"words":139},"filePathRelative":"v1.3.1/index.md","localizedDate":"October 31, 2023","excerpt":"
Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click here to find more information about the DSF in general.
\\n"}');export{h as comp,u as data};
diff --git a/assets/index.html-CLQDCC8z.js b/assets/index.html-CLQDCC8z.js
new file mode 100644
index 000000000..eabe58f86
--- /dev/null
+++ b/assets/index.html-CLQDCC8z.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as d,a as e,d as t,w as a,b as o}from"./app-kq9lCQfY.js";const r={};function u(c,m){const l=n("RouteLink");return s(),d("div",null,[e("ul",null,[e("li",null,[t(l,{to:"/oldstable/build/build.html"},{default:a(()=>[o("Build & Test Project")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/build/proxyTestTool.html"},{default:a(()=>[o("Proxy Test Tool")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/build/releaseANewVersion.html"},{default:a(()=>[o("Release a new version")]),_:1})])])])}const _=i(r,[["render",u],["__file","index.html.vue"]]),T=JSON.parse('{"path":"/oldstable/build/","title":"Build and Test","lang":"en-US","frontmatter":{"title":"Build and Test","icon":"back-stage"},"headers":[],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"oldstable/build/README.md","localizedDate":"August 23, 2023","excerpt":"
\\n"}');export{_ as comp,T as data};
diff --git a/assets/index.html-CL_NobEX.js b/assets/index.html-CL_NobEX.js
new file mode 100644
index 000000000..be04c6c99
--- /dev/null
+++ b/assets/index.html-CL_NobEX.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as r,e as a}from"./app-kq9lCQfY.js";const n={},l=a('
\\n"}');export{v as comp,u as data};
diff --git a/assets/index.html-CQqVJHUS.js b/assets/index.html-CQqVJHUS.js
new file mode 100644
index 000000000..b9efd431d
--- /dev/null
+++ b/assets/index.html-CQqVJHUS.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as r,e as n}from"./app-kq9lCQfY.js";const a={},t=n('
\\n"}');export{d as comp,f as data};
diff --git a/assets/index.html-Cgi8v7QL.js b/assets/index.html-Cgi8v7QL.js
new file mode 100644
index 000000000..e47c81b41
--- /dev/null
+++ b/assets/index.html-Cgi8v7QL.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as n,e as a}from"./app-kq9lCQfY.js";const t={},r=a('
\\n"}');export{f as comp,m as data};
diff --git a/assets/index.html-CrhbZRDu.js b/assets/index.html-CrhbZRDu.js
new file mode 100644
index 000000000..644f1309d
--- /dev/null
+++ b/assets/index.html-CrhbZRDu.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as r,e as a}from"./app-kq9lCQfY.js";const n={},l=a('
"}');export{u as comp,m as data};
diff --git a/assets/index.html-CsDDghLt.js b/assets/index.html-CsDDghLt.js
new file mode 100644
index 000000000..28c6542ba
--- /dev/null
+++ b/assets/index.html-CsDDghLt.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as o,a as e}from"./app-kq9lCQfY.js";const l={},a=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),n=e("ul",null,[e("li",null,[e("a",{href:"create"},"Create a new process plugin")]),e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade processes from 0.9.x")])],-1),t=[a,n];function s(c,d){return i(),o("div",null,t)}const h=r(l,[["render",s],["__file","index.html.vue"]]),v=JSON.parse('{"path":"/v1.5.1/develop/","title":"Develop Process Plugins","lang":"en-US","frontmatter":{"title":"Develop Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"v1.5.1/develop/README.md","localizedDate":"April 17, 2024","excerpt":"
\\n"}');export{h as comp,v as data};
diff --git a/assets/index.html-CsrqLo4K.js b/assets/index.html-CsrqLo4K.js
new file mode 100644
index 000000000..826bee503
--- /dev/null
+++ b/assets/index.html-CsrqLo4K.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as i,c as a,a as e,b as t,d as n,e as l}from"./app-kq9lCQfY.js";const u={},c=e("p",null,"We are thrilled that you consider contributing to our projects. Your contributions, big or small, are greatly valued and play a significant role in the success and improvement of our work. Whether you're a seasoned developer or just starting out, there's a place for you here to make a meaningful impact.",-1),d=e("h3",{id:"ways-you-can-contribute",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#ways-you-can-contribute"},[e("span",null,[e("strong",null,"Ways you can contribute:")])])],-1),g=e("strong",null,"Helping other users",-1),h=e("strong",null,"MII Zulip",-1),p={href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29",target:"_blank",rel:"noopener noreferrer"},f=e("strong",null,"GitHub Discussions",-1),m={href:"https://github.com/datasharingframework/dsf/discussions",target:"_blank",rel:"noopener noreferrer"},b=l("
Testing releases:
Stay ahead: Help us testing the latest releases. Your feedback on functionality, bugs, and user experience is invaluable.
Report findings: Share your testing results to help us refine and enhance our releases.
Reviewing changes:
Peer review: Contribute by reviewing pull requests. Your insights can help ensure the quality and integrity of code changes.
Constructive feedback: Offer constructive feedback and suggestions to help improve and refine proposed changes.
",2),_=e("strong",null,"Documentation changes",-1),y=e("li",null,[e("strong",null,"Improve documentation"),t(": Help us improving and updating our documentation. Clear and accurate documentation is crucial for user understanding and success. Please checkout our "),e("a",{href:"./documentation"},"Getting started guide for documentation contributions"),t(" to DSF.")],-1),v=e("strong",null,"Suggest improvements",-1),w={href:"https://github.com/datasharingframework/datasharingframework.github.io",target:"_blank",rel:"noopener noreferrer"},k=e("strong",null,"Contributing bug reports",-1),I=e("strong",null,"Report bugs",-1),S={href:"https://github.com/datasharingframework/dsf/issues",target:"_blank",rel:"noopener noreferrer"},x=e("li",null,[e("strong",null,"Reproduction steps"),t(": Include steps to reproduce the bug and any relevant logs according to our bug report issue template.")],-1),C=e("li",null,[e("strong",null,"Contributing feature requests"),t(": "),e("ul",null,[e("li",null,[e("strong",null,"Suggest features"),t(": You have an idea for a new feature? We'd love to hear it! Open an issue to describe your proposed feature and its potential benefits according to our feature request template.")]),e("li",null,[e("strong",null,"Collaborate on implementation"),t(": If you're able to, contribute to the development of your proposed feature or bug fix. Collaboration can lead to more innovative and effective solutions. Please checkout our "),e("a",{href:"./code"},"Getting started guide for code contributions"),t(" to DSF.")])])],-1),D=e("strong",null,"Contributing process plugins",-1),G=e("strong",null,"Develop process plugins for the DSF",-1),T={href:"https://dsf.dev/stable/develop/",target:"_blank",rel:"noopener noreferrer"},W=e("li",null,[e("strong",null,"Share your work"),t(": Your plugins could be a valuable addition to the ecosystem and benefit other users.")],-1),Y=e("p",null,"Before you start contributing, we recommend reading our getting started guidelines for detailed information on our processes and standards. This ensures a smooth and productive experience for everyone involved.",-1),j=e("p",null,[e("strong",null,"Your contributions in any form, are what drives the continuous growth and improvement of this project. Thank you for being a part of our community and for your willingness to contribute!")],-1);function F(H,q){const o=s("ExternalLinkIcon");return i(),a("div",null,[c,d,e("ol",null,[e("li",null,[g,t(": "),e("ul",null,[e("li",null,[h,t(": If you are part of the German Medical Informatics Initiative, "),e("a",p,[t("join the MII Zulip community"),n(o)]),t(" to assist others, share your knowledge, and learn from fellow contributors.")]),e("li",null,[f,t(": Engage with our community in "),e("a",m,[t("GitHub Discussions"),n(o)]),t(" by answering questions, providing feedback, and sharing your insights.")])])]),b,e("li",null,[_,t(": "),e("ul",null,[y,e("li",null,[v,t(": If you notice gaps or areas for enhancement in our documentation, we welcome "),e("a",w,[t("your suggestions and contributions"),n(o)]),t(".")])])]),e("li",null,[k,t(": "),e("ul",null,[e("li",null,[I,t(": If you find a bug, please report it via "),e("a",S,[t("an issue on GitHub"),n(o)]),t(". Detailed bug reports are incredibly helpful.")]),x])]),C,e("li",null,[D,t(": "),e("ul",null,[e("li",null,[G,t(": If you have ideas for a process plugin, we encourage you to develop and contribute them. Our "),e("a",T,[t("Getting started guide for process plugin development"),n(o)]),t(" will be a useful reference.")]),W])])]),Y,j])}const z=r(u,[["render",F],["__file","index.html.vue"]]),B=JSON.parse(`{"path":"/v1.5.0/contribute/","title":"Contribute","lang":"en-US","frontmatter":{"title":"Contribute","icon":"info"},"headers":[{"level":3,"title":"Ways you can contribute:","slug":"ways-you-can-contribute","link":"#ways-you-can-contribute","children":[]}],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.64,"words":491},"filePathRelative":"v1.5.0/contribute/readme.md","localizedDate":"February 20, 2024","excerpt":"
We are thrilled that you consider contributing to our projects. Your contributions, big or small, are greatly valued and play a significant role in the success and improvement of our work. Whether you're a seasoned developer or just starting out, there's a place for you here to make a meaningful impact.
"}`);export{z as comp,B as data};
diff --git a/assets/index.html-CuwFjDT4.js b/assets/index.html-CuwFjDT4.js
new file mode 100644
index 000000000..0957331dc
--- /dev/null
+++ b/assets/index.html-CuwFjDT4.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as a,w as h,e as d}from"./app-kq9lCQfY.js";const c={},m={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"Important note",-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},f=d('
',5),_=e("li",null,"Improved versioning to support up- and downwards-compatibility",-1),g=e("li",null,"Enhanced web ui to start processes in the web browser",-1),w=e("li",null,"Allow local user authentication and authorization with OpenID Connect",-1),b=e("li",null,"New process plugin API",-1),v=e("li",null,"Removed mostly unused features to simplify instance configuration",-1),x=e("li",null,"Unified proxy setup",-1),k={href:"https://github.com/datasharingframework/dsf/releases",target:"_blank",rel:"noopener noreferrer"};function S(D,F){const i=r("RouteLink"),n=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click "),a(i,{to:"/intro/"},{default:h(()=>[t("here")]),_:1}),t(" to find more information about the DSF in general.")]),e("div",m,[p,e("p",null,[t("This is a major DSF release not compatible with 0.9.x and older version developed at "),e("a",u,[t("https://github.com/highmed/highmed-dsf"),a(n)]),t(".")])]),f,e("ul",null,[_,g,w,b,v,x,e("li",null,[t("Many more features, see "),e("a",k,[t("1.x release-notes"),a(n)])])])])}const N=o(c,[["render",S],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/v1.5.2/","title":"DSF 1.5.2","lang":"en-US","frontmatter":{"title":"DSF 1.5.2","icon":"guide"},"headers":[{"level":2,"title":"New features","slug":"new-features","link":"#new-features","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.46,"words":139},"filePathRelative":"v1.5.2/index.md","localizedDate":"July 8, 2024","excerpt":"
Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click here to find more information about the DSF in general.
"}');export{N as comp,C as data};
diff --git a/assets/index.html-CwMc33-B.js b/assets/index.html-CwMc33-B.js
new file mode 100644
index 000000000..529f9f9c4
--- /dev/null
+++ b/assets/index.html-CwMc33-B.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,e as n}from"./app-kq9lCQfY.js";const r={},t=n('
\\n"}');export{m as comp,u as data};
diff --git a/assets/index.html-Czmcnse8.js b/assets/index.html-Czmcnse8.js
new file mode 100644
index 000000000..354b63456
--- /dev/null
+++ b/assets/index.html-Czmcnse8.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o,c,a as e,b as t,d as r}from"./app-kq9lCQfY.js";const a={},l={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Gemeinsame technische Sprechstunde der DSF-Community und des FDPG+",-1),h=e("li",null,"Montags, 13:00-14:00 Uhr",-1),m={href:"https://dsf.dev/sprechstunde",target:"_blank",rel:"noopener noreferrer"},p={href:"https://lecture.senfcall.de/sim-ock-1vk-l8o",target:"_blank",rel:"noopener noreferrer"};function u(_,f){const n=i("ExternalLinkIcon");return o(),c("div",null,[e("div",l,[d,e("ul",null,[h,e("li",null,[t("Ort: "),e("a",m,[t("https://dsf.dev/sprechstunde"),r(n)])])])]),e("p",null,[t("Klicken Sie "),e("a",p,[t("hier"),r(n)]),t(", um der Sprechstunde beizutreten.")])])}const k=s(a,[["render",u],["__file","index.html.vue"]]),x=JSON.parse('{"path":"/sprechstunde/","title":"Sprechstunde","lang":"en-US","frontmatter":{"title":"Sprechstunde","icon":"guide"},"headers":[],"git":{"createdTime":1706533809000,"updatedTime":1722590602000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":4},{"name":"Simon Schweizer","email":"simon@Laptop-von-Simon.local","commits":1}]},"readingTime":{"minutes":0.12,"words":35},"filePathRelative":"sprechstunde/index.md","localizedDate":"January 29, 2024","excerpt":"
\\n
Gemeinsame technische Sprechstunde der DSF-Community und des FDPG+
"}');export{k as comp,x as data};
diff --git a/assets/index.html-D0FWjIyg.js b/assets/index.html-D0FWjIyg.js
new file mode 100644
index 000000000..cc6401df8
--- /dev/null
+++ b/assets/index.html-D0FWjIyg.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as s,c as l,a as e,b as t,d as a,w as h,e as d}from"./app-kq9lCQfY.js";const c={},m={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"Important note",-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},f=d('
',5),_=e("li",null,"Improved versioning to support up- and downwards-compatibility",-1),g=e("li",null,"Enhanced web ui to start processes in the web browser",-1),w=e("li",null,"Allow local user authentication and authorization with OpenID Connect",-1),b=e("li",null,"New process plugin API",-1),x=e("li",null,"Removed mostly unused features to simplify instance configuration",-1),v=e("li",null,"Unified proxy setup",-1),k={href:"https://github.com/datasharingframework/dsf/releases",target:"_blank",rel:"noopener noreferrer"};function S(D,F){const r=i("RouteLink"),n=i("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click "),a(r,{to:"/intro/"},{default:h(()=>[t("here")]),_:1}),t(" to find more information about the DSF in general.")]),e("div",m,[p,e("p",null,[t("This is a major DSF release not compatible with 0.9.x and older version developed at "),e("a",u,[t("https://github.com/highmed/highmed-dsf"),a(n)]),t(".")])]),f,e("ul",null,[_,g,w,b,x,v,e("li",null,[t("Many more features, see "),e("a",k,[t("1.x release-notes"),a(n)])])])])}const N=o(c,[["render",S],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/v1.1.0/","title":"DSF 1.1.0","lang":"en-US","frontmatter":{"title":"DSF 1.1.0","icon":"guide"},"headers":[{"level":2,"title":"New features","slug":"new-features","link":"#new-features","children":[]}],"git":{"createdTime":1692790324000,"updatedTime":1693250965000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2},{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.46,"words":139},"filePathRelative":"v1.1.0/index.md","localizedDate":"August 23, 2023","excerpt":"
Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click here to find more information about the DSF in general.
\\n"}');export{v as comp,u as data};
diff --git a/assets/index.html-D1odJbGw.js b/assets/index.html-D1odJbGw.js
new file mode 100644
index 000000000..86853c0db
--- /dev/null
+++ b/assets/index.html-D1odJbGw.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as a,w as h,e as d}from"./app-kq9lCQfY.js";const c={},m={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"Important note",-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},f=d('
',5),_=e("li",null,"Improved versioning to support up- and downwards-compatibility",-1),g=e("li",null,"Enhanced web ui to start processes in the web browser",-1),w=e("li",null,"Allow local user authentication and authorization with OpenID Connect",-1),b=e("li",null,"New process plugin API",-1),x=e("li",null,"Removed mostly unused features to simplify instance configuration",-1),v=e("li",null,"Unified proxy setup",-1),S={href:"https://github.com/datasharingframework/dsf/releases",target:"_blank",rel:"noopener noreferrer"};function k(D,F){const i=r("RouteLink"),n=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click "),a(i,{to:"/intro/"},{default:h(()=>[t("here")]),_:1}),t(" to find more information about the DSF in general.")]),e("div",m,[p,e("p",null,[t("This is a major DSF release not compatible with 0.9.x and older version developed at "),e("a",u,[t("https://github.com/highmed/highmed-dsf"),a(n)]),t(".")])]),f,e("ul",null,[_,g,w,b,x,v,e("li",null,[t("Many more features, see "),e("a",S,[t("1.x release-notes"),a(n)])])])])}const N=o(c,[["render",k],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/v1.3.0/","title":"DSF 1.3.0","lang":"en-US","frontmatter":{"title":"DSF 1.3.0","icon":"guide"},"headers":[{"level":2,"title":"New features","slug":"new-features","link":"#new-features","children":[]}],"git":{"createdTime":1696944513000,"updatedTime":1696944513000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.46,"words":139},"filePathRelative":"v1.3.0/index.md","localizedDate":"October 10, 2023","excerpt":"
Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click here to find more information about the DSF in general.
"}');export{N as comp,C as data};
diff --git a/assets/index.html-D4_ALXNF.js b/assets/index.html-D4_ALXNF.js
new file mode 100644
index 000000000..6fed2b1e1
--- /dev/null
+++ b/assets/index.html-D4_ALXNF.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as a,c as s,a as t,b as e,d as n,w as l}from"./app-kq9lCQfY.js";const c={},u=t("h2",{id:"overview",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#overview"},[t("span",null,"Overview")])],-1);function d(m,h){const i=r("RouteLink");return a(),s("div",null,[u,t("ul",null,[t("li",null,[e("Documentation "),t("ul",null,[t("li",null,[n(i,{to:"/intro/info/introduction.html"},{default:l(()=>[e("Introduction")]),_:1})]),t("li",null,[n(i,{to:"/intro/info/basics.html"},{default:l(()=>[e("Basics & Standards")]),_:1})]),t("li",null,[n(i,{to:"/intro/info/architecture.html"},{default:l(()=>[e("Architecture")]),_:1})]),t("li",null,[n(i,{to:"/intro/info/security.html"},{default:l(()=>[e("Security")]),_:1})]),t("li",null,[n(i,{to:"/intro/info/allowList.html"},{default:l(()=>[e("Allow Lists")]),_:1})]),t("li",null,[n(i,{to:"/intro/info/process-plugins.html"},{default:l(()=>[e("Process Plugins")]),_:1})])])])])])}const v=o(c,[["render",d],["__file","index.html.vue"]]),p=JSON.parse('{"path":"/intro/","title":"Documentation","lang":"en-US","frontmatter":{"title":"Documentation","icon":"info"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1690461865000,"updatedTime":1690903993000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":4}]},"readingTime":{"minutes":0.07,"words":22},"filePathRelative":"intro/README.md","localizedDate":"July 27, 2023","excerpt":"
"}');export{v as comp,p as data};
diff --git a/assets/index.html-D6_187T3.js b/assets/index.html-D6_187T3.js
new file mode 100644
index 000000000..b49a20b6c
--- /dev/null
+++ b/assets/index.html-D6_187T3.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as o,a as e}from"./app-kq9lCQfY.js";const a={},l=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),n=e("ul",null,[e("li",null,[e("a",{href:"create"},"Create a new process plugin")]),e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade processes from 0.9.x")])],-1),t=[l,n];function s(c,d){return i(),o("div",null,t)}const h=r(a,[["render",s],["__file","index.html.vue"]]),v=JSON.parse('{"path":"/v1.5.0/develop/","title":"Develop Process Plugins","lang":"en-US","frontmatter":{"title":"Develop Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"v1.5.0/develop/README.md","localizedDate":"February 20, 2024","excerpt":"
\\n"}');export{v as comp,u as data};
diff --git a/assets/index.html-DEarre1O.js b/assets/index.html-DEarre1O.js
new file mode 100644
index 000000000..d6a4d7753
--- /dev/null
+++ b/assets/index.html-DEarre1O.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as o,a as e}from"./app-kq9lCQfY.js";const a={},l=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),n=e("ul",null,[e("li",null,[e("a",{href:"create"},"Create a new process plugin")]),e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade processes from 0.9.x")])],-1),t=[l,n];function s(c,d){return i(),o("div",null,t)}const h=r(a,[["render",s],["__file","index.html.vue"]]),v=JSON.parse('{"path":"/v1.2.0/develop/","title":"Develop Process Plugins","lang":"en-US","frontmatter":{"title":"Develop Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1694544770000,"updatedTime":1694544770000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"v1.2.0/develop/README.md","localizedDate":"September 12, 2023","excerpt":"
\\n"}');export{h as comp,v as data};
diff --git a/assets/index.html-DH7l0GC4.js b/assets/index.html-DH7l0GC4.js
new file mode 100644
index 000000000..e78602c5e
--- /dev/null
+++ b/assets/index.html-DH7l0GC4.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as t,c as l,a as e,d as o,w as r,b as s}from"./app-kq9lCQfY.js";const c={},m=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),d=e("li",null,[e("a",{href:"install"},"Install DSF 1.0.0")],-1),h=e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade from DSF 0.9.x")],-1),u=e("li",null,[e("a",{href:"allowList-mgm"},"Allow List Management")],-1);function f(_,v){const a=n("RouteLink");return t(),l("div",null,[m,e("ul",null,[d,h,u,e("li",null,[o(a,{to:"/v1.0.0/maintain/configuration/"},{default:r(()=>[s("Configuration Paramters")]),_:1})])])])}const w=i(c,[["render",f],["__file","index.html.vue"]]),x=JSON.parse('{"path":"/v1.0.0/maintain/","title":"Maintain a DSF instance","lang":"en-US","frontmatter":{"title":"Maintain a DSF instance","icon":"tool"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1692708510000,"updatedTime":1692708510000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.09,"words":27},"filePathRelative":"v1.0.0/maintain/README.md","localizedDate":"August 22, 2023","excerpt":"
\\n"}');export{w as comp,x as data};
diff --git a/assets/index.html-DLtnb5Tv.js b/assets/index.html-DLtnb5Tv.js
new file mode 100644
index 000000000..42dd87241
--- /dev/null
+++ b/assets/index.html-DLtnb5Tv.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as i,c as m,a as e,d as a,w as n,b as r}from"./app-kq9lCQfY.js";const u={},s=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1);function c(d,h){const t=l("RouteLink");return i(),m("div",null,[s,e("ul",null,[e("li",null,[a(t,{to:"/about/learnmore/contact.html"},{default:n(()=>[r("Contact & Community Guide")]),_:1})]),e("li",null,[a(t,{to:"/about/learnmore/team.html"},{default:n(()=>[r("Contributors")]),_:1})]),e("li",null,[a(t,{to:"/about/learnmore/partners.html"},{default:n(()=>[r("Partners")]),_:1})]),e("li",null,[a(t,{to:"/about/learnmore/public.html"},{default:n(()=>[r("Public Funding")]),_:1})])])])}const v=o(u,[["render",c],["__file","index.html.vue"]]),f=JSON.parse('{"path":"/about/learnmore/","title":"Learn more","lang":"en-US","frontmatter":{"title":"Learn more","icon":"creative"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1677250569000,"updatedTime":1715791698000,"contributors":[{"name":"simon","email":"smoeding@stu.hs-heilbronn.de","commits":4},{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":3},{"name":"Mohammad Amir Kannout","email":"mkannout@stud.hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.06,"words":17},"filePathRelative":"about/learnmore/README.md","localizedDate":"February 24, 2023","excerpt":"
"}');export{v as comp,f as data};
diff --git a/assets/index.html-DNh52AH1.js b/assets/index.html-DNh52AH1.js
new file mode 100644
index 000000000..e4b473066
--- /dev/null
+++ b/assets/index.html-DNh52AH1.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as n,e as a}from"./app-kq9lCQfY.js";const r={},t=a('
\\n"}');export{d as comp,u as data};
diff --git a/assets/index.html-DPXv6obM.js b/assets/index.html-DPXv6obM.js
new file mode 100644
index 000000000..952753a0f
--- /dev/null
+++ b/assets/index.html-DPXv6obM.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,e as n}from"./app-kq9lCQfY.js";const r={},t=n('
\\n"}');export{m as comp,u as data};
diff --git a/assets/index.html-DTXLO3BP.js b/assets/index.html-DTXLO3BP.js
new file mode 100644
index 000000000..92c0488c1
--- /dev/null
+++ b/assets/index.html-DTXLO3BP.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as o,a as e}from"./app-kq9lCQfY.js";const a={},l=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),n=e("ul",null,[e("li",null,[e("a",{href:"create"},"Create a new process plugin")]),e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade processes from 0.9.x")])],-1),t=[l,n];function s(c,d){return i(),o("div",null,t)}const h=r(a,[["render",s],["__file","index.html.vue"]]),v=JSON.parse('{"path":"/v1.4.0/develop/","title":"Develop Process Plugins","lang":"en-US","frontmatter":{"title":"Develop Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1702917645000,"updatedTime":1702917645000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"v1.4.0/develop/README.md","localizedDate":"December 18, 2023","excerpt":"
\\n"}');export{v as comp,u as data};
diff --git a/assets/index.html-DiajQsgt.js b/assets/index.html-DiajQsgt.js
new file mode 100644
index 000000000..b305bc5e6
--- /dev/null
+++ b/assets/index.html-DiajQsgt.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as r,e as n}from"./app-kq9lCQfY.js";const a={},t=n('
\\n"}');export{d as comp,f as data};
diff --git a/assets/index.html-DjKgBgX-.js b/assets/index.html-DjKgBgX-.js
new file mode 100644
index 000000000..58b6eca6d
--- /dev/null
+++ b/assets/index.html-DjKgBgX-.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as d,o,c as r,a as e,d as t,w as a,b as n}from"./app-kq9lCQfY.js";const s={};function c(h,g){const l=d("RouteLink");return o(),r("div",null,[e("ul",null,[e("li",null,[t(l,{to:"/oldstable/code/code.html"},{default:a(()=>[n("Writing Code")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/code/usingTheGitHubMaven.html"},{default:a(()=>[n("Using the GitHub Maven Package Registry")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/code/addingANewFhirR.html"},{default:a(()=>[n("Adding a new FHIR Resource")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/code/changingBpmnProcesses.html"},{default:a(()=>[n("Changing BPMN Processes by Service Task Overwrites")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/code/addingANewMpiClient.html"},{default:a(()=>[n("Adding a new MPI Client")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/code/addingANewOpenEhrClient.html"},{default:a(()=>[n("Adding a new openEHR Client")]),_:1})]),e("li",null,[t(l,{to:"/oldstable/code/libraries.html"},{default:a(()=>[n("Libraries")]),_:1})])])])}const b=i(s,[["render",c],["__file","index.html.vue"]]),_=JSON.parse('{"path":"/oldstable/code/","title":"Code","lang":"en-US","frontmatter":{"title":"Code","icon":"code"},"headers":[],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.14,"words":42},"filePathRelative":"oldstable/code/README.md","localizedDate":"August 23, 2023","excerpt":"
"}');export{b as comp,_ as data};
diff --git a/assets/index.html-DjU5vY4A.js b/assets/index.html-DjU5vY4A.js
new file mode 100644
index 000000000..6eaca907e
--- /dev/null
+++ b/assets/index.html-DjU5vY4A.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,e as r}from"./app-kq9lCQfY.js";const n={},l=r('
"}');export{h as comp,m as data};
diff --git a/assets/index.html-Djr1tYSO.js b/assets/index.html-Djr1tYSO.js
new file mode 100644
index 000000000..ae29f5444
--- /dev/null
+++ b/assets/index.html-Djr1tYSO.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,e as n}from"./app-kq9lCQfY.js";const r={},t=n('
\\n"}');export{m as comp,f as data};
diff --git a/assets/index.html-Dm-P1F5T.js b/assets/index.html-Dm-P1F5T.js
new file mode 100644
index 000000000..d5c3c9e2a
--- /dev/null
+++ b/assets/index.html-Dm-P1F5T.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as o,a as e}from"./app-kq9lCQfY.js";const a={},l=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),n=e("ul",null,[e("li",null,[e("a",{href:"create"},"Create a new process plugin")]),e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade processes from 0.9.x")])],-1),t=[l,n];function s(c,d){return i(),o("div",null,t)}const h=r(a,[["render",s],["__file","index.html.vue"]]),u=JSON.parse('{"path":"/v1.1.0/develop/","title":"Develop Process Plugins","lang":"en-US","frontmatter":{"title":"Develop Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1692790324000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"v1.1.0/develop/README.md","localizedDate":"August 23, 2023","excerpt":"
\\n"}');export{h as comp,u as data};
diff --git a/assets/index.html-DnEeG4Ei.js b/assets/index.html-DnEeG4Ei.js
new file mode 100644
index 000000000..c204387c4
--- /dev/null
+++ b/assets/index.html-DnEeG4Ei.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c,a as e,b as s,d as t,w as i}from"./app-kq9lCQfY.js";const d={},h=e("h2",{id:"implementing-bpmn-processes-as-dsf-process-plugins",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#implementing-bpmn-processes-as-dsf-process-plugins"},[e("span",null,"Implementing BPMN Processes as DSF Process-Plugins")])],-1),u={href:"https://github.com/highmed/dsf-process-tutorial",target:"_blank",rel:"noopener noreferrer"},p={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},m=e("br",null,null,-1),g={href:"https://gmds-tmf-2022.de/",target:"_blank",rel:"noopener noreferrer"},x={href:"https://gmds-tmf-2022.de/",target:"_blank",rel:"noopener noreferrer"},f={href:"https://raw.githubusercontent.com/highmed/dsf-process-tutorial/main/exercises/figures/2022-08-21_GMDS_2022_DSF_Process_Tutorial.pdf",target:"_blank",rel:"noopener noreferrer"},_=e("h3",{id:"prerequisites",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#prerequisites"},[e("span",null,"Prerequisites")])],-1),b=e("hr",null,null,-1),v=e("h3",{id:"exercise-1-simple-process",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#exercise-1-simple-process"},[e("span",null,"Exercise 1 - Simple Process")])],-1),w=e("hr",null,null,-1),k=e("h4",{id:"exercise-1-1-process-debugging",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#exercise-1-1-process-debugging"},[e("span",null,"Exercise 1.1 - Process Debugging")])],-1),E=e("hr",null,null,-1),P=e("h3",{id:"exercise-2-input-parameters",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#exercise-2-input-parameters"},[e("span",null,"Exercise 2 - Input Parameters")])],-1),D=e("hr",null,null,-1),F=e("h3",{id:"exercise-3-message-events",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#exercise-3-message-events"},[e("span",null,"Exercise 3 - Message Events")])],-1),y=e("hr",null,null,-1),T=e("h3",{id:"exercise-4-exclusive-gateways",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#exercise-4-exclusive-gateways"},[e("span",null,"Exercise 4 - Exclusive Gateways")])],-1),S=e("hr",null,null,-1),M=e("h3",{id:"exercise-5-event-based-gateways-and-intermediate-events",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#exercise-5-event-based-gateways-and-intermediate-events"},[e("span",null,"Exercise 5 - Event Based Gateways and Intermediate Events")])],-1),I=e("hr",null,null,-1),B=e("hr",null,null,-1);function G(q,N){const a=o("ExternalLinkIcon"),r=o("RouteLink");return l(),c("div",null,[h,e("p",null,[s("This "),e("a",u,[s("repository"),t(a)]),s(" contains exercises to learn how to implement process plugins for the "),e("a",p,[s("Data Sharing Framework (DSF)"),t(a)]),s(". The tutorial is divided into several exercises that build on each other. For each exercise, a sample solution is provided in a separate branch."),m,s(" This tutorial was first executed at the "),e("a",g,[s("GMDS / TMF 2022"),t(a)]),s(" conference. A recording of the opening remarks by H. Hund and R. Wettstein can be found on "),e("a",x,[s("YouTube"),t(a)]),s(". The slides of the opening remarks are available as a "),e("a",f,[s("PDF download"),t(a)]),s(".")]),_,b,e("p",null,[s("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 "),t(r,{to:"/oldstable/tutorial/prerequisites.html"},{default:i(()=>[s("detailed prerequisites document")]),_:1}),s(".")]),v,w,e("p",null,[s("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 "),t(r,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:i(()=>[s("exercise 1 description")]),_:1}),s(".")]),k,E,e("p",null,[s("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 "),t(r,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:i(()=>[s("exercise 1.1 description")]),_:1}),s(".")]),P,D,e("p",null,[s("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 "),t(r,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:i(()=>[s("exercise 2 description")]),_:1}),s(".")]),F,y,e("p",null,[s("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 "),t(r,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:i(()=>[s("exercise 3 description")]),_:1}),s(".")]),T,S,e("p",null,[s("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 "),t(r,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:i(()=>[s("exercise 4 description")]),_:1}),s(".")]),M,I,e("p",null,[s("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 "),t(r,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:i(()=>[s("exercise 5 description")]),_:1}),s(".")]),B,e("p",null,[t(r,{to:"/oldstable/tutorial/prerequisites.html"},{default:i(()=>[s("Prerequisites")]),_:1}),s(" | "),t(r,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:i(()=>[s("Exercise 1")]),_:1}),s(" | "),t(r,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:i(()=>[s("Exercise 1.1")]),_:1}),s(" | "),t(r,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:i(()=>[s("Exercise 2")]),_:1}),s(" | "),t(r,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:i(()=>[s("Exercise 3")]),_:1}),s(" | "),t(r,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:i(()=>[s("Exercise 4")]),_:1}),s(" | "),t(r,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:i(()=>[s("Exercise 5")]),_:1})])])}const H=n(d,[["render",G],["__file","index.html.vue"]]),A=JSON.parse('{"path":"/oldstable/tutorial/","title":"DSF Process Plugin Tutorial","lang":"en-US","frontmatter":{"title":"DSF Process Plugin Tutorial","icon":"slides"},"headers":[{"level":2,"title":"Implementing BPMN Processes as DSF Process-Plugins","slug":"implementing-bpmn-processes-as-dsf-process-plugins","link":"#implementing-bpmn-processes-as-dsf-process-plugins","children":[{"level":3,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":3,"title":"Exercise 1 - Simple Process","slug":"exercise-1-simple-process","link":"#exercise-1-simple-process","children":[]},{"level":3,"title":"Exercise 2 - Input Parameters","slug":"exercise-2-input-parameters","link":"#exercise-2-input-parameters","children":[]},{"level":3,"title":"Exercise 3 - Message Events","slug":"exercise-3-message-events","link":"#exercise-3-message-events","children":[]},{"level":3,"title":"Exercise 4 - Exclusive Gateways","slug":"exercise-4-exclusive-gateways","link":"#exercise-4-exclusive-gateways","children":[]},{"level":3,"title":"Exercise 5 - Event Based Gateways and Intermediate Events","slug":"exercise-5-event-based-gateways-and-intermediate-events","link":"#exercise-5-event-based-gateways-and-intermediate-events","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1692786258000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.53,"words":458},"filePathRelative":"oldstable/tutorial/README.md","localizedDate":"August 23, 2023","excerpt":"
Implementing BPMN Processes as DSF Process-Plugins
\\n
This repository contains exercises to learn how to implement process plugins for the Data Sharing Framework (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. \\nThis tutorial was first executed at the GMDS / TMF 2022 conference. A recording of the opening remarks by H. Hund and R. Wettstein can be found on YouTube. The slides of the opening remarks are available as a PDF download.
"}');export{H as comp,A as data};
diff --git a/assets/index.html-DoJu9D4T.js b/assets/index.html-DoJu9D4T.js
new file mode 100644
index 000000000..06d19e7fe
--- /dev/null
+++ b/assets/index.html-DoJu9D4T.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as s,c as l,a as e,b as t,d as a,w as h,e as d}from"./app-kq9lCQfY.js";const c={},m={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"Important note",-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},f=d('
',5),_=e("li",null,"Improved versioning to support up- and downwards-compatibility",-1),g=e("li",null,"Enhanced web ui to start processes in the web browser",-1),w=e("li",null,"Allow user authenitication and authorization with OpenID Connect",-1),b=e("li",null,"New process plugin API",-1),v=e("li",null,"Removed mostly unused features to simplify instance configuration",-1),x=e("li",null,"Unified proxy setup",-1),S={href:"https://github.com/datasharingframework/dsf/releases/tag/v1.0.0",target:"_blank",rel:"noopener noreferrer"};function k(D,F){const r=i("RouteLink"),n=i("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("Data Sharing Framework 1.0.0 is the new major release of the Data Sharing Framework. Click "),a(r,{to:"/intro/"},{default:h(()=>[t("here")]),_:1}),t(" to find more information about the DSF in general.")]),e("div",m,[p,e("p",null,[t("This is a major DSF release not compatible with 0.9.x and older version developed at "),e("a",u,[t("https://github.com/highmed/highmed-dsf"),a(n)]),t(".")])]),f,e("ul",null,[_,g,w,b,v,x,e("li",null,[t("Many more "),e("a",S,[t("features"),a(n)])])])])}const N=o(c,[["render",k],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/v1.0.0/","title":"DSF 1.0.0","lang":"en-US","frontmatter":{"title":"DSF 1.0.0","icon":"guide"},"headers":[{"level":2,"title":"New features","slug":"new-features","link":"#new-features","children":[]}],"git":{"createdTime":1683795464000,"updatedTime":1692708510000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":3}]},"readingTime":{"minutes":0.42,"words":127},"filePathRelative":"v1.0.0/index.md","localizedDate":"May 11, 2023","excerpt":"
Data Sharing Framework 1.0.0 is the new major release of the Data Sharing Framework. Click here to find more information about the DSF in general.
"}');export{N as comp,C as data};
diff --git a/assets/index.html-DpTEcA7O.js b/assets/index.html-DpTEcA7O.js
new file mode 100644
index 000000000..c7ac500ba
--- /dev/null
+++ b/assets/index.html-DpTEcA7O.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,e as r}from"./app-kq9lCQfY.js";const n={},l=r('
"}');export{m as comp,u as data};
diff --git a/assets/index.html-Dsh9Qj5c.js b/assets/index.html-Dsh9Qj5c.js
new file mode 100644
index 000000000..467002612
--- /dev/null
+++ b/assets/index.html-Dsh9Qj5c.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,e as r}from"./app-kq9lCQfY.js";const n={},t=r('
\\n"}');export{h as comp,u as data};
diff --git a/assets/index.html-DszwQS_b.js b/assets/index.html-DszwQS_b.js
new file mode 100644
index 000000000..e2c2eeb9f
--- /dev/null
+++ b/assets/index.html-DszwQS_b.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as s,c as l,a as e,b as t,d as a,w as h,e as d}from"./app-kq9lCQfY.js";const m={},c={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"Important note",-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},f=d('
',5),_=e("li",null,"Improved versioning to support up- and downwards-compatibility",-1),g=e("li",null,"Enhanced web ui to start processes in the web browser",-1),w=e("li",null,"Allow local user authentication and authorization with OpenID Connect",-1),b=e("li",null,"New process plugin API",-1),x=e("li",null,"Removed mostly unused features to simplify instance configuration",-1),S=e("li",null,"Unified proxy setup",-1),k={href:"https://github.com/datasharingframework/dsf/releases",target:"_blank",rel:"noopener noreferrer"};function v(D,F){const o=i("RouteLink"),n=i("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click "),a(o,{to:"/intro/"},{default:h(()=>[t("here")]),_:1}),t(" to find more information about the DSF in general.")]),e("div",c,[p,e("p",null,[t("This is a major DSF release not compatible with 0.9.x and older version developed at "),e("a",u,[t("https://github.com/highmed/highmed-dsf"),a(n)]),t(".")])]),f,e("ul",null,[_,g,w,b,x,S,e("li",null,[t("Many more features, see "),e("a",k,[t("1.x release-notes"),a(n)])])])])}const N=r(m,[["render",v],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/stable/","title":"DSF 1.5.2","lang":"en-US","frontmatter":{"title":"DSF 1.5.2","icon":"guide"},"headers":[{"level":2,"title":"New features","slug":"new-features","link":"#new-features","children":[]}],"git":{"createdTime":1688985700000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":4},{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.46,"words":139},"filePathRelative":"stable/index.md","localizedDate":"July 10, 2023","excerpt":"
Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click here to find more information about the DSF in general.
"}');export{N as comp,C as data};
diff --git a/assets/index.html-DxxlE-F7.js b/assets/index.html-DxxlE-F7.js
new file mode 100644
index 000000000..f489237e8
--- /dev/null
+++ b/assets/index.html-DxxlE-F7.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as r,e as n}from"./app-kq9lCQfY.js";const a={},t=n('
\\n"}');export{d as comp,f as data};
diff --git a/assets/index.html-DyvczhN7.js b/assets/index.html-DyvczhN7.js
new file mode 100644
index 000000000..c92854931
--- /dev/null
+++ b/assets/index.html-DyvczhN7.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as i,c as a,a as e,b as t,d as n,e as l}from"./app-kq9lCQfY.js";const u={},c=e("p",null,"We are thrilled that you consider contributing to our projects. Your contributions, big or small, are greatly valued and play a significant role in the success and improvement of our work. Whether you're a seasoned developer or just starting out, there's a place for you here to make a meaningful impact.",-1),d=e("h3",{id:"ways-you-can-contribute",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#ways-you-can-contribute"},[e("span",null,[e("strong",null,"Ways you can contribute:")])])],-1),g=e("strong",null,"Helping other users",-1),h=e("strong",null,"MII Zulip",-1),p={href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29",target:"_blank",rel:"noopener noreferrer"},f=e("strong",null,"GitHub Discussions",-1),m={href:"https://github.com/datasharingframework/dsf/discussions",target:"_blank",rel:"noopener noreferrer"},b=l("
Testing releases:
Stay ahead: Help us testing the latest releases. Your feedback on functionality, bugs, and user experience is invaluable.
Report findings: Share your testing results to help us refine and enhance our releases.
Reviewing changes:
Peer review: Contribute by reviewing pull requests. Your insights can help ensure the quality and integrity of code changes.
Constructive feedback: Offer constructive feedback and suggestions to help improve and refine proposed changes.
",2),_=e("strong",null,"Documentation changes",-1),y=e("li",null,[e("strong",null,"Improve documentation"),t(": Help us improving and updating our documentation. Clear and accurate documentation is crucial for user understanding and success. Please checkout our "),e("a",{href:"./documentation"},"Getting started guide for documentation contributions"),t(" to DSF.")],-1),v=e("strong",null,"Suggest improvements",-1),w={href:"https://github.com/datasharingframework/datasharingframework.github.io",target:"_blank",rel:"noopener noreferrer"},k=e("strong",null,"Contributing bug reports",-1),I=e("strong",null,"Report bugs",-1),S={href:"https://github.com/datasharingframework/dsf/issues",target:"_blank",rel:"noopener noreferrer"},x=e("li",null,[e("strong",null,"Reproduction steps"),t(": Include steps to reproduce the bug and any relevant logs according to our bug report issue template.")],-1),C=e("li",null,[e("strong",null,"Contributing feature requests"),t(": "),e("ul",null,[e("li",null,[e("strong",null,"Suggest features"),t(": You have an idea for a new feature? We'd love to hear it! Open an issue to describe your proposed feature and its potential benefits according to our feature request template.")]),e("li",null,[e("strong",null,"Collaborate on implementation"),t(": If you're able to, contribute to the development of your proposed feature or bug fix. Collaboration can lead to more innovative and effective solutions. Please checkout our "),e("a",{href:"./code"},"Getting started guide for code contributions"),t(" to DSF.")])])],-1),D=e("strong",null,"Contributing process plugins",-1),G=e("strong",null,"Develop process plugins for the DSF",-1),T={href:"https://dsf.dev/stable/develop/",target:"_blank",rel:"noopener noreferrer"},W=e("li",null,[e("strong",null,"Share your work"),t(": Your plugins could be a valuable addition to the ecosystem and benefit other users.")],-1),Y=e("p",null,"Before you start contributing, we recommend reading our getting started guidelines for detailed information on our processes and standards. This ensures a smooth and productive experience for everyone involved.",-1),j=e("p",null,[e("strong",null,"Your contributions in any form, are what drives the continuous growth and improvement of this project. Thank you for being a part of our community and for your willingness to contribute!")],-1);function H(q,F){const o=s("ExternalLinkIcon");return i(),a("div",null,[c,d,e("ol",null,[e("li",null,[g,t(": "),e("ul",null,[e("li",null,[h,t(": If you are part of the German Medical Informatics Initiative, "),e("a",p,[t("join the MII Zulip community"),n(o)]),t(" to assist others, share your knowledge, and learn from fellow contributors.")]),e("li",null,[f,t(": Engage with our community in "),e("a",m,[t("GitHub Discussions"),n(o)]),t(" by answering questions, providing feedback, and sharing your insights.")])])]),b,e("li",null,[_,t(": "),e("ul",null,[y,e("li",null,[v,t(": If you notice gaps or areas for enhancement in our documentation, we welcome "),e("a",w,[t("your suggestions and contributions"),n(o)]),t(".")])])]),e("li",null,[k,t(": "),e("ul",null,[e("li",null,[I,t(": If you find a bug, please report it via "),e("a",S,[t("an issue on GitHub"),n(o)]),t(". Detailed bug reports are incredibly helpful.")]),x])]),C,e("li",null,[D,t(": "),e("ul",null,[e("li",null,[G,t(": If you have ideas for a process plugin, we encourage you to develop and contribute them. Our "),e("a",T,[t("Getting started guide for process plugin development"),n(o)]),t(" will be a useful reference.")]),W])])]),Y,j])}const z=r(u,[["render",H],["__file","index.html.vue"]]),B=JSON.parse(`{"path":"/v1.4.0/contribute/","title":"Contribute","lang":"en-US","frontmatter":{"title":"Contribute","icon":"info"},"headers":[{"level":3,"title":"Ways you can contribute:","slug":"ways-you-can-contribute","link":"#ways-you-can-contribute","children":[]}],"git":{"createdTime":1706191215000,"updatedTime":1706191215000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.64,"words":491},"filePathRelative":"v1.4.0/contribute/readme.md","localizedDate":"January 25, 2024","excerpt":"
We are thrilled that you consider contributing to our projects. Your contributions, big or small, are greatly valued and play a significant role in the success and improvement of our work. Whether you're a seasoned developer or just starting out, there's a place for you here to make a meaningful impact.
"}`);export{z as comp,B as data};
diff --git a/assets/index.html-DzF4QZJU.js b/assets/index.html-DzF4QZJU.js
new file mode 100644
index 000000000..460552fd1
--- /dev/null
+++ b/assets/index.html-DzF4QZJU.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as n,a as e}from"./app-kq9lCQfY.js";const r={},a=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),o=e("ul",null,[e("li",null,[e("a",{href:"configuration"},"Configuration Parameters")])],-1),l=[a,o];function s(c,m){return t(),n("div",null,l)}const v=i(r,[["render",s],["__file","index.html.vue"]]),u=JSON.parse('{"path":"/v1.2.0/maintain/bpe/","title":"BPE Server","lang":"en-US","frontmatter":{"title":"BPE Server","icon":"module"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1694544770000,"updatedTime":1694544770000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.03,"words":9},"filePathRelative":"v1.2.0/maintain/bpe/README.md","localizedDate":"September 12, 2023","excerpt":"
\\n"}');export{v as comp,h as data};
diff --git a/assets/index.html-GWKEUDpV.js b/assets/index.html-GWKEUDpV.js
new file mode 100644
index 000000000..c737c17a2
--- /dev/null
+++ b/assets/index.html-GWKEUDpV.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as n,a as e}from"./app-kq9lCQfY.js";const s={},a=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),r=e("ul",null,[e("li",null,[e("a",{href:"feasibility"},"Feasibility")]),e("li",null,[e("a",{href:"num"},"Network University Medicine")])],-1),l=[a,r];function o(c,d){return t(),n("div",null,l)}const u=i(s,[["render",o],["__file","index.html.vue"]]),v=JSON.parse('{"path":"/intro/use-cases/","title":"Use-Cases","lang":"en-US","frontmatter":{"title":"Use-Cases","icon":"view"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1690473388000,"updatedTime":1691142763000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":3}]},"readingTime":{"minutes":0.04,"words":12},"filePathRelative":"intro/use-cases/README.md","localizedDate":"July 27, 2023","excerpt":"
\\n"}');export{u as comp,v as data};
diff --git a/assets/index.html-HEmADpRs.js b/assets/index.html-HEmADpRs.js
new file mode 100644
index 000000000..972873203
--- /dev/null
+++ b/assets/index.html-HEmADpRs.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as r,e as a}from"./app-kq9lCQfY.js";const n={},t=a('
\\n"}');export{d as comp,f as data};
diff --git a/assets/index.html-IZP11Pen.js b/assets/index.html-IZP11Pen.js
new file mode 100644
index 000000000..f0880ed1b
--- /dev/null
+++ b/assets/index.html-IZP11Pen.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as n,a as e}from"./app-kq9lCQfY.js";const o={},s=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),a=e("ul",null,[e("li",null,[e("a",{href:"create"},"Create a new process plugin")]),e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade processes from 0.9.x")])],-1),l=[s,a];function t(c,d){return i(),n("div",null,l)}const p=r(o,[["render",t],["__file","index.html.vue"]]),u=JSON.parse('{"path":"/stable/develop/","title":"Develop Process Plugins","lang":"en-US","frontmatter":{"title":"Develop Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1690875424000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"stable/develop/README.md","localizedDate":"August 1, 2023","excerpt":"
\\n"}');export{v as comp,h as data};
diff --git a/assets/index.html-Oq1aOvOs.js b/assets/index.html-Oq1aOvOs.js
new file mode 100644
index 000000000..5be022e0b
--- /dev/null
+++ b/assets/index.html-Oq1aOvOs.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as r,e as n}from"./app-kq9lCQfY.js";const a={},t=n('
\\n"}');export{v as comp,u as data};
diff --git a/assets/index.html-V7hpoftb.js b/assets/index.html-V7hpoftb.js
new file mode 100644
index 000000000..9b307559e
--- /dev/null
+++ b/assets/index.html-V7hpoftb.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as i,c as a,a as e,b as t,d as n,e as l}from"./app-kq9lCQfY.js";const u={},c=e("p",null,"We are thrilled that you consider contributing to our projects. Your contributions, big or small, are greatly valued and play a significant role in the success and improvement of our work. Whether you're a seasoned developer or just starting out, there's a place for you here to make a meaningful impact.",-1),d=e("h3",{id:"ways-you-can-contribute",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#ways-you-can-contribute"},[e("span",null,[e("strong",null,"Ways you can contribute:")])])],-1),g=e("strong",null,"Helping other users",-1),h=e("strong",null,"MII Zulip",-1),p={href:"https://mii.zulipchat.com/#narrow/stream/392426-Data-Sharing-Framework-.28DSF.29",target:"_blank",rel:"noopener noreferrer"},f=e("strong",null,"GitHub Discussions",-1),m={href:"https://github.com/datasharingframework/dsf/discussions",target:"_blank",rel:"noopener noreferrer"},b=l("
Testing releases:
Stay ahead: Help us testing the latest releases. Your feedback on functionality, bugs, and user experience is invaluable.
Report findings: Share your testing results to help us refine and enhance our releases.
Reviewing changes:
Peer review: Contribute by reviewing pull requests. Your insights can help ensure the quality and integrity of code changes.
Constructive feedback: Offer constructive feedback and suggestions to help improve and refine proposed changes.
",2),_=e("strong",null,"Documentation changes",-1),y=e("li",null,[e("strong",null,"Improve documentation"),t(": Help us improving and updating our documentation. Clear and accurate documentation is crucial for user understanding and success. Please checkout our "),e("a",{href:"./documentation"},"Getting started guide for documentation contributions"),t(" to DSF.")],-1),v=e("strong",null,"Suggest improvements",-1),w={href:"https://github.com/datasharingframework/datasharingframework.github.io",target:"_blank",rel:"noopener noreferrer"},k=e("strong",null,"Contributing bug reports",-1),I=e("strong",null,"Report bugs",-1),S={href:"https://github.com/datasharingframework/dsf/issues",target:"_blank",rel:"noopener noreferrer"},x=e("li",null,[e("strong",null,"Reproduction steps"),t(": Include steps to reproduce the bug and any relevant logs according to our bug report issue template.")],-1),C=e("li",null,[e("strong",null,"Contributing feature requests"),t(": "),e("ul",null,[e("li",null,[e("strong",null,"Suggest features"),t(": You have an idea for a new feature? We'd love to hear it! Open an issue to describe your proposed feature and its potential benefits according to our feature request template.")]),e("li",null,[e("strong",null,"Collaborate on implementation"),t(": If you're able to, contribute to the development of your proposed feature or bug fix. Collaboration can lead to more innovative and effective solutions. Please checkout our "),e("a",{href:"./code"},"Getting started guide for code contributions"),t(" to DSF.")])])],-1),D=e("strong",null,"Contributing process plugins",-1),G=e("strong",null,"Develop process plugins for the DSF",-1),T={href:"https://dsf.dev/stable/develop/",target:"_blank",rel:"noopener noreferrer"},W=e("li",null,[e("strong",null,"Share your work"),t(": Your plugins could be a valuable addition to the ecosystem and benefit other users.")],-1),Y=e("p",null,"Before you start contributing, we recommend reading our getting started guidelines for detailed information on our processes and standards. This ensures a smooth and productive experience for everyone involved.",-1),j=e("p",null,[e("strong",null,"Your contributions in any form, are what drives the continuous growth and improvement of this project. Thank you for being a part of our community and for your willingness to contribute!")],-1);function H(q,F){const o=s("ExternalLinkIcon");return i(),a("div",null,[c,d,e("ol",null,[e("li",null,[g,t(": "),e("ul",null,[e("li",null,[h,t(": If you are part of the German Medical Informatics Initiative, "),e("a",p,[t("join the MII Zulip community"),n(o)]),t(" to assist others, share your knowledge, and learn from fellow contributors.")]),e("li",null,[f,t(": Engage with our community in "),e("a",m,[t("GitHub Discussions"),n(o)]),t(" by answering questions, providing feedback, and sharing your insights.")])])]),b,e("li",null,[_,t(": "),e("ul",null,[y,e("li",null,[v,t(": If you notice gaps or areas for enhancement in our documentation, we welcome "),e("a",w,[t("your suggestions and contributions"),n(o)]),t(".")])])]),e("li",null,[k,t(": "),e("ul",null,[e("li",null,[I,t(": If you find a bug, please report it via "),e("a",S,[t("an issue on GitHub"),n(o)]),t(". Detailed bug reports are incredibly helpful.")]),x])]),C,e("li",null,[D,t(": "),e("ul",null,[e("li",null,[G,t(": If you have ideas for a process plugin, we encourage you to develop and contribute them. Our "),e("a",T,[t("Getting started guide for process plugin development"),n(o)]),t(" will be a useful reference.")]),W])])]),Y,j])}const z=r(u,[["render",H],["__file","index.html.vue"]]),B=JSON.parse(`{"path":"/v1.5.1/contribute/","title":"Contribute","lang":"en-US","frontmatter":{"title":"Contribute","icon":"info"},"headers":[{"level":3,"title":"Ways you can contribute:","slug":"ways-you-can-contribute","link":"#ways-you-can-contribute","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.64,"words":491},"filePathRelative":"v1.5.1/contribute/readme.md","localizedDate":"April 17, 2024","excerpt":"
We are thrilled that you consider contributing to our projects. Your contributions, big or small, are greatly valued and play a significant role in the success and improvement of our work. Whether you're a seasoned developer or just starting out, there's a place for you here to make a meaningful impact.
"}`);export{z as comp,B as data};
diff --git a/assets/index.html-a6s0XPGA.js b/assets/index.html-a6s0XPGA.js
new file mode 100644
index 000000000..de7521db2
--- /dev/null
+++ b/assets/index.html-a6s0XPGA.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,b as t,d as a,w as h,e as d}from"./app-kq9lCQfY.js";const c={},m={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"Important note",-1),u={href:"https://github.com/highmed/highmed-dsf",target:"_blank",rel:"noopener noreferrer"},f=d('
',5),_=e("li",null,"Improved versioning to support up- and downwards-compatibility",-1),g=e("li",null,"Enhanced web ui to start processes in the web browser",-1),w=e("li",null,"Allow local user authentication and authorization with OpenID Connect",-1),b=e("li",null,"New process plugin API",-1),x=e("li",null,"Removed mostly unused features to simplify instance configuration",-1),v=e("li",null,"Unified proxy setup",-1),S={href:"https://github.com/datasharingframework/dsf/releases",target:"_blank",rel:"noopener noreferrer"};function k(D,F){const i=r("RouteLink"),n=r("ExternalLinkIcon");return s(),l("div",null,[e("p",null,[t("Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click "),a(i,{to:"/intro/"},{default:h(()=>[t("here")]),_:1}),t(" to find more information about the DSF in general.")]),e("div",m,[p,e("p",null,[t("This is a major DSF release not compatible with 0.9.x and older version developed at "),e("a",u,[t("https://github.com/highmed/highmed-dsf"),a(n)]),t(".")])]),f,e("ul",null,[_,g,w,b,x,v,e("li",null,[t("Many more features, see "),e("a",S,[t("1.x release-notes"),a(n)])])])])}const N=o(c,[["render",k],["__file","index.html.vue"]]),C=JSON.parse('{"path":"/v1.2.0/","title":"DSF 1.2.0","lang":"en-US","frontmatter":{"title":"DSF 1.2.0","icon":"guide"},"headers":[{"level":2,"title":"New features","slug":"new-features","link":"#new-features","children":[]}],"git":{"createdTime":1694544770000,"updatedTime":1694544770000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.46,"words":139},"filePathRelative":"v1.2.0/index.md","localizedDate":"September 12, 2023","excerpt":"
Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click here to find more information about the DSF in general.
"}');export{N as comp,C as data};
diff --git a/assets/index.html-qJV9JEXu.js b/assets/index.html-qJV9JEXu.js
new file mode 100644
index 000000000..040104113
--- /dev/null
+++ b/assets/index.html-qJV9JEXu.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as a,e as r}from"./app-kq9lCQfY.js";const n={},l=r('
"}');export{m as comp,u as data};
diff --git a/assets/index.html-qeoKr5lU.js b/assets/index.html-qeoKr5lU.js
new file mode 100644
index 000000000..34572f2db
--- /dev/null
+++ b/assets/index.html-qeoKr5lU.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as i,c as d,a as e,d as l,w as r,b as a}from"./app-kq9lCQfY.js";const m={},h={href:"https://github.com/highmed/highmed-dsf/wiki/Deployment-Archive",target:"_blank",rel:"noopener noreferrer"};function u(f,c){const t=n("RouteLink"),o=n("ExternalLinkIcon");return i(),d("div",null,[e("ul",null,[e("li",null,[l(t,{to:"/oldstable/releases/configFhirReverseProxy.html"},{default:r(()=>[a("Configuration Parameters FHIR Reverse Proxy")]),_:1})]),e("li",null,[l(t,{to:"/oldstable/releases/configFhir.html"},{default:r(()=>[a("Configuration Parameters FHIR")]),_:1})]),e("li",null,[l(t,{to:"/oldstable/releases/configBpe.html"},{default:r(()=>[a("Configuration Parameters BPE")]),_:1})]),e("li",null,[l(t,{to:"/oldstable/releases/upgradeFrom91.html"},{default:r(()=>[a("Upgrade from 0.9.1")]),_:1})]),e("li",null,[l(t,{to:"/oldstable/releases/upgradeFrom92.html"},{default:r(()=>[a("Upgrade from 0.9.2")]),_:1})]),e("li",null,[e("a",h,[a("Older Versions"),l(o)])]),e("li",null,[l(t,{to:"/oldstable/releases/num-codexInstall.html"},{default:r(()=>[a("NUM-CODEX Install")]),_:1})]),e("li",null,[l(t,{to:"/oldstable/releases/highmedInstall.html"},{default:r(()=>[a("HiGHmed Install")]),_:1})])])])}const p=s(m,[["render",u],["__file","index.html.vue"]]),b=JSON.parse('{"path":"/oldstable/releases/","title":"Releases and Deployment","lang":"en-US","frontmatter":{"title":"Releases and Deployment","icon":"install"},"headers":[],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.14,"words":42},"filePathRelative":"oldstable/releases/README.md","localizedDate":"August 23, 2023","excerpt":"
"}');export{p as comp,b as data};
diff --git a/assets/index.html-wY8EFJdx.js b/assets/index.html-wY8EFJdx.js
new file mode 100644
index 000000000..66bd8adc8
--- /dev/null
+++ b/assets/index.html-wY8EFJdx.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as i,c as o,a as e}from"./app-kq9lCQfY.js";const a={},l=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),n=e("ul",null,[e("li",null,[e("a",{href:"create"},"Create a new process plugin")]),e("li",null,[e("a",{href:"upgrade-from-0"},"Upgrade processes from 0.9.x")])],-1),t=[l,n];function s(c,d){return i(),o("div",null,t)}const h=r(a,[["render",s],["__file","index.html.vue"]]),u=JSON.parse('{"path":"/v1.0.0/develop/","title":"Develop Process Plugins","lang":"en-US","frontmatter":{"title":"Develop Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]}],"git":{"createdTime":1692708510000,"updatedTime":1692708510000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"v1.0.0/develop/README.md","localizedDate":"August 22, 2023","excerpt":"
"}');export{z as comp,P as data};
diff --git a/assets/install-plugins.html-CZL_USfs.js b/assets/install-plugins.html-CZL_USfs.js
new file mode 100644
index 000000000..f48eb4266
--- /dev/null
+++ b/assets/install-plugins.html-CZL_USfs.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as t,o as i,c as a,a as e,b as s,d as r}from"./app-kq9lCQfY.js";const l={},c=e("p",null,"You can find an overview of compatable process plugins below.",-1),p=e("h2",{id:"common-processes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#common-processes"},[e("span",null,"Common processes")])],-1),m={href:"https://github.com/datasharingframework/dsf-process-ping-pong/releases",target:"_blank",rel:"noopener noreferrer"},h={href:"https://github.com/datasharingframework/dsf-process-allow-list/releases",target:"_blank",rel:"noopener noreferrer"},d=e("h2",{id:"mii-processes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mii-processes"},[e("span",null,"MII processes")])],-1),u={href:"https://github.com/medizininformatik-initiative/feasibility-dsf-process/releases",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/medizininformatik-initiative/mii-process-report/releases",target:"_blank",rel:"noopener noreferrer"},f=e("h2",{id:"num-processes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#num-processes"},[e("span",null,"NUM processes")])],-1),_={href:"https://github.com/num-codex/codex-processes-ap1/releases",target:"_blank",rel:"noopener noreferrer"};function b(k,w){const o=t("ExternalLinkIcon");return i(),a("div",null,[c,p,e("ul",null,[e("li",null,[s("Ping-Pong: "),e("a",m,[s("https://github.com/datasharingframework/dsf-process-ping-pong/releases"),r(o)])]),e("li",null,[s("AllowList Download: "),e("a",h,[s("https://github.com/datasharingframework/dsf-process-allow-list/releases"),r(o)])])]),d,e("ul",null,[e("li",null,[s("Feasibility: "),e("a",u,[s("https://github.com/medizininformatik-initiative/feasibility-dsf-process/releases"),r(o)])]),e("li",null,[s("KDS-Report: "),e("a",g,[s("https://github.com/medizininformatik-initiative/mii-process-report/releases"),r(o)])])]),f,e("ul",null,[e("li",null,[s("NUM-RDP: "),e("a",_,[s("https://github.com/num-codex/codex-processes-ap1/releases"),r(o)])])])])}const P=n(l,[["render",b],["__file","install-plugins.html.vue"]]),I=JSON.parse('{"path":"/v1.3.1/maintain/install-plugins.html","title":"Install Plugins","lang":"en-US","frontmatter":{"title":"Install Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Common processes","slug":"common-processes","link":"#common-processes","children":[]},{"level":2,"title":"MII processes","slug":"mii-processes","link":"#mii-processes","children":[]},{"level":2,"title":"NUM processes","slug":"num-processes","link":"#num-processes","children":[]}],"git":{"createdTime":1698748420000,"updatedTime":1698748420000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.24,"words":73},"filePathRelative":"v1.3.1/maintain/install-plugins.md","localizedDate":"October 31, 2023","excerpt":"
You can find an overview of compatable process plugins below.
"}');export{P as comp,I as data};
diff --git a/assets/install-plugins.html-C_QOcnfk.js b/assets/install-plugins.html-C_QOcnfk.js
new file mode 100644
index 000000000..dd72b7168
--- /dev/null
+++ b/assets/install-plugins.html-C_QOcnfk.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as t,o as i,c as a,a as e,b as s,d as r}from"./app-kq9lCQfY.js";const l={},c=e("p",null,"You can find an overview of compatable process plugins below.",-1),p=e("h2",{id:"common-processes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#common-processes"},[e("span",null,"Common processes")])],-1),m={href:"https://github.com/datasharingframework/dsf-process-ping-pong/releases",target:"_blank",rel:"noopener noreferrer"},h={href:"https://github.com/datasharingframework/dsf-process-allow-list/releases",target:"_blank",rel:"noopener noreferrer"},d=e("h2",{id:"mii-processes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mii-processes"},[e("span",null,"MII processes")])],-1),u={href:"https://github.com/medizininformatik-initiative/feasibility-dsf-process/releases",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/medizininformatik-initiative/mii-process-report/releases",target:"_blank",rel:"noopener noreferrer"},f=e("h2",{id:"num-processes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#num-processes"},[e("span",null,"NUM processes")])],-1),_={href:"https://github.com/num-codex/codex-processes-ap1/releases",target:"_blank",rel:"noopener noreferrer"};function b(k,w){const o=t("ExternalLinkIcon");return i(),a("div",null,[c,p,e("ul",null,[e("li",null,[s("Ping-Pong: "),e("a",m,[s("https://github.com/datasharingframework/dsf-process-ping-pong/releases"),r(o)])]),e("li",null,[s("AllowList Download: "),e("a",h,[s("https://github.com/datasharingframework/dsf-process-allow-list/releases"),r(o)])])]),d,e("ul",null,[e("li",null,[s("Feasibility: "),e("a",u,[s("https://github.com/medizininformatik-initiative/feasibility-dsf-process/releases"),r(o)])]),e("li",null,[s("KDS-Report: "),e("a",g,[s("https://github.com/medizininformatik-initiative/mii-process-report/releases"),r(o)])])]),f,e("ul",null,[e("li",null,[s("NUM-RDP: "),e("a",_,[s("https://github.com/num-codex/codex-processes-ap1/releases"),r(o)])])])])}const P=n(l,[["render",b],["__file","install-plugins.html.vue"]]),I=JSON.parse('{"path":"/v1.3.0/maintain/install-plugins.html","title":"Install Plugins","lang":"en-US","frontmatter":{"title":"Install Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Common processes","slug":"common-processes","link":"#common-processes","children":[]},{"level":2,"title":"MII processes","slug":"mii-processes","link":"#mii-processes","children":[]},{"level":2,"title":"NUM processes","slug":"num-processes","link":"#num-processes","children":[]}],"git":{"createdTime":1698658900000,"updatedTime":1698744428000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":0.24,"words":73},"filePathRelative":"v1.3.0/maintain/install-plugins.md","localizedDate":"October 30, 2023","excerpt":"
You can find an overview of compatable process plugins below.
"}');export{P as comp,I as data};
diff --git a/assets/install-plugins.html-D05-EGzR.js b/assets/install-plugins.html-D05-EGzR.js
new file mode 100644
index 000000000..25285c1e4
--- /dev/null
+++ b/assets/install-plugins.html-D05-EGzR.js
@@ -0,0 +1,7 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as s,c as o,a as e,b as t,d as n,e as l}from"./app-kq9lCQfY.js";const d={},c={class:"hint-container tip"},h=e("p",{class:"hint-container-title"},"Marketplace for process plugins",-1),p={href:"https://hub.dsf.dev/",target:"_blank",rel:"noopener noreferrer"},u=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,[e("strong",null,"Overview")])])],-1),m=e("ul",null,[e("li",null,"You can find an overview of compatable process plugins below (last updated 25/07/2024).")],-1),g=e("thead",null,[e("tr",null,[e("th",null,"Process Plugin"),e("th",null,"released for test"),e("th",null,"released for production")])],-1),f={href:"https://github.com/datasharingframework/dsf-process-ping-pong/releases",target:"_blank",rel:"noopener noreferrer"},v={href:"https://github.com/datasharingframework/dsf-process-ping-pong/releases/tag/v1.0.1.0",target:"_blank",rel:"noopener noreferrer"},_={href:"https://github.com/datasharingframework/dsf-process-ping-pong/releases/tag/v1.0.1.0",target:"_blank",rel:"noopener noreferrer"},b={href:"https://github.com/datasharingframework/dsf-process-allow-list/releases",target:"_blank",rel:"noopener noreferrer"},k={href:"https://github.com/datasharingframework/dsf-process-allow-list/releases/tag/v1.0.0.1",target:"_blank",rel:"noopener noreferrer"},x={href:"https://github.com/datasharingframework/dsf-process-allow-list/releases/tag/v1.0.0.1",target:"_blank",rel:"noopener noreferrer"},w={href:"https://github.com/medizininformatik-initiative/mii-process-feasibility/releases",target:"_blank",rel:"noopener noreferrer"},y={href:"https://github.com/medizininformatik-initiative/mii-process-feasibility/releases/tag/v1.0.0.5",target:"_blank",rel:"noopener noreferrer"},P={href:"https://github.com/medizininformatik-initiative/mii-process-feasibility/releases/tag/v1.0.0.5",target:"_blank",rel:"noopener noreferrer"},z={href:"https://github.com/medizininformatik-initiative/mii-process-report/releases",target:"_blank",rel:"noopener noreferrer"},M={href:"https://github.com/medizininformatik-initiative/mii-process-report/releases/tag/v1.1.0.1",target:"_blank",rel:"noopener noreferrer"},I={href:"https://github.com/medizininformatik-initiative/mii-process-report/releases/tag/v1.0.0.0",target:"_blank",rel:"noopener noreferrer"},D={href:"https://github.com/medizininformatik-initiative/mii-process-data-transfer/releases",target:"_blank",rel:"noopener noreferrer"},j={href:"https://github.com/medizininformatik-initiative/mii-process-data-sharing/releases/tag/v1.0.0.1",target:"_blank",rel:"noopener noreferrer"},S={href:"https://github.com/medizininformatik-initiative/mii-process-data-sharing/releases/tag/v1.0.0.1",target:"_blank",rel:"noopener noreferrer"},q={href:"https://github.com/medizininformatik-initiative/mii-process-data-sharing/releases",target:"_blank",rel:"noopener noreferrer"},T={href:"https://github.com/medizininformatik-initiative/mii-process-data-transfer/releases/tag/v1.0.1.0",target:"_blank",rel:"noopener noreferrer"},E={href:"https://github.com/medizininformatik-initiative/mii-process-data-transfer/releases/tag/v1.0.1.0",target:"_blank",rel:"noopener noreferrer"},F={href:"https://github.com/num-codex/codex-processes-ap1/releases",target:"_blank",rel:"noopener noreferrer"},N={href:"https://github.com/num-codex/codex-processes-ap1/releases/tag/v1.1.0.0",target:"_blank",rel:"noopener noreferrer"},A={href:"https://github.com/num-codex/codex-processes-ap1/releases/tag/v1.1.0.0",target:"_blank",rel:"noopener noreferrer"},B={href:"https://hub.dsf.dev/",target:"_blank",rel:"noopener noreferrer"},O=e("li",null,"Deploying the process plugin to the DSF involves copy the process jar-file and configuring environment variable for the business process engine (BPE).",-1),R=e("h3",{id:"prerequisites",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#prerequisites"},[e("span",null,"Prerequisites")])],-1),V={href:"https://dsf.dev/stable/maintain/install.html",target:"_blank",rel:"noopener noreferrer"},L=l(`
Modify the process exclude config in /opt/bpe/docker-compose.yml
Reminder: Update/verify required configurations in docker-compose.yml
`,10);function U(H,J){const r=a("ExternalLinkIcon");return s(),o("div",null,[e("div",c,[h,e("p",null,[t("To install and learn more about each Process Plugin, you can visit the Marketplace "),e("a",p,[t("here"),n(r)]),t(".")])]),u,m,e("table",null,[g,e("tbody",null,[e("tr",null,[e("td",null,[e("a",f,[t("Ping-Pong"),n(r)])]),e("td",null,[e("a",v,[t("v1.0.1.0"),n(r)])]),e("td",null,[e("a",_,[t("v1.0.1.0"),n(r)])])]),e("tr",null,[e("td",null,[e("a",b,[t("Allow-List"),n(r)])]),e("td",null,[e("a",k,[t("v1.0.0.1"),n(r)])]),e("td",null,[e("a",x,[t("v1.0.0.1"),n(r)])])]),e("tr",null,[e("td",null,[e("a",w,[t("MII Process Feasibility"),n(r)])]),e("td",null,[e("a",y,[t("v1.0.0.5"),n(r)])]),e("td",null,[e("a",P,[t("v1.0.0.5"),n(r)])])]),e("tr",null,[e("td",null,[e("a",z,[t("MII Process Report"),n(r)])]),e("td",null,[e("a",M,[t("v1.1.0.1"),n(r)])]),e("td",null,[e("a",I,[t("v1.0.0.0"),n(r)])])]),e("tr",null,[e("td",null,[e("a",D,[t("MII Process Data Transfer"),n(r)])]),e("td",null,[e("a",j,[t("v1.0.0.1"),n(r)])]),e("td",null,[e("a",S,[t("v1.0.0.1"),n(r)])])]),e("tr",null,[e("td",null,[e("a",q,[t("MII Process Data Sharing"),n(r)])]),e("td",null,[e("a",T,[t("v1.0.1.0"),n(r)])]),e("td",null,[e("a",E,[t("v1.0.1.0"),n(r)])])]),e("tr",null,[e("td",null,[e("a",F,[t("NUM-RDP"),n(r)])]),e("td",null,[e("a",N,[t("v1.1.0.0"),n(r)])]),e("td",null,[e("a",A,[t("v1.1.0.0"),n(r)])])])])]),e("ul",null,[e("li",null,[t("Explore and install Process Plugins in the Marketplace. Details on each plugin are available "),e("a",B,[t("here"),n(r)]),t(".")]),O]),R,e("ul",null,[e("li",null,[t("A DSF installation of version 1.3.x or higher. An installation guide can be found "),e("a",V,[t("here"),n(r)]),t(".")])]),L])}const Y=i(d,[["render",U],["__file","install-plugins.html.vue"]]),G=JSON.parse('{"path":"/v1.5.2/maintain/install-plugins.html","title":"Install Plugins","lang":"en-US","frontmatter":{"title":"Install Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[{"level":3,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":3,"title":"Deployment","slug":"deployment","link":"#deployment","children":[]}]}],"git":{"createdTime":1720449876000,"updatedTime":1722427768000,"contributors":[{"name":"Mohammad Amir Kannout","email":"mkannout@stud.hs-heilbronn.de","commits":2},{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.18,"words":353},"filePathRelative":"v1.5.2/maintain/install-plugins.md","localizedDate":"July 8, 2024","excerpt":"
\\n
Marketplace for process plugins
\\n
To install and learn more about each Process Plugin, you can visit the Marketplace here.
\\n
\\n
Overview
"}');export{Y as comp,G as data};
diff --git a/assets/install-plugins.html-DiPcZpIN.js b/assets/install-plugins.html-DiPcZpIN.js
new file mode 100644
index 000000000..22cfd4352
--- /dev/null
+++ b/assets/install-plugins.html-DiPcZpIN.js
@@ -0,0 +1,7 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as s,c as o,a as e,b as t,d as n,e as l}from"./app-kq9lCQfY.js";const d={},c={class:"hint-container tip"},h=e("p",{class:"hint-container-title"},"Marketplace for process plugins",-1),p={href:"https://hub.dsf.dev/",target:"_blank",rel:"noopener noreferrer"},u=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,[e("strong",null,"Overview")])])],-1),g=e("ul",null,[e("li",null,"You can find an overview of compatable process plugins below (last updated 25/07/2024).")],-1),m=e("thead",null,[e("tr",null,[e("th",null,"Process Plugin"),e("th",null,"released for test"),e("th",null,"released for production")])],-1),f={href:"https://github.com/datasharingframework/dsf-process-ping-pong/releases",target:"_blank",rel:"noopener noreferrer"},v={href:"https://github.com/datasharingframework/dsf-process-ping-pong/releases/tag/v1.0.1.0",target:"_blank",rel:"noopener noreferrer"},_={href:"https://github.com/datasharingframework/dsf-process-ping-pong/releases/tag/v1.0.1.0",target:"_blank",rel:"noopener noreferrer"},b={href:"https://github.com/datasharingframework/dsf-process-allow-list/releases",target:"_blank",rel:"noopener noreferrer"},k={href:"https://github.com/datasharingframework/dsf-process-allow-list/releases/tag/v1.0.0.1",target:"_blank",rel:"noopener noreferrer"},x={href:"https://github.com/datasharingframework/dsf-process-allow-list/releases/tag/v1.0.0.1",target:"_blank",rel:"noopener noreferrer"},w={href:"https://github.com/medizininformatik-initiative/mii-process-feasibility/releases",target:"_blank",rel:"noopener noreferrer"},y={href:"https://github.com/medizininformatik-initiative/mii-process-feasibility/releases/tag/v1.0.0.5",target:"_blank",rel:"noopener noreferrer"},P={href:"https://github.com/medizininformatik-initiative/mii-process-feasibility/releases/tag/v1.0.0.5",target:"_blank",rel:"noopener noreferrer"},z={href:"https://github.com/medizininformatik-initiative/mii-process-report/releases",target:"_blank",rel:"noopener noreferrer"},I={href:"https://github.com/medizininformatik-initiative/mii-process-report/releases/tag/v1.1.0.1",target:"_blank",rel:"noopener noreferrer"},M={href:"https://github.com/medizininformatik-initiative/mii-process-report/releases/tag/v1.0.0.0",target:"_blank",rel:"noopener noreferrer"},j={href:"https://github.com/medizininformatik-initiative/mii-process-data-transfer/releases",target:"_blank",rel:"noopener noreferrer"},D={href:"https://github.com/medizininformatik-initiative/mii-process-data-sharing/releases/tag/v1.0.0.1",target:"_blank",rel:"noopener noreferrer"},q={href:"https://github.com/medizininformatik-initiative/mii-process-data-sharing/releases/tag/v1.0.0.1",target:"_blank",rel:"noopener noreferrer"},S={href:"https://github.com/medizininformatik-initiative/mii-process-data-sharing/releases",target:"_blank",rel:"noopener noreferrer"},T={href:"https://github.com/medizininformatik-initiative/mii-process-data-transfer/releases/tag/v1.0.1.0",target:"_blank",rel:"noopener noreferrer"},E={href:"https://github.com/medizininformatik-initiative/mii-process-data-transfer/releases/tag/v1.0.1.0",target:"_blank",rel:"noopener noreferrer"},F={href:"https://github.com/num-codex/codex-processes-ap1/releases",target:"_blank",rel:"noopener noreferrer"},N={href:"https://github.com/num-codex/codex-processes-ap1/releases/tag/v1.1.0.0",target:"_blank",rel:"noopener noreferrer"},B={href:"https://github.com/num-codex/codex-processes-ap1/releases/tag/v1.1.0.0",target:"_blank",rel:"noopener noreferrer"},A={href:"https://hub.dsf.dev/",target:"_blank",rel:"noopener noreferrer"},O=e("li",null,"Deploying the process plugin to the DSF involves copy the process jar-file and configuring environment variable for the business process engine (BPE).",-1),R=e("h3",{id:"prerequisites",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#prerequisites"},[e("span",null,"Prerequisites")])],-1),V={href:"https://dsf.dev/stable/maintain/install.html",target:"_blank",rel:"noopener noreferrer"},L=l(`
Modify the process exclude config in /opt/bpe/docker-compose.yml
Reminder: Update/verify required configurations in docker-compose.yml
`,10);function U(C,J){const r=a("ExternalLinkIcon");return s(),o("div",null,[e("div",c,[h,e("p",null,[t("To install and learn more about each Process Plugin, you can visit the Marketplace "),e("a",p,[t("here"),n(r)]),t(".")])]),u,g,e("table",null,[m,e("tbody",null,[e("tr",null,[e("td",null,[e("a",f,[t("Ping-Pong"),n(r)])]),e("td",null,[e("a",v,[t("v1.0.1.0"),n(r)])]),e("td",null,[e("a",_,[t("v1.0.1.0"),n(r)])])]),e("tr",null,[e("td",null,[e("a",b,[t("Allow-List"),n(r)])]),e("td",null,[e("a",k,[t("v1.0.0.1"),n(r)])]),e("td",null,[e("a",x,[t("v1.0.0.1"),n(r)])])]),e("tr",null,[e("td",null,[e("a",w,[t("MII Process Feasibility"),n(r)])]),e("td",null,[e("a",y,[t("v1.0.0.5"),n(r)])]),e("td",null,[e("a",P,[t("v1.0.0.5"),n(r)])])]),e("tr",null,[e("td",null,[e("a",z,[t("MII Process Report"),n(r)])]),e("td",null,[e("a",I,[t("v1.1.0.1"),n(r)])]),e("td",null,[e("a",M,[t("v1.0.0.0"),n(r)])])]),e("tr",null,[e("td",null,[e("a",j,[t("MII Process Data Transfer"),n(r)])]),e("td",null,[e("a",D,[t("v1.0.0.1"),n(r)])]),e("td",null,[e("a",q,[t("v1.0.0.1"),n(r)])])]),e("tr",null,[e("td",null,[e("a",S,[t("MII Process Data Sharing"),n(r)])]),e("td",null,[e("a",T,[t("v1.0.1.0"),n(r)])]),e("td",null,[e("a",E,[t("v1.0.1.0"),n(r)])])]),e("tr",null,[e("td",null,[e("a",F,[t("NUM-RDP"),n(r)])]),e("td",null,[e("a",N,[t("v1.1.0.0"),n(r)])]),e("td",null,[e("a",B,[t("v1.1.0.0"),n(r)])])])])]),e("ul",null,[e("li",null,[t("Explore and install Process Plugins in the Marketplace. Details on each plugin are available "),e("a",A,[t("here"),n(r)]),t(".")]),O]),R,e("ul",null,[e("li",null,[t("A DSF installation of version 1.3.x or higher. An installation guide can be found "),e("a",V,[t("here"),n(r)]),t(".")])]),L])}const H=i(d,[["render",U],["__file","install-plugins.html.vue"]]),K=JSON.parse('{"path":"/stable/maintain/install-plugins.html","title":"Install Plugins","lang":"en-US","frontmatter":{"title":"Install Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[{"level":3,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[]},{"level":3,"title":"Deployment","slug":"deployment","link":"#deployment","children":[]}]}],"git":{"createdTime":null,"updatedTime":null,"contributors":[]},"readingTime":{"minutes":1.18,"words":353},"filePathRelative":"stable/maintain/install-plugins.md","excerpt":"
\\n
Marketplace for process plugins
\\n
To install and learn more about each Process Plugin, you can visit the Marketplace here.
\\n
\\n
Overview
"}');export{H as comp,K as data};
diff --git a/assets/install-plugins.html-OqBmbFsQ.js b/assets/install-plugins.html-OqBmbFsQ.js
new file mode 100644
index 000000000..0f3c9a028
--- /dev/null
+++ b/assets/install-plugins.html-OqBmbFsQ.js
@@ -0,0 +1 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as t,c as a,a as e,b as s,d as i}from"./app-kq9lCQfY.js";const l={},c=e("p",null,"You can find an overview of compatable process plugins below.",-1),p=e("h2",{id:"common-processes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#common-processes"},[e("span",null,"Common processes")])],-1),m={href:"https://github.com/datasharingframework/dsf-process-ping-pong/releases",target:"_blank",rel:"noopener noreferrer"},h={href:"https://github.com/datasharingframework/dsf-process-allow-list/releases",target:"_blank",rel:"noopener noreferrer"},d=e("h2",{id:"mii-processes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mii-processes"},[e("span",null,"MII processes")])],-1),u={href:"https://github.com/medizininformatik-initiative/mii-process-feasibility/releases",target:"_blank",rel:"noopener noreferrer"},f={href:"https://github.com/medizininformatik-initiative/mii-process-report/releases",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/medizininformatik-initiative/mii-process-data-transfer/releases",target:"_blank",rel:"noopener noreferrer"},_=e("h2",{id:"num-processes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#num-processes"},[e("span",null,"NUM processes")])],-1),b={href:"https://github.com/num-codex/codex-processes-ap1/releases",target:"_blank",rel:"noopener noreferrer"};function k(w,v){const r=n("ExternalLinkIcon");return t(),a("div",null,[c,p,e("ul",null,[e("li",null,[s("Ping-Pong: "),e("a",m,[s("https://github.com/datasharingframework/dsf-process-ping-pong/releases"),i(r)])]),e("li",null,[s("AllowList Download: "),e("a",h,[s("https://github.com/datasharingframework/dsf-process-allow-list/releases"),i(r)])])]),d,e("ul",null,[e("li",null,[s("Feasibility: "),e("a",u,[s("https://github.com/medizininformatik-initiative/mii-process-feasibility/releases"),i(r)])]),e("li",null,[s("KDS-Report: "),e("a",f,[s("https://github.com/medizininformatik-initiative/mii-process-report/releases"),i(r)])])]),e("ul",null,[e("li",null,[s("MII-Data-Transfer: "),e("a",g,[s("https://github.com/medizininformatik-initiative/mii-process-data-transfer/releases"),i(r)])])]),_,e("ul",null,[e("li",null,[s("NUM-RDP: "),e("a",b,[s("https://github.com/num-codex/codex-processes-ap1/releases"),i(r)])])])])}const z=o(l,[["render",k],["__file","install-plugins.html.vue"]]),P=JSON.parse('{"path":"/v1.4.0/maintain/install-plugins.html","title":"Install Plugins","lang":"en-US","frontmatter":{"title":"Install Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Common processes","slug":"common-processes","link":"#common-processes","children":[]},{"level":2,"title":"MII processes","slug":"mii-processes","link":"#mii-processes","children":[]},{"level":2,"title":"NUM processes","slug":"num-processes","link":"#num-processes","children":[]}],"git":{"createdTime":1702917645000,"updatedTime":1708339179000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":0.24,"words":73},"filePathRelative":"v1.4.0/maintain/install-plugins.md","localizedDate":"December 18, 2023","excerpt":"
You can find an overview of compatable process plugins below.
"}');export{z as comp,P as data};
diff --git a/assets/install.html-BKqC2SR0.js b/assets/install.html-BKqC2SR0.js
new file mode 100644
index 000000000..ebcbed704
--- /dev/null
+++ b/assets/install.html-BKqC2SR0.js
@@ -0,0 +1,35 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as l,a as t,b as e,d as o,e as i}from"./app-kq9lCQfY.js";const c={},d=i('
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.
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.
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 Usages: TLS Web Server Authentication, TLS Web Client Authentication.
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.
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
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
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
For the example ssl_certificate_file.pem (chmod: 440, chown: fhir:docker) you must:
Set the file content as requested
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
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
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
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 page.
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
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.
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
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)
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[...]
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
+
Please visit the on boarding website of your network for more information.
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!
`,14);function m(v,g){const r=n("ExternalLinkIcon");return s(),l("div",null,[d,t("p",null,[e("Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see "),t("a",p,[e("https://docs.docker.com/engine/install"),o(r)]),e(".")]),h,t("p",null,[e("Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, "),t("a",u,[e("simplifier.net"),o(r)]),e(" or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.")]),f])}const y=a(c,[["render",m],["__file","install.html.vue"]]),k=JSON.parse('{"path":"/v1.5.1/maintain/install.html","title":"Install DSF 1.5.1","lang":"en-US","frontmatter":{"title":"Install DSF 1.5.1","icon":"install"},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]},{"level":3,"title":"Logs","slug":"logs","link":"#logs","children":[]},{"level":3,"title":"On-Boarding","slug":"on-boarding","link":"#on-boarding","children":[]}]}],"git":{"createdTime":1713374283000,"updatedTime":1718629884000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":5.76,"words":1729},"filePathRelative":"v1.5.1/maintain/install.md","localizedDate":"April 17, 2024","excerpt":"
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.
\\n
\\n
Unified installation manual
\\n
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.
\\n
"}');export{y as comp,k as data};
diff --git a/assets/install.html-BaXMdr7u.js b/assets/install.html-BaXMdr7u.js
new file mode 100644
index 000000000..045f2ead4
--- /dev/null
+++ b/assets/install.html-BaXMdr7u.js
@@ -0,0 +1,35 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as l,a as t,b as e,d as o,e as i}from"./app-kq9lCQfY.js";const c={},d=i('
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.
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.
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 Usages: TLS Web Server Authentication, TLS Web Client Authentication.
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.
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
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
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
For the example ssl_certificate_file.pem (chmod: 440, chown: fhir:docker) you must:
Set the file content as requested
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
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
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
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 page.
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
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.
Modify the docker-compose.yml file and set environment variables to the appropriate values
services -> app -> environment:
DEV_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: todo.organization.com Set your Organizations DSF identifier, aka the shortest FQDN that resolves the main homepage of the organization, e.g. hs-heilbronn.de
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
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)
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[...]
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:
Please visit the on boarding website of your network for more information.
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!
`,14);function m(v,g){const r=n("ExternalLinkIcon");return s(),l("div",null,[d,t("p",null,[e("Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see "),t("a",p,[e("https://docs.docker.com/engine/install"),o(r)]),e(".")]),h,t("p",null,[e("Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, "),t("a",u,[e("simplifier.net"),o(r)]),e(" or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.")]),f])}const F=a(c,[["render",m],["__file","install.html.vue"]]),w=JSON.parse('{"path":"/v1.3.0/maintain/install.html","title":"Install DSF 1.3.0","lang":"en-US","frontmatter":{"title":"Install DSF 1.3.0","icon":"install"},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]},{"level":3,"title":"Logs","slug":"logs","link":"#logs","children":[]},{"level":3,"title":"On-Boarding","slug":"on-boarding","link":"#on-boarding","children":[]}]}],"git":{"createdTime":1696944513000,"updatedTime":1698658900000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":5.84,"words":1753},"filePathRelative":"v1.3.0/maintain/install.md","localizedDate":"October 10, 2023","excerpt":"
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.
\\n
\\n
Unified installation manual
\\n
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.
\\n
"}');export{F as comp,w as data};
diff --git a/assets/install.html-BrMS_Ond.js b/assets/install.html-BrMS_Ond.js
new file mode 100644
index 000000000..7c17fba25
--- /dev/null
+++ b/assets/install.html-BrMS_Ond.js
@@ -0,0 +1,35 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as l,a as t,b as e,d as o,e as i}from"./app-kq9lCQfY.js";const c={},d=i('
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.
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.
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 Usages: TLS Web Server Authentication, TLS Web Client Authentication.
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.
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
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
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
For the example ssl_certificate_file.pem (chmod: 440, chown: fhir:docker) you must:
Set the file content as requested
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
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
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
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 page.
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
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.
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
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)
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[...]
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
+
Please visit the on boarding website of your network for more information.
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!
`,14);function m(v,g){const r=n("ExternalLinkIcon");return s(),l("div",null,[d,t("p",null,[e("Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see "),t("a",p,[e("https://docs.docker.com/engine/install"),o(r)]),e(".")]),h,t("p",null,[e("Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, "),t("a",u,[e("simplifier.net"),o(r)]),e(" or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.")]),f])}const y=a(c,[["render",m],["__file","install.html.vue"]]),k=JSON.parse('{"path":"/stable/maintain/install.html","title":"Install DSF 1.5.2","lang":"en-US","frontmatter":{"title":"Install DSF 1.5.2","icon":"install"},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]},{"level":3,"title":"Logs","slug":"logs","link":"#logs","children":[]},{"level":3,"title":"On-Boarding","slug":"on-boarding","link":"#on-boarding","children":[]}]}],"git":{"createdTime":1688985700000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":12},{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":5.76,"words":1729},"filePathRelative":"stable/maintain/install.md","localizedDate":"July 10, 2023","excerpt":"
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.
\\n
\\n
Unified installation manual
\\n
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.
\\n
"}');export{y as comp,k as data};
diff --git a/assets/install.html-CJf5u1D5.js b/assets/install.html-CJf5u1D5.js
new file mode 100644
index 000000000..fe2cf29e5
--- /dev/null
+++ b/assets/install.html-CJf5u1D5.js
@@ -0,0 +1,35 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as l,a as t,b as e,d as o,e as i}from"./app-kq9lCQfY.js";const c={},d=i('
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.
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.
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 Usages: TLS Web Server Authentication, TLS Web Client Authentication.
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.
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
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
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
For the example ssl_certificate_file.pem (chmod: 440, chown: fhir:docker) you must:
Set the file content as requested
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
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
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
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 page.
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
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.
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
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)
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[...]
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
+
Please visit the on boarding website of your network for more information.
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!
`,14);function m(v,g){const r=n("ExternalLinkIcon");return s(),l("div",null,[d,t("p",null,[e("Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see "),t("a",p,[e("https://docs.docker.com/engine/install"),o(r)]),e(".")]),h,t("p",null,[e("Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, "),t("a",u,[e("simplifier.net"),o(r)]),e(" or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.")]),f])}const k=a(c,[["render",m],["__file","install.html.vue"]]),y=JSON.parse('{"path":"/v1.5.2/maintain/install.html","title":"Install DSF 1.5.2","lang":"en-US","frontmatter":{"title":"Install DSF 1.5.2","icon":"install"},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]},{"level":3,"title":"Logs","slug":"logs","link":"#logs","children":[]},{"level":3,"title":"On-Boarding","slug":"on-boarding","link":"#on-boarding","children":[]}]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":5.76,"words":1729},"filePathRelative":"v1.5.2/maintain/install.md","localizedDate":"July 8, 2024","excerpt":"
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.
\\n
\\n
Unified installation manual
\\n
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.
\\n
"}');export{k as comp,y as data};
diff --git a/assets/install.html-CPYdjQIY.js b/assets/install.html-CPYdjQIY.js
new file mode 100644
index 000000000..a1903a72b
--- /dev/null
+++ b/assets/install.html-CPYdjQIY.js
@@ -0,0 +1,35 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as l,a as t,b as e,d as o,e as i}from"./app-kq9lCQfY.js";const c={},d=i('
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.
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.
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 Usages: TLS Web Server Authentication, TLS Web Client Authentication.
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.
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
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
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
For the example ssl_certificate_file.pem (chmod: 440, chown: fhir:docker) you must:
Set the file content as requested
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
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
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
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 page.
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
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.
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
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)
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[...]
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:
Please visit the on boarding website of your network for more information.
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!
`,14);function m(v,g){const r=n("ExternalLinkIcon");return s(),l("div",null,[d,t("p",null,[e("Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see "),t("a",p,[e("https://docs.docker.com/engine/install"),o(r)]),e(".")]),h,t("p",null,[e("Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, "),t("a",u,[e("simplifier.net"),o(r)]),e(" or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.")]),f])}const w=a(c,[["render",m],["__file","install.html.vue"]]),F=JSON.parse('{"path":"/v1.3.2/maintain/install.html","title":"Install DSF 1.3.2","lang":"en-US","frontmatter":{"title":"Install DSF 1.3.2","icon":"install"},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]},{"level":3,"title":"Logs","slug":"logs","link":"#logs","children":[]},{"level":3,"title":"On-Boarding","slug":"on-boarding","link":"#on-boarding","children":[]}]}],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":5.77,"words":1731},"filePathRelative":"v1.3.2/maintain/install.md","localizedDate":"December 4, 2023","excerpt":"
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.
\\n
\\n
Unified installation manual
\\n
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.
\\n
"}');export{w as comp,F as data};
diff --git a/assets/install.html-CRFtEX6d.js b/assets/install.html-CRFtEX6d.js
new file mode 100644
index 000000000..4fed856cd
--- /dev/null
+++ b/assets/install.html-CRFtEX6d.js
@@ -0,0 +1,35 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as l,a as t,b as e,d as o,e as i}from"./app-kq9lCQfY.js";const c={},d=i('
Member of existing networks
If you are part of an existing network (e.g. the German MII), please install the appropriate DSF version. For the production environment of MII and NUM this is currently DSF 0.9.x.
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.
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.
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 Usages: TLS Web Server Authentication, TLS Web Client Authentication.
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.
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
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
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
For the example ssl_certificate_file.pem (chmod: 440, chown: fhir:docker) you must:
Set the file content as requested
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
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
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
DEV_DSF_FHIR_SERVER_BASE_URL: https://TODO_DSF_FHIR_SERVER_EXTERNAL_FQDN/fhir Set your FHIR servers external FQDN, e.g. foo.bar.de -> https://foo.bar.de/fhir
DEV_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
DEV_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.
DEV_DSF_FHIR_SERVER_ROLECONFIG: You can add other client certificates (e.g. personal DFN PKI S/MIME certificates, e.g. from admins) to your DSF instance. Set the SHA-512 Hash (lowercase hex) of your additional client certificates. The parameter TODO_WEBUSER_CLIENT_CERTIFICATE_THUMBPRINT can be a single thumbprint or can be expanded to a list (like dsf-role). If you don't have additional thumbprints you want to add, simply remove the DEV_DSF_FHIR_SERVER_ROLECONFIG variable from your docker-compose file.
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
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.
Modify the docker-compose.yml file and set environment variables to the appropriate values
services -> app -> environment:
DEV_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
DEV_DSF_BPE_FHIR_SERVER_BASE_URL: https://TODO_DSF_FHIR_SERVER_FQDN/fhir Set your FHIR servers external FQDN, e.g. foo.bar.de -> https://foo.bar.de/fhir
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)
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[...]
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:
Please visit the on boarding website of your network for more information.
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!
`,14);function f(v,g){const r=n("ExternalLinkIcon");return s(),l("div",null,[d,t("p",null,[e("Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see "),t("a",p,[e("https://docs.docker.com/engine/install"),o(r)]),e(".")]),h,t("p",null,[e("Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, "),t("a",u,[e("simplifier.net"),o(r)]),e(" or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.")]),m])}const F=a(c,[["render",f],["__file","install.html.vue"]]),S=JSON.parse('{"path":"/v1.0.0/maintain/install.html","title":"Install DSF 1.0.0","lang":"en-US","frontmatter":{"title":"Install DSF 1.0.0","icon":"install"},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]},{"level":3,"title":"Logs","slug":"logs","link":"#logs","children":[]},{"level":3,"title":"On-Boarding","slug":"on-boarding","link":"#on-boarding","children":[]}]}],"git":{"createdTime":1692708510000,"updatedTime":1692708510000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":6.1,"words":1831},"filePathRelative":"v1.0.0/maintain/install.md","localizedDate":"August 22, 2023","excerpt":"
\\n
Member of existing networks
\\n
If you are part of an existing network (e.g. the German MII), please install the appropriate DSF version. For the production environment of MII and NUM this is currently DSF 0.9.x.
\\n
"}');export{F as comp,S as data};
diff --git a/assets/install.html-CaUAgN_g.js b/assets/install.html-CaUAgN_g.js
new file mode 100644
index 000000000..3589ab78b
--- /dev/null
+++ b/assets/install.html-CaUAgN_g.js
@@ -0,0 +1,35 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as l,a as t,b as e,d as o,e as i}from"./app-kq9lCQfY.js";const c={},d=i('
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.
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.
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 Usages: TLS Web Server Authentication, TLS Web Client Authentication.
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.
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
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
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
For the example ssl_certificate_file.pem (chmod: 440, chown: fhir:docker) you must:
Set the file content as requested
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
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
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
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 page.
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
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.
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
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)
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[...]
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:
Please visit the on boarding website of your network for more information.
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!
`,14);function m(v,g){const r=n("ExternalLinkIcon");return s(),l("div",null,[d,t("p",null,[e("Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see "),t("a",p,[e("https://docs.docker.com/engine/install"),o(r)]),e(".")]),h,t("p",null,[e("Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, "),t("a",u,[e("simplifier.net"),o(r)]),e(" or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.")]),f])}const w=a(c,[["render",m],["__file","install.html.vue"]]),F=JSON.parse('{"path":"/v1.3.1/maintain/install.html","title":"Install DSF 1.3.1","lang":"en-US","frontmatter":{"title":"Install DSF 1.3.1","icon":"install"},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]},{"level":3,"title":"Logs","slug":"logs","link":"#logs","children":[]},{"level":3,"title":"On-Boarding","slug":"on-boarding","link":"#on-boarding","children":[]}]}],"git":{"createdTime":1698748420000,"updatedTime":1699391889000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":5.77,"words":1731},"filePathRelative":"v1.3.1/maintain/install.md","localizedDate":"October 31, 2023","excerpt":"
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.
\\n
\\n
Unified installation manual
\\n
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.
\\n
"}');export{w as comp,F as data};
diff --git a/assets/install.html-Ci01uV9w.js b/assets/install.html-Ci01uV9w.js
new file mode 100644
index 000000000..67665fea3
--- /dev/null
+++ b/assets/install.html-Ci01uV9w.js
@@ -0,0 +1,35 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as l,a as t,b as e,d as o,e as i}from"./app-kq9lCQfY.js";const c={},d=i('
Member of existing networks
If you are part of an existing network (e.g. the German MII), please install the appropriate DSF version. For the production environment of MII and NUM this is currently DSF 0.9.x.
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.
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.
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 Usages: TLS Web Server Authentication, TLS Web Client Authentication.
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.
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
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
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
For the example ssl_certificate_file.pem (chmod: 440, chown: fhir:docker) you must:
Set the file content as requested
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
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
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
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 page.
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
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.
Modify the docker-compose.yml file and set environment variables to the appropriate values
services -> app -> environment:
DEV_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: todo.organization.com Set your Organizations DSF identifier, aka the shortest FQDN that resolves the main homepage of the organization, e.g. hs-heilbronn.de
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
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)
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[...]
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:
Please visit the on boarding website of your network for more information.
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!
`,14);function m(v,g){const r=n("ExternalLinkIcon");return s(),l("div",null,[d,t("p",null,[e("Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see "),t("a",p,[e("https://docs.docker.com/engine/install"),o(r)]),e(".")]),h,t("p",null,[e("Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, "),t("a",u,[e("simplifier.net"),o(r)]),e(" or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.")]),f])}const F=a(c,[["render",m],["__file","install.html.vue"]]),k=JSON.parse('{"path":"/v1.2.0/maintain/install.html","title":"Install DSF 1.2.0","lang":"en-US","frontmatter":{"title":"Install DSF 1.2.0","icon":"install"},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]},{"level":3,"title":"Logs","slug":"logs","link":"#logs","children":[]},{"level":3,"title":"On-Boarding","slug":"on-boarding","link":"#on-boarding","children":[]}]}],"git":{"createdTime":1694544770000,"updatedTime":1694547223000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":4}]},"readingTime":{"minutes":5.97,"words":1791},"filePathRelative":"v1.2.0/maintain/install.md","localizedDate":"September 12, 2023","excerpt":"
\\n
Member of existing networks
\\n
If you are part of an existing network (e.g. the German MII), please install the appropriate DSF version. For the production environment of MII and NUM this is currently DSF 0.9.x.
\\n
"}');export{F as comp,k as data};
diff --git a/assets/install.html-DPutC4Ur.js b/assets/install.html-DPutC4Ur.js
new file mode 100644
index 000000000..0bf583297
--- /dev/null
+++ b/assets/install.html-DPutC4Ur.js
@@ -0,0 +1,35 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as l,a as t,b as e,d as o,e as i}from"./app-kq9lCQfY.js";const c={},d=i('
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.
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.
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 Usages: TLS Web Server Authentication, TLS Web Client Authentication.
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.
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
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
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
For the example ssl_certificate_file.pem (chmod: 440, chown: fhir:docker) you must:
Set the file content as requested
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
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
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
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 page.
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
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.
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
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)
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[...]
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:
Please visit the on boarding website of your network for more information.
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!
`,14);function m(v,g){const r=n("ExternalLinkIcon");return s(),l("div",null,[d,t("p",null,[e("Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see "),t("a",p,[e("https://docs.docker.com/engine/install"),o(r)]),e(".")]),h,t("p",null,[e("Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, "),t("a",u,[e("simplifier.net"),o(r)]),e(" or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.")]),f])}const w=a(c,[["render",m],["__file","install.html.vue"]]),F=JSON.parse('{"path":"/v1.5.0/maintain/install.html","title":"Install DSF 1.5.0","lang":"en-US","frontmatter":{"title":"Install DSF 1.5.0","icon":"install"},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]},{"level":3,"title":"Logs","slug":"logs","link":"#logs","children":[]},{"level":3,"title":"On-Boarding","slug":"on-boarding","link":"#on-boarding","children":[]}]}],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":5.77,"words":1731},"filePathRelative":"v1.5.0/maintain/install.md","localizedDate":"February 20, 2024","excerpt":"
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.
\\n
\\n
Unified installation manual
\\n
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.
\\n
"}');export{w as comp,F as data};
diff --git a/assets/install.html-tuyuTpsb.js b/assets/install.html-tuyuTpsb.js
new file mode 100644
index 000000000..b2d985dcd
--- /dev/null
+++ b/assets/install.html-tuyuTpsb.js
@@ -0,0 +1,35 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as l,a as t,b as e,d as o,e as i}from"./app-kq9lCQfY.js";const c={},d=i('
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.
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.
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 Usages: TLS Web Server Authentication, TLS Web Client Authentication.
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.
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
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
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
For the example ssl_certificate_file.pem (chmod: 440, chown: fhir:docker) you must:
Set the file content as requested
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
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
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
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 page.
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
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.
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
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)
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[...]
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:
Please visit the on boarding website of your network for more information.
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!
`,14);function m(v,g){const r=n("ExternalLinkIcon");return s(),l("div",null,[d,t("p",null,[e("Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see "),t("a",p,[e("https://docs.docker.com/engine/install"),o(r)]),e(".")]),h,t("p",null,[e("Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, "),t("a",u,[e("simplifier.net"),o(r)]),e(" or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.")]),f])}const w=a(c,[["render",m],["__file","install.html.vue"]]),F=JSON.parse('{"path":"/v1.4.0/maintain/install.html","title":"Install DSF 1.4.0","lang":"en-US","frontmatter":{"title":"Install DSF 1.4.0","icon":"install"},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]},{"level":3,"title":"Logs","slug":"logs","link":"#logs","children":[]},{"level":3,"title":"On-Boarding","slug":"on-boarding","link":"#on-boarding","children":[]}]}],"git":{"createdTime":1702917645000,"updatedTime":1702917645000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":5.77,"words":1731},"filePathRelative":"v1.4.0/maintain/install.md","localizedDate":"December 18, 2023","excerpt":"
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.
\\n
\\n
Unified installation manual
\\n
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.
\\n
"}');export{w as comp,F as data};
diff --git a/assets/install.html-v-wtBUsw.js b/assets/install.html-v-wtBUsw.js
new file mode 100644
index 000000000..a29f3e534
--- /dev/null
+++ b/assets/install.html-v-wtBUsw.js
@@ -0,0 +1,35 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as s,c as l,a as t,b as e,d as o,e as i}from"./app-kq9lCQfY.js";const c={},d=i('
Member of existing networks
If you are part of an existing network (e.g. the German MII), please install the appropriate DSF version. For the production environment of MII and NUM this is currently DSF 0.9.x.
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.
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.
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 Usages: TLS Web Server Authentication, TLS Web Client Authentication.
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.
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
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
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
For the example ssl_certificate_file.pem (chmod: 440, chown: fhir:docker) you must:
Set the file content as requested
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
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
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
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: | 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 page.
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
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.
Modify the docker-compose.yml file and set environment variables to the appropriate values
services -> app -> environment:
DEV_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE: todo.organization.com Set your Organizations DSF identifier, aka the shortest FQDN that resolves the main homepage of the organization, e.g. hs-heilbronn.de
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
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)
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[...]
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:
Please visit the on boarding website of your network for more information.
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!
`,14);function m(v,g){const r=n("ExternalLinkIcon");return s(),l("div",null,[d,t("p",null,[e("Both VMs need latest docker (>= 24.0.0) and docker compose. For the latest install guide see "),t("a",p,[e("https://docs.docker.com/engine/install"),o(r)]),e(".")]),h,t("p",null,[e("Connections to services that are used by process plugins (e.g. a fTTP, a terminology server, "),t("a",u,[e("simplifier.net"),o(r)]),e(" or a local FHIR server) are not listed. Please refer to the respective process plugin documentation pages for more information.")]),f])}const F=a(c,[["render",m],["__file","install.html.vue"]]),k=JSON.parse('{"path":"/v1.1.0/maintain/install.html","title":"Install DSF 1.1.0","lang":"en-US","frontmatter":{"title":"Install DSF 1.1.0","icon":"install"},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]},{"level":3,"title":"Logs","slug":"logs","link":"#logs","children":[]},{"level":3,"title":"On-Boarding","slug":"on-boarding","link":"#on-boarding","children":[]}]}],"git":{"createdTime":1692790324000,"updatedTime":1693252510000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Maximilian Kurscheidt","email":"maximilian.kurscheidt@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":5.97,"words":1790},"filePathRelative":"v1.1.0/maintain/install.md","localizedDate":"August 23, 2023","excerpt":"
\\n
Member of existing networks
\\n
If you are part of an existing network (e.g. the German MII), please install the appropriate DSF version. For the production environment of MII and NUM this is currently DSF 0.9.x.
\\n
"}');export{F as comp,k as data};
diff --git a/assets/intelliJContent.html-yFdXbKGw.js b/assets/intelliJContent.html-yFdXbKGw.js
new file mode 100644
index 000000000..2810fa7a1
--- /dev/null
+++ b/assets/intelliJContent.html-yFdXbKGw.js
@@ -0,0 +1,68 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as e,o as c,c as u,a as n,d as s,w as t,e as l,b as p}from"./app-kq9lCQfY.js";const k={},i=l(`
"}');export{_ as comp,d as data};
diff --git a/assets/introduction.html-B5k_PK4x.js b/assets/introduction.html-B5k_PK4x.js
new file mode 100644
index 000000000..093b9330b
--- /dev/null
+++ b/assets/introduction.html-B5k_PK4x.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as i,a as e}from"./app-kq9lCQfY.js";const n="/photos/guideline/introduction/dsf_architecture.svg",a={},o=e("p",null,"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.",-1),r=e("figure",null,[e("img",{src:n,alt:"DSF Architecture",tabindex:"0",loading:"lazy"}),e("figcaption",null,"DSF Architecture")],-1),c=[o,r];function d(l,u){return s(),i("div",null,c)}const m=t(a,[["render",d],["__file","introduction.html.vue"]]),g=JSON.parse('{"path":"/oldstable/introduction.html","title":"Introduction","lang":"en-US","frontmatter":{"title":"Introduction","icon":"info"},"headers":[],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.39,"words":116},"filePathRelative":"oldstable/introduction.md","localizedDate":"August 23, 2023","excerpt":"
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.
"}');export{m as comp,g as data};
diff --git a/assets/introduction.html-BctNGTS-.js b/assets/introduction.html-BctNGTS-.js
new file mode 100644
index 000000000..9c2cd4d68
--- /dev/null
+++ b/assets/introduction.html-BctNGTS-.js
@@ -0,0 +1 @@
+import{_ as i}from"./mii-bWzWhniO.js";import{_ as r}from"./dsf-concept-Dbcu0twt.js";import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as c,c as d,a as e,b as t,d as n}from"./app-kq9lCQfY.js";const l="/photos/info/introduction/dic-structure.png",h={},m={href:"https://www.bmbf.de/bmbf/en/home/home_node.html",target:"_blank",rel:"noopener noreferrer"},u={href:"https://www.medizininformatik-initiative.de/en/start",target:"_blank",rel:"noopener noreferrer"},p=e("figure",null,[e("img",{src:i,alt:"",width:"300",height:"150",tabindex:"0",loading:"lazy"}),e("figcaption")],-1),f=e("strong",null,"Data Sharing Framework (DSF)",-1),g={href:"https://www.gesundheitsforschung-bmbf.de/de/dsf-medizininformatik-struktur-data-sharing-framework-community-16133.php",target:"_blank",rel:"noopener noreferrer"},b=e("p",null,"The DSF is a concept for a secure middleware to distribute data sharing processes, aiming to extract, merge, pseudonymize and provide data stored in multiple distributed DICs. A researcher can use the DSF for example to submit feasibility queries to several DICs and thus has the opportunity to obtain sufficient data from different locations for his or her research. By using international standards such as FHIR and BPMN 2.0, the problem of heterogeneous data models, primary systems, architectures and federated legislation between DICs can be solved. The aim is to enable secure and syntactically-, semantically- and process-interoperable data exchange across organisational boundaries.",-1),_=e("figure",null,[e("img",{src:r,alt:"DSF concept",tabindex:"0",loading:"lazy"}),e("figcaption",null,"DSF concept")],-1),w=e("p",null,"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.",-1),y=e("figure",null,[e("img",{src:l,alt:"Federated data exchange between distributed DICs (CRP=Central Research Portal, DMU=Data Management Unit)",width:"500",height:"320",tabindex:"0",loading:"lazy"}),e("figcaption",null,"Federated data exchange between distributed DICs (CRP=Central Research Portal, DMU=Data Management Unit)")],-1);function v(D,I){const a=s("ExternalLinkIcon");return c(),d("div",null,[e("p",null,[t("The "),e("a",m,[t("German Federal Ministry of Education and Research"),n(a)]),t(" is funding the "),e("a",u,[t("Medical Informatics Initiative"),n(a)]),t(" 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.")]),p,e("p",null,[t("The "),f,t(" 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 "),e("em",null,[e("a",g,[t("DSF Community"),n(a)])]),t(".")]),b,_,w,y])}const M=o(h,[["render",v],["__file","introduction.html.vue"]]),z=JSON.parse('{"path":"/intro/info/introduction.html","title":"Introduction","lang":"en-US","frontmatter":{"title":"Introduction","icon":"customize"},"headers":[],"git":{"createdTime":1690473388000,"updatedTime":1691142763000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":4}]},"readingTime":{"minutes":1.05,"words":316},"filePathRelative":"intro/info/introduction.md","localizedDate":"July 27, 2023","excerpt":"
The German Federal Ministry of Education and Research is funding the Medical Informatics Initiative 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.
"}');export{M as comp,z as data};
diff --git a/assets/learn.html-BCytgQB3.js b/assets/learn.html-BCytgQB3.js
new file mode 100644
index 000000000..1c69aba8d
--- /dev/null
+++ b/assets/learn.html-BCytgQB3.js
@@ -0,0 +1 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o as s,c as l,a as e,d as n,w as a,b as o}from"./app-kq9lCQfY.js";const c={},m={class:"hint-container warning"},u=e("p",{class:"hint-container-title"},"Work in progress",-1),h=e("p",null,"This site is work in progress, please come back later.",-1),p=e("p",null,"If you want further information about the DSF and how to implement use cases, please visit:",-1);function d(_,f){const t=r("RouteLink");return s(),l("div",null,[e("div",m,[u,h,p,e("ul",null,[e("li",null,[n(t,{to:"/intro/"},{default:a(()=>[o("Documentation Overview")]),_:1})]),e("li",null,[n(t,{to:"/stable/"},{default:a(()=>[o("Getting started")]),_:1})]),e("li",null,[n(t,{to:"/about/learnmore/contact.html"},{default:a(()=>[o("Contact us")]),_:1})])])])])}const g=i(c,[["render",d],["__file","learn.html.vue"]]),v=JSON.parse('{"path":"/for-you/learn.html","title":"How to implement your use-case","lang":"en-US","frontmatter":{"title":"How to implement your use-case","icon":"creative"},"headers":[],"git":{"createdTime":1706902325000,"updatedTime":1706902325000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.16,"words":48},"filePathRelative":"for-you/learn.md","localizedDate":"February 2, 2024","excerpt":"
\\n
Work in progress
\\n
This site is work in progress, please come back later.
\\n
If you want further information about the DSF and how to implement use cases, please visit:
"}');export{g as comp,v as data};
diff --git a/assets/libraries.html-DXRhGNT1.js b/assets/libraries.html-DXRhGNT1.js
new file mode 100644
index 000000000..da01e64e5
--- /dev/null
+++ b/assets/libraries.html-DXRhGNT1.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as r}from"./app-kq9lCQfY.js";const i={};function a(o,s){return t(),r("div")}const n=e(i,[["render",a],["__file","libraries.html.vue"]]),d=JSON.parse('{"path":"/oldstable/code/libraries.html","title":"Libraries","lang":"en-US","frontmatter":{"title":"Libraries","icon":"folder"},"headers":[],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.01,"words":4},"filePathRelative":"oldstable/code/libraries.md","localizedDate":"August 23, 2023","excerpt":""}');export{n as comp,d as data};
diff --git a/assets/mii-bWzWhniO.js b/assets/mii-bWzWhniO.js
new file mode 100644
index 000000000..eca642bae
--- /dev/null
+++ b/assets/mii-bWzWhniO.js
@@ -0,0 +1 @@
+const o="/photos/learnmore/funding/mii.png";export{o as _};
diff --git a/assets/networkSetup.html-BRividmW.js b/assets/networkSetup.html-BRividmW.js
new file mode 100644
index 000000000..1b24e2f49
--- /dev/null
+++ b/assets/networkSetup.html-BRividmW.js
@@ -0,0 +1,37 @@
+import{_ as e,a as i}from"./highmed_dsf_network_setup_ext_dmz-DyQZOoIs.js";import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as r,c as t,e as s}from"./app-kq9lCQfY.js";const a={},o=s('
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.
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.
`,11),d=[o];function l(c,v){return r(),t("div",null,d)}const g=n(a,[["render",l],["__file","networkSetup.html.vue"]]),h=JSON.parse('{"path":"/oldstable/generalinformation/networkSetup.html","title":"Network Setup and General Architecture","lang":"en-US","frontmatter":{"title":"Network Setup and General Architecture","icon":"customize"},"headers":[{"level":2,"title":"Additional Reverse Proxy in external DMZ","slug":"additional-reverse-proxy-in-external-dmz","link":"#additional-reverse-proxy-in-external-dmz","children":[]}],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.62,"words":486},"filePathRelative":"oldstable/generalinformation/networkSetup.md","localizedDate":"August 23, 2023","excerpt":"
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.
"}');export{g as comp,h as data};
diff --git a/assets/networkSetup.html-DO8WTfe0.js b/assets/networkSetup.html-DO8WTfe0.js
new file mode 100644
index 000000000..b859db54f
--- /dev/null
+++ b/assets/networkSetup.html-DO8WTfe0.js
@@ -0,0 +1 @@
+import{_ as e,a as r}from"./highmed_dsf_network_setup_ext_dmz-DyQZOoIs.js";import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o,c as i,e as n}from"./app-kq9lCQfY.js";const a={},s=n('
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.
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.
',7),c=[s];function d(l,p){return o(),i("div",null,c)}const h=t(a,[["render",d],["__file","networkSetup.html.vue"]]),f=JSON.parse('{"path":"/intro/info/networkSetup.html","title":"Network Setup and General Architecture","lang":"en-US","frontmatter":{"title":"Network Setup and General Architecture","icon":"customize"},"headers":[{"level":2,"title":"Additional Reverse Proxy in external DMZ","slug":"additional-reverse-proxy-in-external-dmz","link":"#additional-reverse-proxy-in-external-dmz","children":[]}],"git":{"createdTime":1690817425000,"updatedTime":1690903993000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":1.62,"words":486},"filePathRelative":"intro/info/networkSetup.md","localizedDate":"July 31, 2023","excerpt":"
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.
"}');export{h as comp,f as data};
diff --git a/assets/num-codexInstall.html-Bw_nn2le.js b/assets/num-codexInstall.html-Bw_nn2le.js
new file mode 100644
index 000000000..05b93a834
--- /dev/null
+++ b/assets/num-codexInstall.html-Bw_nn2le.js
@@ -0,0 +1,39 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as n,o as l,c as a,a as e,b as t,d as i,e as s}from"./app-kq9lCQfY.js";const d={},c=s('
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.
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
Certificate A: Server Certificate (DFN PKI Profile: 'Web Server', Common-Name: Your external DSF FHIR Servers FQDN)
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.
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.
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
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
`,1),k=e("p",null,[t("Download and Extract Config Files"),e("br"),t(" Download prepared DSF FHIR server config files and folder structure from")],-1),F=e("strong",null,"Test NUM-CODEX",-1),S=e("br",null,null,-1),D={href:"https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_fhir_0_9_3.tar.gz",target:"_blank",rel:"noopener noreferrer"},E=s(`
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
+
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
+
`,1),y=e("p",null,[e("em",null,[t("The "),e("code",null,"tar"),t(" command will unpack the config files at "),e("code",null,"/opt/fhir"),t(" assuming you changed into the "),e("code",null,"/opt"),t(" directory.")])],-1),H=s(`
Verify that the fhir system user or group can write into the following folder
/opt/fhir/log
Add certificates and keys
Add the server certificate (certificate A) and the corresponding private-key to /opt/fhir/secrets/
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
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_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.
',5),V=e("li",null,[e("p",null,[t("Start the DSF FHIR Server"),e("br"),t(" Start using: "),e("code",null,"docker-compose up -d && docker-compose logs -f"),t(" (Ctrl-C will close log, but not stop container)")])],-1),L=e("h3",{id:"dsf-bpe-server",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#dsf-bpe-server"},[e("span",null,"DSF BPE Server")])],-1),U=s(`
Add Group/User Add group and user used by the DSF BPE java application. Ubuntu compatible commands below:
`,1),z=e("p",null,[t("Download and Extract Config Files"),e("br"),t(" Download prepared DSF BPE server config files and folder structure from")],-1),q=e("strong",null,"Test NUM-CODEX",-1),Q=e("br",null,null,-1),X={href:"https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_bpe_0_9_3.tar.gz",target:"_blank",rel:"noopener noreferrer"},Y=s(`
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
+
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
+
`,1),j=e("p",null,[e("em",null,[t("The "),e("code",null,"tar"),t(" command will unpack the config files at "),e("code",null,"/opt/bpe"),t(" assuming you changed into the "),e("code",null,"/opt"),t(" directory.")])],-1),J=e("li",null,[e("p",null,[t("Verify that the "),e("code",null,"bpe"),t(" system user or group can write into the following folders")]),e("ul",null,[e("li",null,[e("code",null,"/opt/bpe/log")])])],-1),ee=e("p",null,"Add certificates and keys",-1),te=s(`
Add the client certificate (certificate B) and the corresponding private-key to /opt/bpe/secrets/
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),he=e("p",null,"Modify the docker-compose.yml file and set environment variables to the appropriate values",-1),ue=e("strong",null,"services -> app -> environment:",-1),pe=e("strong",null,"ORG_HIGHMED_DSF_BPE_FHIR_SERVER_ORGANIZATION_IDENTIFIER_VALUE",-1),_e=e("em",null,"TODO_ORGANIZATION_IDENTIFIER",-1),me=e("br",null,null,-1),fe={href:"http://hs-heilbronn.de",target:"_blank",rel:"noopener noreferrer"},ge=e("li",null,[e("strong",null,"ORG_HIGHMED_DSF_BPE_FHIR_SERVER_BASE_URL"),t(": https://"),e("strong",null,"TODO_DSF_FRIR_SERVER_FQDN"),t("/fhir"),e("br"),t(" Set your FHIR servers external FQDN, e.g. "),e("code",null,"foo.bar.de"),t(" -> "),e("code",null,"https://foo.bar.de/fhir")],-1),be=e("li",null,[t("For additional environment variables, see "),e("a",{href:"configBpe"},"DSF 0.9.3 BPE Server configuration parameters")],-1),ve=s("
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)
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[...]
Stop the DSF BPE Server
Hit Ctrl-C to close log
Stop using: docker-compose stop
",3),ke=e("p",null,"Add the following DSF BPE process plugins, for instructions on how to configure the plugin, see release notes.",-1),Fe=e("strong",null,"num-codex / codex-processes-ap1",-1),Se=e("br",null,null,-1),De={href:"https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},Ee=e("br",null,null,-1),Re={href:"https://github.com/num-codex/codex-processes-ap1/wiki/Process-Deployment-and-Configuration-v0.7.0",target:"_blank",rel:"noopener noreferrer"},xe=e("strong",null,"highmed / highmed-processes / ping",-1),Ie=e("br",null,null,-1),we={href:"https://github.com/highmed/highmed-processes/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},ye=e("br",null,null,-1),He={href:"https://github.com/highmed/highmed-processes/wiki/Process-Ping-Deployment-v0.7.0",target:"_blank",rel:"noopener noreferrer"},Te=e("p",null,[e("em",null,[t("Notice: Jar-files within the folders "),e("code",null,"/opt/bpe/process"),t(" and "),e("code",null,"/opt/bpe/plugin"),t(" need to be readable by the linxux "),e("code",null,"bpe"),t(" user -> "),e("code",null,"chown root:bpe"),t(", "),e("code",null,"chmod 440")])],-1),Ce=e("li",null,[e("p",null,[t("Start the DSF BPE Server (with process plugins)"),e("br"),t(" Start using: "),e("code",null,"docker-compose up -d && docker-compose logs -f"),t(" (Ctrl-C will close log, but not stop container)")])],-1);function Ne(Pe,Oe){const r=n("ExternalLinkIcon");return l(),a("div",null,[c,e("p",null,[t("Both VMs need latest docker and docker-compose. For the latest install guide see "),e("a",h,[t("https://docs.docker.com/engine/install"),i(r)]),t(" and "),e("a",u,[t("https://docs.docker.com/compose/install"),i(r)])]),p,e("p",null,[t("docker-compose (warning: "),e("a",_,[t("2.17.3"),i(r)]),t(" might not be "),e("a",m,[t("latest"),i(r)]),t("):")]),f,e("p",null,[t("Here is a quick overview of the expected network setup. Connections to the fTTP, the terminology server and "),e("a",g,[t("simplifier.net"),i(r)]),t(" for validating GECCO FHIR resources as well as the local GECCO FHIR server are not listed:")]),b,e("ol",null,[v,e("li",null,[k,e("ul",null,[e("li",null,[F,t(" instance:"),S,e("a",D,[t("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_fhir_0_9_3.tar.gz"),i(r)]),E]),e("li",null,[R,t(" instance:"),x,e("a",I,[t("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_prod_fhir_0_9_3.tar.gz"),i(r)]),w])]),y]),H,e("li",null,[T,e("ul",null,[C,e("li",null,[N,e("ul",null,[P,e("li",null,[O,t(": "),G,A,t(" Set your Organizations DSF identifier, aka the shortest FQDN that resolves to the main homepage of the organization, e.g. "),e("a",B,[t("hs-heilbronn.de"),i(r)])]),M])])])]),V]),L,e("ol",null,[U,e("li",null,[z,e("ul",null,[e("li",null,[q,t(" instance:"),Q,e("a",X,[t("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_bpe_0_9_3.tar.gz"),i(r)]),Y]),e("li",null,[Z,t(" instance:"),K,e("a",W,[t("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_prod_bpe_0_9_3.tar.gz"),i(r)]),$])]),j]),J,e("li",null,[ee,e("ul",null,[te,e("li",null,[t("Add the CRR public-key used for asymmetrically encrypting the GECCO FHIR Bundles to "),re,e("ul",null,[ie,e("li",null,[t("You can download the 4096 Bit RSA PEM encoded public-key for "),e("ul",null,[e("li",null,[t("a "),se,t(" instance from:"),oe,e("a",ne,[t("https://keys.num-codex.de/crr_public-key-pre-prod.pem"),i(r)])]),e("li",null,[t("a "),le,t(" instance from:"),ae,e("a",de,[t("https://keys.num-codex.de/crr_public-key-prod.pem"),i(r)])])])])])])])]),ce,e("li",null,[he,e("ul",null,[e("li",null,[ue,e("ul",null,[e("li",null,[pe,t(": "),_e,me,t(" Set your Organizations DSF identifier, aka the shortest FQDN that resolves the main homepage of the organization, e.g. "),e("a",fe,[t("hs-heilbronn.de"),i(r)])]),ge,be])])])]),ve,e("li",null,[ke,e("ul",null,[e("li",null,[Fe,t(" version 0.7.0 or later:"),Se,e("a",De,[t("https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0"),i(r)]),Ee,t(" See "),e("a",Re,[t("NUM-CODEX: Process Deployment and Configuration"),i(r)]),t(" on how to deploy and configure the process plugin.")]),e("li",null,[xe,t(" version 0.7.0 or later:"),Ie,e("a",we,[t("https://github.com/highmed/highmed-processes/releases/tag/v0.7.0"),i(r)]),ye,t(" See "),e("a",He,[t("HiGHmed: Process Ping Deployment"),i(r)]),t(" on how to deploy and configure the process plugin.")])]),Te]),Ce])])}const Be=o(d,[["render",Ne],["__file","num-codexInstall.html.vue"]]),Me=JSON.parse('{"path":"/oldstable/releases/num-codexInstall.html","title":"","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Prerequisites","slug":"prerequisites","link":"#prerequisites","children":[{"level":3,"title":"Virtual Machines","slug":"virtual-machines","link":"#virtual-machines","children":[]},{"level":3,"title":"Docker / Docker-Compose","slug":"docker-docker-compose","link":"#docker-docker-compose","children":[]},{"level":3,"title":"Client/Server Certificates","slug":"client-server-certificates","link":"#client-server-certificates","children":[]},{"level":3,"title":"Network setup / Network access","slug":"network-setup-network-access","link":"#network-setup-network-access","children":[]},{"level":3,"title":"On-Boarding Excel Spreadsheet","slug":"on-boarding-excel-spreadsheet","link":"#on-boarding-excel-spreadsheet","children":[]}]},{"level":2,"title":"Setup","slug":"setup","link":"#setup","children":[{"level":3,"title":"Prepare Certificates","slug":"prepare-certificates","link":"#prepare-certificates","children":[]},{"level":3,"title":"DSF FHIR Server","slug":"dsf-fhir-server","link":"#dsf-fhir-server","children":[]},{"level":3,"title":"DSF BPE Server","slug":"dsf-bpe-server","link":"#dsf-bpe-server","children":[]}]}],"git":{"createdTime":1692783801000,"updatedTime":1696001091000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":6.12,"words":1837},"filePathRelative":"oldstable/releases/num-codexInstall.md","localizedDate":"August 23, 2023","excerpt":"
This setup guide uses pre-build docker images for DSF Version 0.9.3. This guide is not suitable for HiGHmed organizations. \\nIf you are a member of HiGHmed, see HiGHmed Install.
\\n
Prerequisites
\\n
Virtual Machines
\\n
\\n
DSF FHIR VM: min. 4 GB RAM, 4 vCPU, 20 GB HDD
\\n
DSF BPE VM: min. 4 GB RAM, 4 vCPU, 20 GB HDD
\\n
"}');export{Be as comp,Me as data};
diff --git a/assets/num.html-BDSaH26q.js b/assets/num.html-BDSaH26q.js
new file mode 100644
index 000000000..102e29588
--- /dev/null
+++ b/assets/num.html-BDSaH26q.js
@@ -0,0 +1 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as i,c as o,a as e,b as t,d as n}from"./app-kq9lCQfY.js";const c="/photos/learnmore/projects/num.png",l="/photos/learnmore/projects/ap1.png",h={},d={href:"https://www.netzwerk-universitaetsmedizin.de/",target:"_blank",rel:"noopener noreferrer"},p=e("div",{style:{"text-align":"center"}},[e("figure",null,[e("img",{src:c,alt:"",width:"370",height:"220",tabindex:"0",loading:"lazy"}),e("figcaption")])],-1),m={href:"https://www.netzwerk-universitaetsmedizin.de/projekte/codex#c599",target:"_blank",rel:"noopener noreferrer"},u={href:"https://www.netzwerk-universitaetsmedizin.de/projekte/num-rdp",target:"_blank",rel:"noopener noreferrer"},f=e("h3",{id:"the-data-transfer-process",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#the-data-transfer-process"},[e("span",null,"The Data Transfer Process")])],-1),_={href:"https://github.com/num-codex/codex-processes-ap1",target:"_blank",rel:"noopener noreferrer"},g=e("figure",null,[e("img",{src:l,alt:"",tabindex:"0",loading:"lazy"}),e("figcaption")],-1),w={href:"https://github.com/num-codex/codex-processes-ap1/wiki/Process-Description-v1.0.0.0",target:"_blank",rel:"noopener noreferrer"};function b(k,v){const r=s("ExternalLinkIcon");return i(),o("div",null,[e("p",null,[t("The "),e("a",d,[t("Network University Medicine"),n(r)]),t(" 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.'")]),p,e("p",null,[t("As part of the "),e("em",null,[e("a",m,[t("CODEX | COVID-19 Data Exchange Platform"),n(r)])]),t(" 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 "),e("a",u,[t("NUM RDP"),n(r)]),t(". All 36 university hospitals have installed the DSF to share Covid-19 research data.")]),f,e("p",null,[t("The "),e("a",_,[t("Data Transfer Process"),n(r)]),t(" is used in NUM CODEX to send data from a Data Integration Center (DIC), via the Gecco Transfer Hub (GTH), to the Central Research Repository (CRR). The infrastructure and communincation messages on which the process is based can be seen in the following figure. All organizations use the Data Sharing Framework (DSF) for deployment and execution of the process.")]),g,e("p",null,[t("More technical information can be found on "),e("a",w,[t("GitHub"),n(r)]),t(".")])])}const T=a(h,[["render",b],["__file","num.html.vue"]]),y=JSON.parse(`{"path":"/intro/use-cases/num.html","title":"Network University Medicine","lang":"en-US","frontmatter":{"title":"Network University Medicine","icon":"map"},"headers":[{"level":3,"title":"The Data Transfer Process","slug":"the-data-transfer-process","link":"#the-data-transfer-process","children":[]}],"git":{"createdTime":1691142763000,"updatedTime":1698661553000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.66,"words":199},"filePathRelative":"intro/use-cases/num.md","localizedDate":"August 4, 2023","excerpt":"
The Network University Medicine 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.'
"}`);export{T as comp,y as data};
diff --git a/assets/oidc.html-7KqJffk_.js b/assets/oidc.html-7KqJffk_.js
new file mode 100644
index 000000000..7be47b542
--- /dev/null
+++ b/assets/oidc.html-7KqJffk_.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as r,c,a as n,b as e,d as a,w as l,e as d}from"./app-kq9lCQfY.js";const u={},p=n("h2",{id:"overview",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#overview"},[n("span",null,"Overview")])],-1),_=n("p",null,[e("Access to the DSF FHIR server REST API and user interface can be configured via "),n("a",{href:"access-control"},"access control roles"),e(". By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},f={href:"https://datatracker.ietf.org/doc/html/rfc6750",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},m=n("p",{class:"hint-container-title"},"FHIR Reverse Proxy",-1),k=n("code",null,"optional",-1),R=d(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
To enable bearer token authentication, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN to true and specify the following parameter:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF FHIR server configuration parameter page.
For example the configuration parameter 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.
`,12);function D(b,g){const t=s("ExternalLinkIcon"),o=s("RouteLink");return r(),c("div",null,[p,_,n("p",null,[e("The DSF FHIR server supports "),n("a",h,[e("Authorization Code Flow"),a(t)]),e(" for the user interface as well as "),n("a",f,[e("Bearer Token Authentication"),a(t)]),e(" for the REST API. "),n("a",v,[e("Back-Channel Logout"),a(t)]),e(" is also supported.")]),n("div",E,[m,n("p",null,[e("The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.3.0/maintain/fhir/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[e("SSL_VERIFY_CLIENT")]),_:1}),e(" needs to be set to "),k,e(".")])]),R])}const T=i(u,[["render",D],["__file","oidc.html.vue"]]),C=JSON.parse('{"path":"/v1.3.0/maintain/fhir/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Bearer Token Authentication","slug":"bearer-token-authentication","link":"#bearer-token-authentication","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1696944513000,"updatedTime":1708517817000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.33,"words":400},"filePathRelative":"v1.3.0/maintain/fhir/oidc.md","localizedDate":"October 10, 2023","excerpt":"
Overview
\\n
Access to the DSF FHIR server REST API and user interface can be configured via access control roles. By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.
"}');export{T as comp,C as data};
diff --git a/assets/oidc.html-9DP6k1sI.js b/assets/oidc.html-9DP6k1sI.js
new file mode 100644
index 000000000..f54c0e44f
--- /dev/null
+++ b/assets/oidc.html-9DP6k1sI.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as r,c,a as n,b as e,d as a,w as l,e as d}from"./app-kq9lCQfY.js";const u={},p=n("h2",{id:"overview",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#overview"},[n("span",null,"Overview")])],-1),_=n("p",null,[e("Access to the DSF FHIR server REST API and user interface can be configured via "),n("a",{href:"access-control"},"access control roles"),e(". 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.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},f={href:"https://datatracker.ietf.org/doc/html/rfc6750",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},k=n("p",{class:"hint-container-title"},"FHIR Reverse Proxy",-1),m=n("code",null,"optional",-1),R=d(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
To enable bearer token authentication, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN to true and specify the following parameter:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF FHIR server configuration parameter page.
For example the configuration parameter 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.
`,12);function D(b,g){const t=s("ExternalLinkIcon"),o=s("RouteLink");return r(),c("div",null,[p,_,n("p",null,[e("The DSF FHIR server supports "),n("a",h,[e("Authorization Code Flow"),a(t)]),e(" for the user interface as well as "),n("a",f,[e("Bearer Token Authentication"),a(t)]),e(" for the REST API. "),n("a",v,[e("Back-Channel Logout"),a(t)]),e(" is also supported.")]),n("div",E,[k,n("p",null,[e("The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.5.2/maintain/fhir/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[e("SSL_VERIFY_CLIENT")]),_:1}),e(" needs to be set to "),m,e(".")])]),R])}const T=i(u,[["render",D],["__file","oidc.html.vue"]]),C=JSON.parse('{"path":"/v1.5.2/maintain/fhir/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Bearer Token Authentication","slug":"bearer-token-authentication","link":"#bearer-token-authentication","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.34,"words":401},"filePathRelative":"v1.5.2/maintain/fhir/oidc.md","localizedDate":"July 8, 2024","excerpt":"
Overview
\\n
Access to the DSF FHIR server REST API and user interface can be configured via access control roles. 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.
"}');export{T as comp,C as data};
diff --git a/assets/oidc.html-BCFFNQSE.js b/assets/oidc.html-BCFFNQSE.js
new file mode 100644
index 000000000..066645ce9
--- /dev/null
+++ b/assets/oidc.html-BCFFNQSE.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as r,c,a as n,b as e,d as a,w as l,e as d}from"./app-kq9lCQfY.js";const u={},p=n("h2",{id:"overview",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#overview"},[n("span",null,"Overview")])],-1),_=n("p",null,[e("Access to the DSF FHIR server REST API and user interface can be configured via "),n("a",{href:"access-control"},"access control roles"),e(". 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.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},f={href:"https://datatracker.ietf.org/doc/html/rfc6750",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},m=n("p",{class:"hint-container-title"},"FHIR Reverse Proxy",-1),k=n("code",null,"optional",-1),R=d(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
To enable bearer token authentication, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN to true and specify the following parameter:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF FHIR server configuration parameter page.
For example the configuration parameter 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.
`,12);function D(b,g){const t=s("ExternalLinkIcon"),o=s("RouteLink");return r(),c("div",null,[p,_,n("p",null,[e("The DSF FHIR server supports "),n("a",h,[e("Authorization Code Flow"),a(t)]),e(" for the user interface as well as "),n("a",f,[e("Bearer Token Authentication"),a(t)]),e(" for the REST API. "),n("a",v,[e("Back-Channel Logout"),a(t)]),e(" is also supported.")]),n("div",E,[m,n("p",null,[e("The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.5.0/maintain/fhir/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[e("SSL_VERIFY_CLIENT")]),_:1}),e(" needs to be set to "),k,e(".")])]),R])}const T=i(u,[["render",D],["__file","oidc.html.vue"]]),C=JSON.parse('{"path":"/v1.5.0/maintain/fhir/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Bearer Token Authentication","slug":"bearer-token-authentication","link":"#bearer-token-authentication","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1708419681000,"updatedTime":1708517817000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.34,"words":401},"filePathRelative":"v1.5.0/maintain/fhir/oidc.md","localizedDate":"February 20, 2024","excerpt":"
Overview
\\n
Access to the DSF FHIR server REST API and user interface can be configured via access control roles. 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.
"}');export{T as comp,C as data};
diff --git a/assets/oidc.html-BW3uDMyZ.js b/assets/oidc.html-BW3uDMyZ.js
new file mode 100644
index 000000000..5a5b24b86
--- /dev/null
+++ b/assets/oidc.html-BW3uDMyZ.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as r,c,a as n,b as e,d as a,w as l,e as d}from"./app-kq9lCQfY.js";const p={},u=n("h2",{id:"overview",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#overview"},[n("span",null,"Overview")])],-1),_=n("p",null,[e("Access to the DSF FHIR server REST API and user interface can be configured via "),n("a",{href:"access-control"},"access control roles"),e(". 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.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},f={href:"https://datatracker.ietf.org/doc/html/rfc6750",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},m=n("p",{class:"hint-container-title"},"FHIR Reverse Proxy",-1),k=n("code",null,"optional",-1),R=d(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
To enable bearer token authentication, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN to true and specify the following parameter:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF FHIR server configuration parameter page.
For example the configuration parameter 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.
`,12);function D(b,g){const t=s("ExternalLinkIcon"),o=s("RouteLink");return r(),c("div",null,[u,_,n("p",null,[e("The DSF FHIR server supports "),n("a",h,[e("Authorization Code Flow"),a(t)]),e(" for the user interface as well as "),n("a",f,[e("Bearer Token Authentication"),a(t)]),e(" for the REST API. "),n("a",v,[e("Back-Channel Logout"),a(t)]),e(" is also supported.")]),n("div",E,[m,n("p",null,[e("The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.5.1/maintain/fhir/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[e("SSL_VERIFY_CLIENT")]),_:1}),e(" needs to be set to "),k,e(".")])]),R])}const T=i(p,[["render",D],["__file","oidc.html.vue"]]),A=JSON.parse('{"path":"/v1.5.1/maintain/fhir/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Bearer Token Authentication","slug":"bearer-token-authentication","link":"#bearer-token-authentication","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.34,"words":401},"filePathRelative":"v1.5.1/maintain/fhir/oidc.md","localizedDate":"April 17, 2024","excerpt":"
Overview
\\n
Access to the DSF FHIR server REST API and user interface can be configured via access control roles. 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.
"}');export{T as comp,A as data};
diff --git a/assets/oidc.html-BYqZILbt.js b/assets/oidc.html-BYqZILbt.js
new file mode 100644
index 000000000..938c89d46
--- /dev/null
+++ b/assets/oidc.html-BYqZILbt.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as r,c,a as n,b as e,d as a,w as l,e as d}from"./app-kq9lCQfY.js";const p={},u=n("h2",{id:"overview",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#overview"},[n("span",null,"Overview")])],-1),_=n("p",null,[e("Access to the DSF FHIR server REST API and user interface can be configured via "),n("a",{href:"access-control"},"access control roles"),e(". 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.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},f={href:"https://datatracker.ietf.org/doc/html/rfc6750",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},k=n("p",{class:"hint-container-title"},"FHIR Reverse Proxy",-1),m=n("code",null,"optional",-1),R=d(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
To enable bearer token authentication, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN to true and specify the following parameter:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF FHIR server configuration parameter page.
For example the configuration parameter 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.
`,12);function D(b,g){const t=s("ExternalLinkIcon"),o=s("RouteLink");return r(),c("div",null,[u,_,n("p",null,[e("The DSF FHIR server supports "),n("a",h,[e("Authorization Code Flow"),a(t)]),e(" for the user interface as well as "),n("a",f,[e("Bearer Token Authentication"),a(t)]),e(" for the REST API. "),n("a",v,[e("Back-Channel Logout"),a(t)]),e(" is also supported.")]),n("div",E,[k,n("p",null,[e("The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/stable/maintain/fhir/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[e("SSL_VERIFY_CLIENT")]),_:1}),e(" needs to be set to "),m,e(".")])]),R])}const T=i(p,[["render",D],["__file","oidc.html.vue"]]),C=JSON.parse('{"path":"/stable/maintain/fhir/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Bearer Token Authentication","slug":"bearer-token-authentication","link":"#bearer-token-authentication","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":null,"updatedTime":null,"contributors":[]},"readingTime":{"minutes":1.34,"words":401},"filePathRelative":"stable/maintain/fhir/oidc.md","excerpt":"
Overview
\\n
Access to the DSF FHIR server REST API and user interface can be configured via access control roles. 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.
"}');export{T as comp,C as data};
diff --git a/assets/oidc.html-CXM5MBWF.js b/assets/oidc.html-CXM5MBWF.js
new file mode 100644
index 000000000..39d2514f9
--- /dev/null
+++ b/assets/oidc.html-CXM5MBWF.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as r,c,a as n,b as e,d as a,w as l,e as d}from"./app-kq9lCQfY.js";const u={},p=n("h2",{id:"overview",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#overview"},[n("span",null,"Overview")])],-1),_=n("p",null,[e("Access to the DSF FHIR server REST API and user interface can be configured via "),n("a",{href:"access-control"},"access control roles"),e(". By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},f={href:"https://datatracker.ietf.org/doc/html/rfc6750",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},m=n("p",{class:"hint-container-title"},"FHIR Reverse Proxy",-1),k=n("code",null,"optional",-1),R=d(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
To enable bearer token authentication, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN to true and specify the following parameter:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF FHIR server configuration parameter page.
For example the configuration parameter 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.
`,12);function D(b,g){const t=s("ExternalLinkIcon"),o=s("RouteLink");return r(),c("div",null,[p,_,n("p",null,[e("The DSF FHIR server supports "),n("a",h,[e("Authorization Code Flow"),a(t)]),e(" for the user interface as well as "),n("a",f,[e("Bearer Token Authentication"),a(t)]),e(" for the REST API. "),n("a",v,[e("Back-Channel Logout"),a(t)]),e(" is also supported.")]),n("div",E,[m,n("p",null,[e("The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.4.0/maintain/fhir/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[e("SSL_VERIFY_CLIENT")]),_:1}),e(" needs to be set to "),k,e(".")])]),R])}const T=i(u,[["render",D],["__file","oidc.html.vue"]]),C=JSON.parse('{"path":"/v1.4.0/maintain/fhir/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Bearer Token Authentication","slug":"bearer-token-authentication","link":"#bearer-token-authentication","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1702917645000,"updatedTime":1708517817000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.33,"words":400},"filePathRelative":"v1.4.0/maintain/fhir/oidc.md","localizedDate":"December 18, 2023","excerpt":"
Overview
\\n
Access to the DSF FHIR server REST API and user interface can be configured via access control roles. By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.
"}');export{T as comp,C as data};
diff --git a/assets/oidc.html-CZf70zLH.js b/assets/oidc.html-CZf70zLH.js
new file mode 100644
index 000000000..dd5a5feb2
--- /dev/null
+++ b/assets/oidc.html-CZf70zLH.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as r,c,a as n,b as e,d as a,w as l,e as d}from"./app-kq9lCQfY.js";const u={},p=n("h2",{id:"overview",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#overview"},[n("span",null,"Overview")])],-1),_=n("p",null,[e("Access to the DSF FHIR server REST API and user interface can be configured via "),n("a",{href:"access-control"},"access control roles"),e(". By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},f={href:"https://datatracker.ietf.org/doc/html/rfc6750",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},m=n("p",{class:"hint-container-title"},"FHIR Reverse Proxy",-1),k=n("code",null,"optional",-1),R=d(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
To enable bearer token authentication, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN to true and specify the following parameter:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF FHIR server configuration parameter page.
For example the configuration parameter 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.
`,12);function D(b,S){const t=s("ExternalLinkIcon"),o=s("RouteLink");return r(),c("div",null,[p,_,n("p",null,[e("The DSF FHIR server supports "),n("a",h,[e("Authorization Code Flow"),a(t)]),e(" for the user interface as well as "),n("a",f,[e("Bearer Token Authentication"),a(t)]),e(" for the REST API. "),n("a",v,[e("Back-Channel Logout"),a(t)]),e(" is also supported.")]),n("div",E,[m,n("p",null,[e("The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.2.0/maintain/fhir/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[e("SSL_VERIFY_CLIENT")]),_:1}),e(" needs to be set to "),k,e(".")])]),R])}const T=i(u,[["render",D],["__file","oidc.html.vue"]]),C=JSON.parse('{"path":"/v1.2.0/maintain/fhir/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Bearer Token Authentication","slug":"bearer-token-authentication","link":"#bearer-token-authentication","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1694544770000,"updatedTime":1708517817000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.33,"words":400},"filePathRelative":"v1.2.0/maintain/fhir/oidc.md","localizedDate":"September 12, 2023","excerpt":"
Overview
\\n
Access to the DSF FHIR server REST API and user interface can be configured via access control roles. By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.
"}');export{T as comp,C as data};
diff --git a/assets/oidc.html-CpxbdObG.js b/assets/oidc.html-CpxbdObG.js
new file mode 100644
index 000000000..abcbf441e
--- /dev/null
+++ b/assets/oidc.html-CpxbdObG.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as c,c as r,a as e,b as n,d as a,w as l,e as p}from"./app-kq9lCQfY.js";const d={},u=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),_=e("p",null,[n("Access to the DSF BPE server user interface can be configured via "),e("a",{href:"access-control"},"access control roles"),n(". 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.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},f=e("p",{class:"hint-container-title"},"BPE Reverse Proxy",-1),m=e("code",null,"optional",-1),k=p(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF BPE server configuration parameter page.
For example the configuration parameter 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.
`,9);function D(R,b){const t=s("ExternalLinkIcon"),o=s("RouteLink");return c(),r("div",null,[u,_,e("p",null,[n("The DSF BPE server supports "),e("a",h,[n("Authorization Code Flow"),a(t)]),n(" for the user interface. "),e("a",v,[n("Back-Channel Logout"),a(t)]),n(" is also supported.")]),e("div",E,[f,e("p",null,[n("The DSF BPE reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.5.1/maintain/bpe/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[n("SSL_VERIFY_CLIENT")]),_:1}),n(" needs to be set to "),m,n(".")])]),k])}const S=i(d,[["render",D],["__file","oidc.html.vue"]]),T=JSON.parse('{"path":"/v1.5.1/maintain/bpe/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.16,"words":347},"filePathRelative":"v1.5.1/maintain/bpe/oidc.md","localizedDate":"April 17, 2024","excerpt":"
Overview
\\n
Access to the DSF BPE server user interface can be configured via access control roles. 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.
\\n"}');export{S as comp,T as data};
diff --git a/assets/oidc.html-DDgGRVZ0.js b/assets/oidc.html-DDgGRVZ0.js
new file mode 100644
index 000000000..642dd8df9
--- /dev/null
+++ b/assets/oidc.html-DDgGRVZ0.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as r,c,a as n,b as e,d as a,w as l,e as d}from"./app-kq9lCQfY.js";const u={},p=n("h2",{id:"overview",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#overview"},[n("span",null,"Overview")])],-1),_=n("p",null,[e("Access to the DSF FHIR server REST API and user interface can be configured via "),n("a",{href:"access-control"},"access control roles"),e(". By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},f={href:"https://datatracker.ietf.org/doc/html/rfc6750",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},m=n("p",{class:"hint-container-title"},"FHIR Reverse Proxy",-1),k=n("code",null,"optional",-1),R=d(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
To enable bearer token authentication, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN to true and specify the following parameter:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF FHIR server configuration parameter page.
For example the configuration parameter 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.
`,12);function D(b,g){const t=s("ExternalLinkIcon"),o=s("RouteLink");return r(),c("div",null,[p,_,n("p",null,[e("The DSF FHIR server supports "),n("a",h,[e("Authorization Code Flow"),a(t)]),e(" for the user interface as well as "),n("a",f,[e("Bearer Token Authentication"),a(t)]),e(" for the REST API. "),n("a",v,[e("Back-Channel Logout"),a(t)]),e(" is also supported.")]),n("div",E,[m,n("p",null,[e("The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.3.2/maintain/fhir/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[e("SSL_VERIFY_CLIENT")]),_:1}),e(" needs to be set to "),k,e(".")])]),R])}const T=i(u,[["render",D],["__file","oidc.html.vue"]]),C=JSON.parse('{"path":"/v1.3.2/maintain/fhir/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Bearer Token Authentication","slug":"bearer-token-authentication","link":"#bearer-token-authentication","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1701710218000,"updatedTime":1708517817000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.33,"words":400},"filePathRelative":"v1.3.2/maintain/fhir/oidc.md","localizedDate":"December 4, 2023","excerpt":"
Overview
\\n
Access to the DSF FHIR server REST API and user interface can be configured via access control roles. By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.
"}');export{T as comp,C as data};
diff --git a/assets/oidc.html-DEex2PUu.js b/assets/oidc.html-DEex2PUu.js
new file mode 100644
index 000000000..fdc00c3c2
--- /dev/null
+++ b/assets/oidc.html-DEex2PUu.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as c,c as r,a as e,b as n,d as a,w as l,e as p}from"./app-kq9lCQfY.js";const d={},u=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),_=e("p",null,[n("Access to the DSF BPE server user interface can be configured via "),e("a",{href:"access-control"},"access control roles"),n(". 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.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},f=e("p",{class:"hint-container-title"},"BPE Reverse Proxy",-1),m=e("code",null,"optional",-1),k=p(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF BPE server configuration parameter page.
For example the configuration parameter 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.
`,9);function D(R,b){const t=s("ExternalLinkIcon"),o=s("RouteLink");return c(),r("div",null,[u,_,e("p",null,[n("The DSF BPE server supports "),e("a",h,[n("Authorization Code Flow"),a(t)]),n(" for the user interface. "),e("a",v,[n("Back-Channel Logout"),a(t)]),n(" is also supported.")]),e("div",E,[f,e("p",null,[n("The DSF BPE reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.5.2/maintain/bpe/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[n("SSL_VERIFY_CLIENT")]),_:1}),n(" needs to be set to "),m,n(".")])]),k])}const S=i(d,[["render",D],["__file","oidc.html.vue"]]),T=JSON.parse('{"path":"/v1.5.2/maintain/bpe/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.16,"words":347},"filePathRelative":"v1.5.2/maintain/bpe/oidc.md","localizedDate":"July 8, 2024","excerpt":"
Overview
\\n
Access to the DSF BPE server user interface can be configured via access control roles. 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.
\\n"}');export{S as comp,T as data};
diff --git a/assets/oidc.html-DPFGyyJT.js b/assets/oidc.html-DPFGyyJT.js
new file mode 100644
index 000000000..f8645d672
--- /dev/null
+++ b/assets/oidc.html-DPFGyyJT.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as r,c,a as n,b as e,d as a,w as l,e as d}from"./app-kq9lCQfY.js";const u={},p=n("h2",{id:"overview",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#overview"},[n("span",null,"Overview")])],-1),_=n("p",null,[e("Access to the DSF FHIR server REST API and user interface can be configured via "),n("a",{href:"access-control"},"access control roles"),e(". By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},f={href:"https://datatracker.ietf.org/doc/html/rfc6750",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},m=n("p",{class:"hint-container-title"},"FHIR Reverse Proxy",-1),k=n("code",null,"optional",-1),R=d(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
To enable bearer token authentication, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN to true and specify the following parameter:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF FHIR server configuration parameter page.
For example the configuration parameter 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.
`,12);function D(b,g){const t=s("ExternalLinkIcon"),o=s("RouteLink");return r(),c("div",null,[p,_,n("p",null,[e("The DSF FHIR server supports "),n("a",h,[e("Authorization Code Flow"),a(t)]),e(" for the user interface as well as "),n("a",f,[e("Bearer Token Authentication"),a(t)]),e(" for the REST API. "),n("a",v,[e("Back-Channel Logout"),a(t)]),e(" is also supported.")]),n("div",E,[m,n("p",null,[e("The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.3.1/maintain/fhir/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[e("SSL_VERIFY_CLIENT")]),_:1}),e(" needs to be set to "),k,e(".")])]),R])}const T=i(u,[["render",D],["__file","oidc.html.vue"]]),C=JSON.parse('{"path":"/v1.3.1/maintain/fhir/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Bearer Token Authentication","slug":"bearer-token-authentication","link":"#bearer-token-authentication","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1698748420000,"updatedTime":1708517817000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.33,"words":400},"filePathRelative":"v1.3.1/maintain/fhir/oidc.md","localizedDate":"October 31, 2023","excerpt":"
Overview
\\n
Access to the DSF FHIR server REST API and user interface can be configured via access control roles. By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.
"}');export{T as comp,C as data};
diff --git a/assets/oidc.html-DVMEndoa.js b/assets/oidc.html-DVMEndoa.js
new file mode 100644
index 000000000..846fea425
--- /dev/null
+++ b/assets/oidc.html-DVMEndoa.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as c,c as r,a as e,b as n,d as a,w as l,e as p}from"./app-kq9lCQfY.js";const d={},u=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),_=e("p",null,[n("Access to the DSF BPE server user interface can be configured via "),e("a",{href:"access-control"},"access control roles"),n(". 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.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},f=e("p",{class:"hint-container-title"},"BPE Reverse Proxy",-1),m=e("code",null,"optional",-1),k=p(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF BPE server configuration parameter page.
For example the configuration parameter 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.
`,9);function D(b,R){const t=s("ExternalLinkIcon"),o=s("RouteLink");return c(),r("div",null,[u,_,e("p",null,[n("The DSF BPE server supports "),e("a",h,[n("Authorization Code Flow"),a(t)]),n(" for the user interface. "),e("a",v,[n("Back-Channel Logout"),a(t)]),n(" is also supported.")]),e("div",E,[f,e("p",null,[n("The DSF BPE reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/stable/maintain/bpe/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[n("SSL_VERIFY_CLIENT")]),_:1}),n(" needs to be set to "),m,n(".")])]),k])}const S=i(d,[["render",D],["__file","oidc.html.vue"]]),T=JSON.parse('{"path":"/stable/maintain/bpe/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":null,"updatedTime":null,"contributors":[]},"readingTime":{"minutes":1.16,"words":347},"filePathRelative":"stable/maintain/bpe/oidc.md","excerpt":"
Overview
\\n
Access to the DSF BPE server user interface can be configured via access control roles. 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.
\\n"}');export{S as comp,T as data};
diff --git a/assets/oidc.html-DdP4mKTW.js b/assets/oidc.html-DdP4mKTW.js
new file mode 100644
index 000000000..e9f14f489
--- /dev/null
+++ b/assets/oidc.html-DdP4mKTW.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as r,c,a as n,b as e,d as a,w as l,e as d}from"./app-kq9lCQfY.js";const u={},p=n("h2",{id:"overview",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#overview"},[n("span",null,"Overview")])],-1),_=n("p",null,[e("Access to the DSF FHIR server REST API and user interface can be configured via "),n("a",{href:"access-control"},"access control roles"),e(". By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},f={href:"https://datatracker.ietf.org/doc/html/rfc6750",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},k=n("p",{class:"hint-container-title"},"FHIR Reverse Proxy",-1),m=n("code",null,"optional",-1),R=d(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
To enable bearer token authentication, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_BEARER_TOKEN to true and specify the following parameter:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF FHIR server configuration parameter page.
For example the configuration parameter 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.
`,12);function D(b,g){const t=s("ExternalLinkIcon"),o=s("RouteLink");return r(),c("div",null,[p,_,n("p",null,[e("The DSF FHIR server supports "),n("a",h,[e("Authorization Code Flow"),a(t)]),e(" for the user interface as well as "),n("a",f,[e("Bearer Token Authentication"),a(t)]),e(" for the REST API. "),n("a",v,[e("Back-Channel Logout"),a(t)]),e(" is also supported.")]),n("div",E,[k,n("p",null,[e("The DSF FHIR reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.1.0/maintain/fhir/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[e("SSL_VERIFY_CLIENT")]),_:1}),e(" needs to be set to "),m,e(".")])]),R])}const T=i(u,[["render",D],["__file","oidc.html.vue"]]),A=JSON.parse('{"path":"/v1.1.0/maintain/fhir/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Bearer Token Authentication","slug":"bearer-token-authentication","link":"#bearer-token-authentication","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1693251017000,"updatedTime":1693415162000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":1.33,"words":400},"filePathRelative":"v1.1.0/maintain/fhir/oidc.md","localizedDate":"August 28, 2023","excerpt":"
Overview
\\n
Access to the DSF FHIR server REST API and user interface can be configured via access control roles. By default users are authenticated using X.509 client certificates, but authentication for local users via OAuth 2.0 OpenID Connect can also be enabled.
"}');export{T as comp,A as data};
diff --git a/assets/oidc.html-DxM6kWsg.js b/assets/oidc.html-DxM6kWsg.js
new file mode 100644
index 000000000..cc3ee5697
--- /dev/null
+++ b/assets/oidc.html-DxM6kWsg.js
@@ -0,0 +1,21 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as c,c as r,a as e,b as n,d as a,w as l,e as p}from"./app-kq9lCQfY.js";const d={},u=e("h2",{id:"overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#overview"},[e("span",null,"Overview")])],-1),_=e("p",null,[n("Access to the DSF BPE server user interface can be configured via "),e("a",{href:"access-control"},"access control roles"),n(". 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.")],-1),h={href:"https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth",target:"_blank",rel:"noopener noreferrer"},v={href:"https://openid.net/specs/openid-connect-backchannel-1_0.html",target:"_blank",rel:"noopener noreferrer"},E={class:"hint-container tip"},f=e("p",{class:"hint-container-title"},"BPE Reverse Proxy",-1),m=e("code",null,"optional",-1),k=p(`
To enable authentication via OpenID Connect authorization code flow, set the configuration parameter DEV_DSF_SERVER_AUTH_OIDC_AUTHORIZATION_CODE_FLOW to true and specify the following parameters:
A number of additional DEV_DSF_SERVER_AUTH_OIDC ... configuration parameter are specify on the DSF BPE server configuration parameter page.
For example the configuration parameter 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.
`,9);function D(R,b){const t=s("ExternalLinkIcon"),o=s("RouteLink");return c(),r("div",null,[u,_,e("p",null,[n("The DSF BPE server supports "),e("a",h,[n("Authorization Code Flow"),a(t)]),n(" for the user interface. "),e("a",v,[n("Back-Channel Logout"),a(t)]),n(" is also supported.")]),e("div",E,[f,e("p",null,[n("The DSF BPE reverse proxy requires client certificates by default. To use OpenID Connect authentication the configuration parameter "),a(o,{to:"/v1.5.0/maintain/bpe/configuration/reverseproxy.html#ssl-verify-client"},{default:l(()=>[n("SSL_VERIFY_CLIENT")]),_:1}),n(" needs to be set to "),m,n(".")])]),k])}const S=i(d,[["render",D],["__file","oidc.html.vue"]]),T=JSON.parse('{"path":"/v1.5.0/maintain/bpe/oidc.html","title":"OpenID Connect","lang":"en-US","frontmatter":{"title":"OpenID Connect","icon":"config"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Authorization Code Flow","slug":"authorization-code-flow","link":"#authorization-code-flow","children":[]},{"level":2,"title":"Additional ODIC Configuration Parameter","slug":"additional-odic-configuration-parameter","link":"#additional-odic-configuration-parameter","children":[]},{"level":2,"title":"Example","slug":"example","link":"#example","children":[]}],"git":{"createdTime":1708517817000,"updatedTime":1708517817000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.16,"words":347},"filePathRelative":"v1.5.0/maintain/bpe/oidc.md","localizedDate":"February 21, 2024","excerpt":"
Overview
\\n
Access to the DSF BPE server user interface can be configured via access control roles. 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.
\\n"}');export{S as comp,T as data};
diff --git a/assets/partners.html-B-l0TZk2.js b/assets/partners.html-B-l0TZk2.js
new file mode 100644
index 000000000..029efdd73
--- /dev/null
+++ b/assets/partners.html-B-l0TZk2.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as s,c as a,a as e,b as i,d as n}from"./app-kq9lCQfY.js";const l={},c=e("p",null,"Funded for further development of the Data Sharing Framework are:",-1),d=e("h2",{id:"heilbronn-university-of-applied-sciences-gecko-institute",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#heilbronn-university-of-applied-sciences-gecko-institute"},[e("span",null,"Heilbronn University of Applied Sciences | Gecko Institute")])],-1),h={href:"https://www.hs-heilbronn.de/de/gecko",target:"_blank",rel:"noopener noreferrer"},f={href:"https://www.hs-heilbronn.de/de",target:"_blank",rel:"noopener noreferrer"},u=e("h2",{id:"university-of-heidelberg-institute-of-medical-informatics",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#university-of-heidelberg-institute-of-medical-informatics"},[e("span",null,"University of Heidelberg | Institute of Medical Informatics")])],-1),m={href:"https://www.klinikum.uni-heidelberg.de/kliniken-institute/institute/institut-fuer-medizinische-informatik",target:"_blank",rel:"noopener noreferrer"},p=e("ul",null,[e("li",null,"in the Medical Data Integration Center (MeDIC),"),e("li",null,"structured acquisition and transformation of biomedical data,"),e("li",null,"medical information systems and data models"),e("li",null,"and much more.")],-1),g=e("h2",{id:"university-of-leipzig-life-institute",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#university-of-leipzig-life-institute"},[e("span",null,"University of Leipzig | LIFE Institute")])],-1),b={href:"https://www.uniklinikum-leipzig.de/einrichtungen/life/",target:"_blank",rel:"noopener noreferrer"};function _(v,k){const t=o("ExternalLinkIcon");return s(),a("div",null,[c,d,e("p",null,[i("The "),e("a",h,[i("GECKO Institute"),n(t)]),i(" is a research institution of "),e("a",f,[i("Heilbronn University of Applied Sciences"),n(t)]),i(" 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.")]),u,e("p",null,[i("The "),e("a",m,[i("Institute of Medical Informatics"),n(t)]),i(" belongs to the University of Heidelberg. The scientific focus of the institute is on structured patient data, e.g.")]),p,g,e("p",null,[i("The "),e("a",b,[i("LIFE Institute"),n(t)]),i(" of the University of Leipzig manages collaborative and follow-on projects in the fields of medicine, public health, medical informatics, and biobanking.")])])}const I=r(l,[["render",_],["__file","partners.html.vue"]]),S=JSON.parse(`{"path":"/about/learnmore/partners.html","title":"Partners","lang":"en-US","frontmatter":{"title":"Partners","icon":"proxy"},"headers":[{"level":2,"title":"Heilbronn University of Applied Sciences | Gecko Institute","slug":"heilbronn-university-of-applied-sciences-gecko-institute","link":"#heilbronn-university-of-applied-sciences-gecko-institute","children":[]},{"level":2,"title":"University of Heidelberg | Institute of Medical Informatics","slug":"university-of-heidelberg-institute-of-medical-informatics","link":"#university-of-heidelberg-institute-of-medical-informatics","children":[]},{"level":2,"title":"University of Leipzig | LIFE Institute","slug":"university-of-leipzig-life-institute","link":"#university-of-leipzig-life-institute","children":[]}],"git":{"createdTime":1678951140000,"updatedTime":1683802770000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2},{"name":"simon","email":"smoeding@stu.hs-heilbronn.de","commits":2},{"name":"simonmoedinger","email":"simonmoedi@web.de","commits":2}]},"readingTime":{"minutes":0.59,"words":176},"filePathRelative":"about/learnmore/partners.md","localizedDate":"March 16, 2023","excerpt":"
Funded for further development of the Data Sharing Framework are:
\\n
Heilbronn University of Applied Sciences | Gecko Institute
\\n
The GECKO Institute is a research institution of Heilbronn University of Applied Sciences 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.
"}`);export{I as comp,S as data};
diff --git a/assets/plugin-vue_export-helper-DlAUqK2U.js b/assets/plugin-vue_export-helper-DlAUqK2U.js
new file mode 100644
index 000000000..718edd339
--- /dev/null
+++ b/assets/plugin-vue_export-helper-DlAUqK2U.js
@@ -0,0 +1 @@
+const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _};
diff --git a/assets/prerequisites.html-BOHWoSg0.js b/assets/prerequisites.html-BOHWoSg0.js
new file mode 100644
index 000000000..2e93daaa7
--- /dev/null
+++ b/assets/prerequisites.html-BOHWoSg0.js
@@ -0,0 +1,19 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as c,c as d,a as e,b as n,d as a,w as o,e as l}from"./app-kq9lCQfY.js";const p={},u=e("p",null,"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.",-1),h=e("h3",{id:"git",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#git"},[e("span",null,"git")])],-1),m=e("hr",null,null,-1),g={href:"https://git-scm.com/",target:"_blank",rel:"noopener noreferrer"},k={href:"https://git-scm.com/book/en/v2/Getting-Started-Installing-Git",target:"_blank",rel:"noopener noreferrer"},v={href:"https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository",target:"_blank",rel:"noopener noreferrer"},b=e("h3",{id:"java-11",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#java-11"},[e("span",null,"Java 11")])],-1),f=e("hr",null,null,-1),_={href:"https://www.java.com/de/",target:"_blank",rel:"noopener noreferrer"},w=e("h3",{id:"maven-3-8",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#maven-3-8"},[e("span",null,"Maven 3.8")])],-1),x=e("hr",null,null,-1),E=e("p",null,"When implementing DSF processes, we use Maven 3.8 to manage the software project's build, reporting and documentation workflow.",-1),y={href:"https://maven.apache.org/install.html",target:"_blank",rel:"noopener noreferrer"},M={href:"https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html",target:"_blank",rel:"noopener noreferrer"},D=e("h3",{id:"github-packages",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#github-packages"},[e("span",null,"GitHub Packages")])],-1),I=e("code",{class:"read:packages"},"read:packages",-1),T={href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token",target:"_blank",rel:"noopener noreferrer"},q=l(`
After that, add the following server 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 read:packages scope.
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".
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
For the development of the processes we recommend the use of an IDE, e.g. Eclipse or IntelliJ:
`,6),A={href:"https://wiki.eclipse.org/Eclipse/Installation",target:"_blank",rel:"noopener noreferrer"},P={href:"https://www.jetbrains.com/help/idea/installation-guide.html",target:"_blank",rel:"noopener noreferrer"},j=e("h3",{id:"bpmn-editor",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#bpmn-editor"},[e("span",null,"BPMN Editor")])],-1),B=e("hr",null,null,-1),H=e("p",null,"To simplify modeling of BPMN processes, we recommend a graphical editor, e.g. the Camunda Modeler:",-1),R={href:"https://camunda.com/de/download/modeler/",target:"_blank",rel:"noopener noreferrer"},L=e("h3",{id:"hardware",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hardware"},[e("span",null,"Hardware")])],-1),C=e("hr",null,null,-1),z=e("p",null,"The minimum hardware requirements to run all simulated organizations as part of the Docker test-setup is 16 GB of RAM.",-1),O=e("hr",null,null,-1);function F(K,V){const s=i("ExternalLinkIcon"),t=i("RouteLink");return c(),d("div",null,[u,h,m,e("p",null,[e("a",g,[n("git"),a(s)]),n(" is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.")]),e("ul",null,[e("li",null,[n("An installation guide for Linux, Mac and Windows can be found here: "),e("a",k,[n("installation guide"),a(s)])]),e("li",null,[n("The most basic git CLI commands are described here: "),e("a",v,[n("commands"),a(s)])])]),b,f,e("p",null,[n("Processes for the DSF are written using the "),e("a",_,[n("Java"),a(s)]),n(" programming language in version 11. Various open source releases of the Java Developer Kit (JDK) 11 exist, you are free in your choice.")]),w,x,E,e("ul",null,[e("li",null,[n("An installation guide for Maven 3.8 can be found here: "),e("a",y,[n("installation guide"),a(s)])]),e("li",null,[n("The most important maven commands are described here: "),e("a",M,[n("commands"),a(s)])])]),D,e("p",null,[n("In order to download DSF packages from the GitHub Package Registry using Maven you need a personal GitHub access token with scope "),I,n(". This "),e("a",T,[n("GitHub documentation"),a(s)]),n(" shows you how to generate one.")]),q,e("ul",null,[e("li",null,[n("An installation guide for Docker and docker-compose can be found here: "),e("a",G,[n("installation guide"),a(s)])]),e("li",null,[n("The most important Docker commands are described here: "),e("a",N,[n("Docker commands"),a(s)])]),e("li",null,[n("An overview of docker-compose commands are described here: "),e("a",S,[n("docker-compose commands"),a(s)])])]),J,e("ul",null,[e("li",null,[n("An installation guide for Eclipse can be found here: "),e("a",A,[n("Eclipse installation guide"),a(s)])]),e("li",null,[n("An installation guide for IntelliJ can be found here: "),e("a",P,[n("IntelliJ installation guide"),a(s)])])]),j,B,H,e("ul",null,[e("li",null,[n("An installation guide for the Camunda Modeler can be found here: "),e("a",R,[n("installation guide"),a(s)])])]),L,C,z,O,e("p",null,[n("Prerequisites | "),a(t,{to:"/oldstable/tutorial/exercise1-simpleProcess.html"},{default:o(()=>[n("Exercise 1")]),_:1}),n(" | "),a(t,{to:"/oldstable/tutorial/exercise11-processDebugging.html"},{default:o(()=>[n("Exercise 1.1")]),_:1}),n(" | "),a(t,{to:"/oldstable/tutorial/exercise2-inputParameters.html"},{default:o(()=>[n("Exercise 2")]),_:1}),n(" | "),a(t,{to:"/oldstable/tutorial/exercise3-messageEvents.html"},{default:o(()=>[n("Exercise 3")]),_:1}),n(" | "),a(t,{to:"/oldstable/tutorial/exercise4-exclusiveGateways.html"},{default:o(()=>[n("Exercise 4")]),_:1}),n(" | "),a(t,{to:"/oldstable/tutorial/exercise5-eventBasedGateways.html"},{default:o(()=>[n("Exercise 5")]),_:1})])])}const X=r(p,[["render",F],["__file","prerequisites.html.vue"]]),Q=JSON.parse('{"path":"/oldstable/tutorial/prerequisites.html","title":"Prerequisites","lang":"en-US","frontmatter":{"title":"Prerequisites","icon":"slides"},"headers":[{"level":3,"title":"git","slug":"git","link":"#git","children":[]},{"level":3,"title":"Java 11","slug":"java-11","link":"#java-11","children":[]},{"level":3,"title":"Maven 3.8","slug":"maven-3-8","link":"#maven-3-8","children":[]},{"level":3,"title":"GitHub Packages","slug":"github-packages","link":"#github-packages","children":[]},{"level":3,"title":"Docker and docker-compose","slug":"docker-and-docker-compose","link":"#docker-and-docker-compose","children":[]},{"level":3,"title":"Java IDE","slug":"java-ide","link":"#java-ide","children":[]},{"level":3,"title":"BPMN Editor","slug":"bpmn-editor","link":"#bpmn-editor","children":[]},{"level":3,"title":"Hardware","slug":"hardware","link":"#hardware","children":[]}],"git":{"createdTime":1692783801000,"updatedTime":1692786258000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.01,"words":603},"filePathRelative":"oldstable/tutorial/prerequisites.md","localizedDate":"August 23, 2023","excerpt":"
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.
\\n
git
\\n\\n
git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
"}');export{X as comp,Q as data};
diff --git a/assets/process-plugins-advanced.html-4Prol2h5.js b/assets/process-plugins-advanced.html-4Prol2h5.js
new file mode 100644
index 000000000..6b477901e
--- /dev/null
+++ b/assets/process-plugins-advanced.html-4Prol2h5.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as n}from"./app-kq9lCQfY.js";const i={};function t(a,o){return s(),n("div")}const d=e(i,[["render",t],["__file","process-plugins-advanced.html.vue"]]),m=JSON.parse('{"path":"/stable/process-plugins-advanced.html","title":"Process Plugins Advanced","lang":"en-US","frontmatter":{"title":"Process Plugins Advanced","icon":"info"},"headers":[],"git":{"createdTime":1690473388000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"stable/process-plugins-advanced.md","localizedDate":"July 27, 2023","excerpt":""}');export{d as comp,m as data};
diff --git a/assets/process-plugins-advanced.html-BAq1SVRv.js b/assets/process-plugins-advanced.html-BAq1SVRv.js
new file mode 100644
index 000000000..133c72717
--- /dev/null
+++ b/assets/process-plugins-advanced.html-BAq1SVRv.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c}from"./app-kq9lCQfY.js";const n={};function t(i,a){return s(),c("div")}const d=e(n,[["render",t],["__file","process-plugins-advanced.html.vue"]]),m=JSON.parse('{"path":"/v1.4.0/process-plugins-advanced.html","title":"Process Plugins Advanced","lang":"en-US","frontmatter":{"title":"Process Plugins Advanced","icon":"info"},"headers":[],"git":{"createdTime":1702917645000,"updatedTime":1702917645000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.4.0/process-plugins-advanced.md","localizedDate":"December 18, 2023","excerpt":""}');export{d as comp,m as data};
diff --git a/assets/process-plugins-advanced.html-BC3FU9gh.js b/assets/process-plugins-advanced.html-BC3FU9gh.js
new file mode 100644
index 000000000..7b55325c4
--- /dev/null
+++ b/assets/process-plugins-advanced.html-BC3FU9gh.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as t}from"./app-kq9lCQfY.js";const n={};function c(i,a){return s(),t("div")}const d=e(n,[["render",c],["__file","process-plugins-advanced.html.vue"]]),m=JSON.parse('{"path":"/v1.2.0/process-plugins-advanced.html","title":"Process Plugins Advanced","lang":"en-US","frontmatter":{"title":"Process Plugins Advanced","icon":"info"},"headers":[],"git":{"createdTime":1694544770000,"updatedTime":1694544770000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.2.0/process-plugins-advanced.md","localizedDate":"September 12, 2023","excerpt":""}');export{d as comp,m as data};
diff --git a/assets/process-plugins-advanced.html-BUm0RhL8.js b/assets/process-plugins-advanced.html-BUm0RhL8.js
new file mode 100644
index 000000000..141aa9caf
--- /dev/null
+++ b/assets/process-plugins-advanced.html-BUm0RhL8.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as t}from"./app-kq9lCQfY.js";const c={};function n(i,o){return s(),t("div")}const d=e(c,[["render",n],["__file","process-plugins-advanced.html.vue"]]),l=JSON.parse('{"path":"/v1.3.0/process-plugins-advanced.html","title":"Process Plugins Advanced","lang":"en-US","frontmatter":{"title":"Process Plugins Advanced","icon":"info"},"headers":[],"git":{"createdTime":1696944513000,"updatedTime":1696944513000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.3.0/process-plugins-advanced.md","localizedDate":"October 10, 2023","excerpt":""}');export{d as comp,l as data};
diff --git a/assets/process-plugins-advanced.html-BfqgRQbf.js b/assets/process-plugins-advanced.html-BfqgRQbf.js
new file mode 100644
index 000000000..6fa3ab403
--- /dev/null
+++ b/assets/process-plugins-advanced.html-BfqgRQbf.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c}from"./app-kq9lCQfY.js";const n={};function t(i,a){return s(),c("div")}const d=e(n,[["render",t],["__file","process-plugins-advanced.html.vue"]]),m=JSON.parse('{"path":"/v1.3.2/process-plugins-advanced.html","title":"Process Plugins Advanced","lang":"en-US","frontmatter":{"title":"Process Plugins Advanced","icon":"info"},"headers":[],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.3.2/process-plugins-advanced.md","localizedDate":"December 4, 2023","excerpt":""}');export{d as comp,m as data};
diff --git a/assets/process-plugins-advanced.html-CyU9Nv_o.js b/assets/process-plugins-advanced.html-CyU9Nv_o.js
new file mode 100644
index 000000000..812f7593b
--- /dev/null
+++ b/assets/process-plugins-advanced.html-CyU9Nv_o.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as n}from"./app-kq9lCQfY.js";const t={};function c(a,i){return s(),n("div")}const d=e(t,[["render",c],["__file","process-plugins-advanced.html.vue"]]),l=JSON.parse('{"path":"/v1.5.0/process-plugins-advanced.html","title":"Process Plugins Advanced","lang":"en-US","frontmatter":{"title":"Process Plugins Advanced","icon":"info"},"headers":[],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.5.0/process-plugins-advanced.md","localizedDate":"February 20, 2024","excerpt":""}');export{d as comp,l as data};
diff --git a/assets/process-plugins-advanced.html-D0pCDuaN.js b/assets/process-plugins-advanced.html-D0pCDuaN.js
new file mode 100644
index 000000000..93abf5556
--- /dev/null
+++ b/assets/process-plugins-advanced.html-D0pCDuaN.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as t}from"./app-kq9lCQfY.js";const n={};function c(i,a){return s(),t("div")}const d=e(n,[["render",c],["__file","process-plugins-advanced.html.vue"]]),l=JSON.parse('{"path":"/v1.0.0/process-plugins-advanced.html","title":"Process Plugins Advanced","lang":"en-US","frontmatter":{"title":"Process Plugins Advanced","icon":"info"},"headers":[],"git":{"createdTime":1692708510000,"updatedTime":1692708510000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.0.0/process-plugins-advanced.md","localizedDate":"August 22, 2023","excerpt":""}');export{d as comp,l as data};
diff --git a/assets/process-plugins-advanced.html-D1AIXOF4.js b/assets/process-plugins-advanced.html-D1AIXOF4.js
new file mode 100644
index 000000000..56dcb7186
--- /dev/null
+++ b/assets/process-plugins-advanced.html-D1AIXOF4.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as n,c as s}from"./app-kq9lCQfY.js";const t={};function a(c,o){return n(),s("div")}const d=e(t,[["render",a],["__file","process-plugins-advanced.html.vue"]]),l=JSON.parse('{"path":"/v1.5.2/process-plugins-advanced.html","title":"Process Plugins Advanced","lang":"en-US","frontmatter":{"title":"Process Plugins Advanced","icon":"info"},"headers":[],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.5.2/process-plugins-advanced.md","localizedDate":"July 8, 2024","excerpt":""}');export{d as comp,l as data};
diff --git a/assets/process-plugins-advanced.html-D6ZVnnoI.js b/assets/process-plugins-advanced.html-D6ZVnnoI.js
new file mode 100644
index 000000000..543431594
--- /dev/null
+++ b/assets/process-plugins-advanced.html-D6ZVnnoI.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as t}from"./app-kq9lCQfY.js";const c={};function n(i,o){return s(),t("div")}const d=e(c,[["render",n],["__file","process-plugins-advanced.html.vue"]]),l=JSON.parse('{"path":"/v1.3.1/process-plugins-advanced.html","title":"Process Plugins Advanced","lang":"en-US","frontmatter":{"title":"Process Plugins Advanced","icon":"info"},"headers":[],"git":{"createdTime":1698748420000,"updatedTime":1698748420000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.3.1/process-plugins-advanced.md","localizedDate":"October 31, 2023","excerpt":""}');export{d as comp,l as data};
diff --git a/assets/process-plugins-advanced.html-Dw-obtVz.js b/assets/process-plugins-advanced.html-Dw-obtVz.js
new file mode 100644
index 000000000..f1a0042e5
--- /dev/null
+++ b/assets/process-plugins-advanced.html-Dw-obtVz.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as n}from"./app-kq9lCQfY.js";const t={};function c(i,a){return s(),n("div")}const d=e(t,[["render",c],["__file","process-plugins-advanced.html.vue"]]),l=JSON.parse('{"path":"/v1.5.1/process-plugins-advanced.html","title":"Process Plugins Advanced","lang":"en-US","frontmatter":{"title":"Process Plugins Advanced","icon":"info"},"headers":[],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.5.1/process-plugins-advanced.md","localizedDate":"April 17, 2024","excerpt":""}');export{d as comp,l as data};
diff --git a/assets/process-plugins-advanced.html-W6uvf7xk.js b/assets/process-plugins-advanced.html-W6uvf7xk.js
new file mode 100644
index 000000000..a58eb21dd
--- /dev/null
+++ b/assets/process-plugins-advanced.html-W6uvf7xk.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as s,c as t}from"./app-kq9lCQfY.js";const n={};function c(i,a){return s(),t("div")}const d=e(n,[["render",c],["__file","process-plugins-advanced.html.vue"]]),l=JSON.parse('{"path":"/v1.1.0/process-plugins-advanced.html","title":"Process Plugins Advanced","lang":"en-US","frontmatter":{"title":"Process Plugins Advanced","icon":"info"},"headers":[],"git":{"createdTime":1692790324000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"v1.1.0/process-plugins-advanced.md","localizedDate":"August 23, 2023","excerpt":""}');export{d as comp,l as data};
diff --git a/assets/process-plugins.html-DS2-s-JK.js b/assets/process-plugins.html-DS2-s-JK.js
new file mode 100644
index 000000000..1c37fc392
--- /dev/null
+++ b/assets/process-plugins.html-DS2-s-JK.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as r,c as l,a as e,b as s,d as o,e as n}from"./app-kq9lCQfY.js";const p="/photos/info/plugins/bpmn-example.png",c="/photos/info/use-cases/ping-pong.png",g={},h=n('
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 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.
The pong process is used to send a response during the connection test to the requesting organization. This subprocess performs the following steps:
Receive ping message from requesting organizations
Send pong message to requesting organizations
Log status of ping/pong message
Log errors if any occur
',11);function P(_,x){const i=a("ExternalLinkIcon");return r(),l("div",null,[h,e("p",null,[s("BPMN models can be created with "),e("a",d,[s("Camunda Modeler"),o(i)]),s(". 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 "),u,s(".")]),m,f,e("p",null,[s("The "),e("a",b,[s("ping process plugin"),o(i)]),s(" 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.")]),v])}const T=t(g,[["render",P],["__file","process-plugins.html.vue"]]),k=JSON.parse('{"path":"/intro/info/process-plugins.html","title":"Process Plugins","lang":"en-US","frontmatter":{"title":"Process Plugins","icon":"plugin"},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"BPMN: Example","slug":"bpmn-example","link":"#bpmn-example","children":[]},{"level":2,"title":"Ping Pong Process","slug":"ping-pong-process","link":"#ping-pong-process","children":[{"level":3,"title":"Autostart Ping Process","slug":"autostart-ping-process","link":"#autostart-ping-process","children":[]},{"level":3,"title":"Ping Process","slug":"ping-process","link":"#ping-process","children":[]},{"level":3,"title":"Pong Process","slug":"pong-process","link":"#pong-process","children":[]}]}],"git":{"createdTime":1690473388000,"updatedTime":1691144820000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":6}]},"readingTime":{"minutes":1.8,"words":540},"filePathRelative":"intro/info/process-plugins.md","localizedDate":"July 27, 2023","excerpt":"
Overview
\\n
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 to perform feasibility queries for research. \\nHowever, 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.
"}');export{T as comp,k as data};
diff --git a/assets/proxyTestTool.html-C_Ex6mgz.js b/assets/proxyTestTool.html-C_Ex6mgz.js
new file mode 100644
index 000000000..26734fb7b
--- /dev/null
+++ b/assets/proxyTestTool.html-C_Ex6mgz.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as s,c as a,a as e,b as t,d as r}from"./app-kq9lCQfY.js";const i={},p=e("p",null,[t("If the BPE will be deployed behind a proxy, you can test the internet access of the BPE using the tool in "),e("code",null,"dsf-tools/dsf-tools-proxy-test"),t(".")],-1),d=e("p",null,"The proxy test jar takes three input variables:",-1),h={href:"https://www.google.de",target:"_blank",rel:"noopener noreferrer"},c={href:"http://proxy.klinikum.de:8080",target:"_blank",rel:"noopener noreferrer"},u=e("li",null,"args[1]: the proxy username",-1),m=e("p",null,[t("The proxy password will be asked as command line input. The name of the main class is "),e("code",null,"ProxyTest"),t(".")],-1);function g(_,x){const o=l("ExternalLinkIcon");return s(),a("div",null,[p,d,e("ul",null,[e("li",null,[t("args[0]: the base url to test against (e.g. "),e("a",h,[t("https://www.google.de"),r(o)]),t(")")]),e("li",null,[t("args[1]: the proxy url to connect to (e.g. "),e("a",c,[t("http://proxy.klinikum.de:8080"),r(o)]),t(")")]),u]),m])}const k=n(i,[["render",g],["__file","proxyTestTool.html.vue"]]),b=JSON.parse('{"path":"/oldstable/build/proxyTestTool.html","title":"Proxy Test Tool","lang":"en-US","frontmatter":{"title":"Proxy Test Tool","icon":"back-stage"},"headers":[],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.3,"words":90},"filePathRelative":"oldstable/build/proxyTestTool.md","localizedDate":"August 23, 2023","excerpt":"
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.
"}');export{k as comp,b as data};
diff --git a/assets/public.html-BOk6SNIO.js b/assets/public.html-BOk6SNIO.js
new file mode 100644
index 000000000..b095e0435
--- /dev/null
+++ b/assets/public.html-BOk6SNIO.js
@@ -0,0 +1 @@
+import{_ as r}from"./mii-bWzWhniO.js";import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as s,c as h,a as e,b as t,d as i,e as c}from"./app-kq9lCQfY.js";const d="/photos/learnmore/funding/bmbf.png",l="/photos/learnmore/funding/highmed.jpg",m={},u=e("div",{style:{"text-align":"center"}},[e("h2",{id:"dsf-medical-informatics-structure-data-sharing-framework-community-2023-2026",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#dsf-medical-informatics-structure-data-sharing-framework-community-2023-2026"},[e("span",null,'DSF - Medical Informatics Structure "Data Sharing Framework Community" (2023-2026)')])])],-1),f=e("figure",null,[e("img",{src:d,alt:"",width:"228",height:"158",tabindex:"0",loading:"lazy"}),e("figcaption")],-1),p={href:"https://www.medizininformatik-initiative.de/de/start",target:"_blank",rel:"noopener noreferrer"},g={href:"https://www.netzwerk-universitaetsmedizin.de/",target:"_blank",rel:"noopener noreferrer"},b={href:"https://forschen-fuer-gesundheit.de/",target:"_blank",rel:"noopener noreferrer"},w={href:"https://www.gesundheitsforschung-bmbf.de/de/transit-medizininformatik-struktur-data-management-unit-16148.php",target:"_blank",rel:"noopener noreferrer"},_={href:"https://www.gesundheitsforschung-bmbf.de/de/dsf-medizininformatik-struktur-data-sharing-framework-community-16133.php",target:"_blank",rel:"noopener noreferrer"},v=c('
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).
',9),k={href:"https://www.highmed.org/en/home",target:"_blank",rel:"noopener noreferrer"},y={href:"https://www.hs-heilbronn.de/de/gecko",target:"_blank",rel:"noopener noreferrer"},F=e("figure",null,[e("img",{src:l,alt:"",width:"450",height:"150",tabindex:"0",loading:"lazy"}),e("figcaption")],-1);function D(S,I){const n=a("ExternalLinkIcon");return s(),h("div",null,[u,f,e("p",null,[t("The DSF Community connects the DSF competencies of the entire "),e("a",p,[t("Medical Informatics Initiative (MII)"),i(n)]),t(" so that new use cases, in particular from Module 3 or the "),e("a",g,[t("Network University Medicine (NUM)"),i(n)]),t(", 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 "),e("a",b,[t("FDPG+"),i(n)]),t(" and "),e("a",w,[t("TRANSIT"),i(n)]),t(" projects. "),e("a",_,[t("BMBF"),i(n)])]),v,e("p",null,[e("a",k,[t("HiGHmed"),i(n)]),t(" 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 "),e("a",y,[t("GECKO Institute"),i(n)]),t(" 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).")]),F])}const H=o(m,[["render",D],["__file","public.html.vue"]]),T=JSON.parse('{"path":"/about/learnmore/public.html","title":"Public Funding","lang":"en-US","frontmatter":{"title":"Public Funding","icon":"free"},"headers":[],"git":{"createdTime":1678951140000,"updatedTime":1681803685000,"contributors":[{"name":"simon","email":"smoeding@stu.hs-heilbronn.de","commits":2},{"name":"simonmoedinger","email":"simonmoedi@web.de","commits":1}]},"readingTime":{"minutes":1.3,"words":391},"filePathRelative":"about/learnmore/public.md","localizedDate":"March 16, 2023","excerpt":"
\\n
DSF - Medical Informatics Structure \\"Data Sharing Framework Community\\" (2023-2026)
\\n
\\n\\n
The DSF Community connects the DSF competencies of the entire Medical Informatics Initiative (MII) so that new use cases, in particular from Module 3 or the Network University Medicine (NUM), 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+ and TRANSIT projects. BMBF
"}');export{H as comp,T as data};
diff --git a/assets/publications.html-CWGWwyve.js b/assets/publications.html-CWGWwyve.js
new file mode 100644
index 000000000..16e0fa036
--- /dev/null
+++ b/assets/publications.html-CWGWwyve.js
@@ -0,0 +1 @@
+import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as l,c as a,a as e,b as n,d as r,w as d}from"./app-kq9lCQfY.js";const h={},c=e("h3",{id:"publications",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#publications"},[e("span",null,"Publications")])],-1),u=e("strong",null,"Executing Distributed Healthcare and Research Processes – The HiGHmed Data Sharing Framework",-1),H={href:"https://ebooks.iospress.nl/doi/10.3233/SHTI210060",target:"_blank",rel:"noopener noreferrer"},p=e("strong",null,"Feasibility Queries in Distributed Architectures – Concept and Implementation in HiGHmed",-1),m={href:"https://ebooks.iospress.nl/doi/10.3233/SHTI210061",target:"_blank",rel:"noopener noreferrer"},g=e("strong",null,"A Federated Record Linkage Algorithm for Secure Medical Data Sharing",-1),f={href:"https://ebooks.iospress.nl/doi/10.3233/SHTI210062",target:"_blank",rel:"noopener noreferrer"},S=e("strong",null,"Data Sharing in Distributed Architectures – Concept and Implementation in HiGHmed",-1),b={href:"https://ebooks.iospress.nl/doi/10.3233/SHTI210548",target:"_blank",rel:"noopener noreferrer"},_=e("strong",null,"The COVID-19 Data Exchange Platform of the German University Medicine",-1),k={href:"https://ebooks.iospress.nl/doi/10.3233/SHTI220554",target:"_blank",rel:"noopener noreferrer"},T=e("strong",null,"Secure Multi-Party Computation Based Distributed Feasibility Queries – A HiGHmed Use Case",-1),I={href:"https://ebooks.iospress.nl/doi/10.3233/SHTI220802",target:"_blank",rel:"noopener noreferrer"},C=e("strong",null,"Monitoring Distributed Business Processes in Biomedical Research",-1),D={href:"https://ebooks.iospress.nl/doi/10.3233/SHTI230113",target:"_blank",rel:"noopener noreferrer"},F=e("strong",null,"No Transfer Without Validation: A Data Sharing Framework Use Case",-1),M={href:"https://ebooks.iospress.nl/doi/10.3233/SHTI230066",target:"_blank",rel:"noopener noreferrer"},w=e("strong",null,"Interoperability Is a Process- The Data Sharing Framework",-1),P={href:"https://ebooks.iospress.nl/doi/10.3233/SHTI230921",target:"_blank",rel:"noopener noreferrer"},R=e("h3",{id:"recorded-talks",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#recorded-talks"},[e("span",null,"Recorded Talks")])],-1),y=e("h4",{id:"gmds-conference-2022",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#gmds-conference-2022"},[e("span",null,"GMDS Conference 2022")])],-1),x={href:"https://www.youtube.com/playlist?list=PLsHs7HOt6jDMe3PNevpo-uGsDTWVSMsYZ",target:"_blank",rel:"noopener noreferrer"},B=e("h4",{id:"gmds-conference-2020",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#gmds-conference-2020"},[e("span",null,"GMDS Conference 2020")])],-1),G={href:"https://www.youtube.com/watch?v=OzjyqmZZPSA",target:"_blank",rel:"noopener noreferrer"},W={href:"https://www.youtube.com/watch?v=6Pom8KqYhTs",target:"_blank",rel:"noopener noreferrer"},A={href:"https://www.youtube.com/watch?v=bSEPqzxF8mM",target:"_blank",rel:"noopener noreferrer"};function z(v,K){const t=o("ExternalLinkIcon"),i=o("RouteLink");return l(),a("div",null,[c,e("ul",null,[e("li",null,[e("p",null,[n("H. Hund, R. Wettstein, C.M. Heidt, C. Fegeler, "),u,n(", Stud Health Technol Inform, 278 (2021) 126-133, "),e("a",H,[n("doi:10.3233/SHTI210060"),r(t)])])]),e("li",null,[e("p",null,[n("R. Wettstein, H. Hund, I. Kobylinski, C. Fegeler, O. Heinze, "),p,n(", Stud Health Technol Inform, 278 (2021) 134-141, "),e("a",m,[n("doi:10.3233/SHTI210061"),r(t)])])]),e("li",null,[e("p",null,[n("C.M. Heidt, H. Hund, C. Fegeler, "),g,n(", Stud Health Technol Inform, 278 (2021) 142-149, "),e("a",f,[n("doi:10.3233/SHTI210062"),r(t)])])]),e("li",null,[e("p",null,[n("R. Wettstein, H. Hund, C. Fegeler, O. Heinze, "),S,n(", Stud Health Technol Inform, 283 (2021) 111-118, "),e("a",b,[n("doi:10.3233/SHTI210548"),r(t)])])]),e("li",null,[e("p",null,[n("H.-U. Prokosch, T. Bahls, M. Bialke, J. Eils, C. Fegeler, J. Gruendner, B. Haarbrandt, C. Hampf, W. Hoffmann, H. Hund, et al. "),_,n(", Stud Health Technol Inform, 294 (2022) 674-678, "),e("a",k,[n("doi:10.3233/SHTI220554"),r(t)])])]),e("li",null,[e("p",null,[n("R. Wettstein, T. Kussel, H. Hund, C. Fegeler, M. Dugas, K. Hamacher, "),T,n(", Stud Health Technol Inform, 296 (2022) 41-49, "),e("a",I,[n("doi:10.3233/SHTI220802"),r(t)])])]),e("li",null,[e("p",null,[n("C. Zilske, M. Kurscheidt, S.T. Schweizer, H. Hund, S. Mödinger, C. Fegeler, "),C,n(", Stud Health Technol Inform, 302 (2023) 252-256, "),e("a",D,[n("doi:10.3233/SHTI230113"),r(t)])])]),e("li",null,[e("p",null,[n("H. Hund, R. Wettstein, C. Hampf, M. Bialke, M. Kurscheidt, S.T. Schweizer, C. Zilske, S. Mödinger, C. Fegeler, "),F,n(", Stud Health Technol Inform, 302 (2023) 68-72, "),e("a",M,[n("doi:10.3233/SHTI230066"),r(t)])])]),e("li",null,[e("p",null,[n("H. Hund, R. Wettstein, M. Kurscheidt, S.T. Schweizer, C. Zilske, C. Fegeler, "),w,n(", Stud Health Technol Inform, 310 (2024) 28-32, "),e("a",P,[n("doi:10.3233/SHTI230921"),r(t)])])])]),R,y,e("ul",null,[e("li",null,[e("a",x,[n("Hands On! - Introduction to the Data Sharing Framework from a User Perspective "),r(t)])]),e("li",null,[n("Tutorial: "),r(i,{to:"/oldstable/tutorial/"},{default:d(()=>[n("Implementing BPMN Processes as DSF Process-Plugins")]),_:1})])]),B,e("ul",null,[e("li",null,[e("a",G,[n("Executing Distributed Healthcare and Research Processes – the HiGHmed Data Sharing Framework"),r(t)])]),e("li",null,[e("a",W,[n("Feasibility Queries in Distributed Architectures – Concept and Implementation in HiGHmed"),r(t)])]),e("li",null,[e("a",A,[n("A Federated Record Linkage Algorithm for Secure Medical Data Sharing"),r(t)])])])])}const U=s(h,[["render",z],["__file","publications.html.vue"]]),Z=JSON.parse('{"path":"/intro/publications.html","title":"Publications and Talks","lang":"en-US","frontmatter":{"title":"Publications and Talks","icon":"blog"},"headers":[{"level":3,"title":"Publications","slug":"publications","link":"#publications","children":[]},{"level":3,"title":"Recorded Talks","slug":"recorded-talks","link":"#recorded-talks","children":[]}],"git":{"createdTime":1690461865000,"updatedTime":1706233271000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2},{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":2},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.3,"words":390},"filePathRelative":"intro/publications.md","localizedDate":"July 27, 2023","excerpt":"
Publications
\\n
\\n
\\n
H. Hund, R. Wettstein, C.M. Heidt, C. Fegeler, Executing Distributed Healthcare and Research Processes – The HiGHmed Data Sharing Framework, Stud Health Technol Inform, 278 (2021) 126-133, doi:10.3233/SHTI210060
\\n
\\n
\\n
R. Wettstein, H. Hund, I. Kobylinski, C. Fegeler, O. Heinze, Feasibility Queries in Distributed Architectures – Concept and Implementation in HiGHmed, Stud Health Technol Inform, 278 (2021) 134-141, doi:10.3233/SHTI210061
\\n
\\n
\\n
C.M. Heidt, H. Hund, C. Fegeler, A Federated Record Linkage Algorithm for Secure Medical Data Sharing, Stud Health Technol Inform, 278 (2021) 142-149, doi:10.3233/SHTI210062
\\n
\\n
\\n
R. Wettstein, H. Hund, C. Fegeler, O. Heinze, Data Sharing in Distributed Architectures – Concept and Implementation in HiGHmed, Stud Health Technol Inform, 283 (2021) 111-118, doi:10.3233/SHTI210548
\\n
\\n
\\n
H.-U. Prokosch, T. Bahls, M. Bialke, J. Eils, C. Fegeler, J. Gruendner, B. Haarbrandt, C. Hampf, W. Hoffmann, H. Hund, et al. The COVID-19 Data Exchange Platform of the German University Medicine, Stud Health Technol Inform, 294 (2022) 674-678, doi:10.3233/SHTI220554
\\n
\\n
\\n
R. Wettstein, T. Kussel, H. Hund, C. Fegeler, M. Dugas, K. Hamacher, Secure Multi-Party Computation Based Distributed Feasibility Queries – A HiGHmed Use Case, Stud Health Technol Inform, 296 (2022) 41-49, doi:10.3233/SHTI220802
\\n
\\n
\\n
C. Zilske, M. Kurscheidt, S.T. Schweizer, H. Hund, S. Mödinger, C. Fegeler, Monitoring Distributed Business Processes in Biomedical Research, Stud Health Technol Inform, 302 (2023) 252-256, doi:10.3233/SHTI230113
\\n
\\n
\\n
H. Hund, R. Wettstein, C. Hampf, M. Bialke, M. Kurscheidt, S.T. Schweizer, C. Zilske, S. Mödinger, C. Fegeler, No Transfer Without Validation: A Data Sharing Framework Use Case, Stud Health Technol Inform, 302 (2023) 68-72, doi:10.3233/SHTI230066
\\n
\\n
\\n
H. Hund, R. Wettstein, M. Kurscheidt, S.T. Schweizer, C. Zilske, C. Fegeler, Interoperability Is a Process- The Data Sharing Framework, Stud Health Technol Inform, 310 (2024) 28-32, doi:10.3233/SHTI230921
\\n
\\n
"}');export{U as comp,Z as data};
diff --git a/assets/releaseANewVersion.html-jLnIfCDT.js b/assets/releaseANewVersion.html-jLnIfCDT.js
new file mode 100644
index 000000000..672602f90
--- /dev/null
+++ b/assets/releaseANewVersion.html-jLnIfCDT.js
@@ -0,0 +1 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o as r,c as o,a as e,b as i,d as a,e as l}from"./app-kq9lCQfY.js";const c={},d=e("h2",{id:"release-a-new-final-version",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#release-a-new-final-version"},[e("span",null,"Release a new final version")])],-1),u=l("
Write release notes
Create new release/x.y.z branch from develop
Remove -SNAPSHOT from version in pom.xml files
Change status from draft to active and update dates, verify versions in FHIR resources
Update version and date-released in CITATION.cff
Push branch release/x.y.z
Create pull request (release/x.y.z -> main)
Build maven
Build docker images and run manual tests in 3MeDIC/TTP test setup
Update release notes with docker links, check Git tag
Publish release notes
Create 'start next development cycle' issue and branch
Merge main into issue branch
Increase version
Merge next development cycle issue branch into develop via PR
",11),v=e("h2",{id:"release-a-new-candidate-version",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#release-a-new-candidate-version"},[e("span",null,"Release a new candidate version")])],-1),f=l("
Write release notes
Create new release/x.y.z-RC# branch from develop
Replace -SNAPSHOT in versions with -RC# in pom.xml files
Change status from draft to active and update dates, verify versions in FHIR resources
Update version and date-released in CITATION.cff
Git tag release/x.y.z-RC# branch
Build maven
Build docker images and run manual tests in 3MeDIC/TTP test setup
",8),p={href:"https://aquasecurity.github.io/trivy/",target:"_blank",rel:"noopener noreferrer"},g=e("li",null,"Push release/x.y.z-RC# branch (including Git tag)",-1),b=e("li",null,"Run multi-arch docker build (including push)",-1),_=e("li",null,"Update release notes with docker links, check Git tag",-1),k=e("li",null,"Publish release notes",-1);function x(w,y){const n=s("ExternalLinkIcon");return r(),o("div",null,[d,e("ol",null,[u,e("li",null,[i("Execute "),e("a",h,[i("trivy"),a(n)]),i(" and check CVEs for the docker images")]),m]),v,e("ol",null,[f,e("li",null,[i("Execute "),e("a",p,[i("trivy"),a(n)]),i(" and check CVEs for the docker images")]),g,b,_,k])])}const T=t(c,[["render",x],["__file","releaseANewVersion.html.vue"]]),P=JSON.parse(`{"path":"/oldstable/build/releaseANewVersion.html","title":"Release a new version","lang":"en-US","frontmatter":{"title":"Release a new version","icon":"back-stage"},"headers":[{"level":2,"title":"Release a new final version","slug":"release-a-new-final-version","link":"#release-a-new-final-version","children":[]},{"level":2,"title":"Release a new candidate version","slug":"release-a-new-candidate-version","link":"#release-a-new-candidate-version","children":[]}],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.92,"words":276},"filePathRelative":"oldstable/build/releaseANewVersion.md","localizedDate":"August 23, 2023","excerpt":"
Release a new final version
\\n\\n
Write release notes
\\n
Create new release/x.y.z branch from develop
\\n
Remove -SNAPSHOT from version in pom.xml files
\\n
Change status from draft to active and update dates, verify versions in FHIR resources
\\n
Update version and date-released in CITATION.cff
\\n
Push branch release/x.y.z
\\n
Create pull request (release/x.y.z -> main)
\\n
Build maven
\\n
Build docker images and run manual tests in 3MeDIC/TTP test setup
\\n
Execute trivy and check CVEs for the docker images
\\n
Merge release/x.y.z into main
\\n
Git tag main branch
\\n
Push main branch (including Git tag)
\\n
Build maven
\\n
Run multi-arch docker build (including push)
\\n
Update release notes with docker links, check Git tag
\\n
Publish release notes
\\n
Create 'start next development cycle' issue and branch
\\n
Merge main into issue branch
\\n
Increase version
\\n
Merge next development cycle issue branch into develop via PR
\\n"}`);export{T as comp,P as data};
diff --git a/assets/reverseproxy.html-BBN9Od3-.js b/assets/reverseproxy.html-BBN9Od3-.js
new file mode 100644
index 000000000..d8b4f9bac
--- /dev/null
+++ b/assets/reverseproxy.html-BBN9Od3-.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as i,e as r}from"./app-kq9lCQfY.js";const s={},o=r('
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
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
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
Description: Hostname or IP-Address of the DSF FHIR servers application container, the reverse proxy target
\\n
Example:app, 172.28.1.3
\\n
\\n
HTTPS_SERVER_NAME_PORT
"}');export{h as comp,f as data};
diff --git a/assets/security.html-Qj_akVd-.js b/assets/security.html-Qj_akVd-.js
new file mode 100644
index 000000000..55b8f1e09
--- /dev/null
+++ b/assets/security.html-Qj_akVd-.js
@@ -0,0 +1 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as s,o,c,a as t,b as e,d as a,e as n}from"./app-kq9lCQfY.js";const l="/photos/info/security/certificates-light.svg",d="/photos/info/security/certificates-dark.svg",h={},u=n('
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. 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.
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)
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)
',10);function v(y,F){const i=s("ExternalLinkIcon");return o(),c("div",null,[u,t("p",null,[e("Authentication of organizations within the DSF is handled by the use of X.509 client and server certificates. Currently the certificate authorities run by "),t("a",f,[e("DFN-PKI Global G2"),a(i)]),e(", "),t("a",p,[e("D-Trust via TMF e.V."),a(i)]),e(" and "),t("a",m,[e("GÉANT TCS via DFN"),a(i)]),e(" are supported. All participating organizations are entered in a distributed and synchronized allow-list of valid organizations and certificates.")]),t("p",null,[e("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 "),t("a",g,[e("DFN-PKI-Zertifikatprofile_Global.pdf"),a(i)])]),b])}const D=r(h,[["render",v],["__file","security.html.vue"]]),_=JSON.parse('{"path":"/intro/info/security.html","title":"Security by Design","lang":"en-US","frontmatter":{"title":"Security by Design","icon":"safe"},"headers":[{"level":2,"title":"Basics Security","slug":"basics-security","link":"#basics-security","children":[]},{"level":2,"title":"Authentication","slug":"authentication","link":"#authentication","children":[{"level":3,"title":"Certificate Requests 🔒","slug":"certificate-requests","link":"#certificate-requests","children":[]}]}],"git":{"createdTime":1690473388000,"updatedTime":1691410780000,"contributors":[{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":4}]},"readingTime":{"minutes":1.54,"words":461},"filePathRelative":"intro/info/security.md","localizedDate":"July 27, 2023","excerpt":"
Basics Security
\\n
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. \\nFor 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.
"}');export{T as comp,z as data};
diff --git a/assets/upgrade-from-0.html-1FImxnbl.js b/assets/upgrade-from-0.html-1FImxnbl.js
new file mode 100644
index 000000000..ca56d2b03
--- /dev/null
+++ b/assets/upgrade-from-0.html-1FImxnbl.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as l,a as e,b as r,d as o}from"./app-kq9lCQfY.js";const s={},p={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),c=e("p",null,"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:",-1),h={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function u(f,_){const t=a("ExternalLinkIcon");return i(),l("div",null,[e("div",p,[d,c,e("ul",null,[e("li",null,[r("The "),e("a",h,[r("hello world plugin"),o(t)])]),e("li",null,[r("The "),e("a",g,[r("ping pong plugin"),o(t)])]),e("li",null,[r("The "),e("a",m,[r("update allowlist plugin"),o(t)])])])])])}const b=n(s,[["render",u],["__file","upgrade-from-0.html.vue"]]),v=JSON.parse('{"path":"/v1.4.0/develop/upgrade-from-0.html","title":"Upgrade processes from 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade processes from 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1702917645000,"updatedTime":1702917645000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.26,"words":79},"filePathRelative":"v1.4.0/develop/upgrade-from-0.md","localizedDate":"December 18, 2023","excerpt":"
\\n
Work in progress
\\n
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:
"}');export{b as comp,v as data};
diff --git a/assets/upgrade-from-0.html-3oJ76TSs.js b/assets/upgrade-from-0.html-3oJ76TSs.js
new file mode 100644
index 000000000..aa9c74e40
--- /dev/null
+++ b/assets/upgrade-from-0.html-3oJ76TSs.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as l,a as e,b as r,d as o}from"./app-kq9lCQfY.js";const s={},p={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),c=e("p",null,"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:",-1),h={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function u(f,_){const t=a("ExternalLinkIcon");return i(),l("div",null,[e("div",p,[d,c,e("ul",null,[e("li",null,[r("The "),e("a",h,[r("hello world plugin"),o(t)])]),e("li",null,[r("The "),e("a",g,[r("ping pong plugin"),o(t)])]),e("li",null,[r("The "),e("a",m,[r("update allowlist plugin"),o(t)])])])])])}const b=n(s,[["render",u],["__file","upgrade-from-0.html.vue"]]),v=JSON.parse('{"path":"/v1.5.1/develop/upgrade-from-0.html","title":"Upgrade processes from 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade processes from 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.26,"words":79},"filePathRelative":"v1.5.1/develop/upgrade-from-0.md","localizedDate":"April 17, 2024","excerpt":"
\\n
Work in progress
\\n
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:
"}');export{b as comp,v as data};
diff --git a/assets/upgrade-from-0.html-B6n07FQd.js b/assets/upgrade-from-0.html-B6n07FQd.js
new file mode 100644
index 000000000..cd583f90f
--- /dev/null
+++ b/assets/upgrade-from-0.html-B6n07FQd.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as l,a as e,b as r,d as o}from"./app-kq9lCQfY.js";const s={},p={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),h=e("p",null,"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:",-1),c={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function u(f,_){const t=a("ExternalLinkIcon");return i(),l("div",null,[e("div",p,[d,h,e("ul",null,[e("li",null,[r("The "),e("a",c,[r("hello world plugin"),o(t)])]),e("li",null,[r("The "),e("a",m,[r("ping pong plugin"),o(t)])]),e("li",null,[r("The "),e("a",g,[r("update allowlist plugin"),o(t)])])])])])}const b=n(s,[["render",u],["__file","upgrade-from-0.html.vue"]]),v=JSON.parse('{"path":"/v1.1.0/develop/upgrade-from-0.html","title":"Upgrade processes from 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade processes from 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1692790324000,"updatedTime":1692966267000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.26,"words":79},"filePathRelative":"v1.1.0/develop/upgrade-from-0.md","localizedDate":"August 23, 2023","excerpt":"
\\n
Work in progress
\\n
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:
"}');export{b as comp,v as data};
diff --git a/assets/upgrade-from-0.html-BAE2R3EL.js b/assets/upgrade-from-0.html-BAE2R3EL.js
new file mode 100644
index 000000000..b0a5eea88
--- /dev/null
+++ b/assets/upgrade-from-0.html-BAE2R3EL.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as l,c as i,a as e,b as r,d as o}from"./app-kq9lCQfY.js";const s={},p={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),h=e("p",null,"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:",-1),c={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},u={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function m(f,_){const t=a("ExternalLinkIcon");return l(),i("div",null,[e("div",p,[d,h,e("ul",null,[e("li",null,[r("The "),e("a",c,[r("hello world plugin"),o(t)])]),e("li",null,[r("The "),e("a",g,[r("ping pong plugin"),o(t)])]),e("li",null,[r("The "),e("a",u,[r("update allowlist plugin"),o(t)])])])])])}const b=n(s,[["render",m],["__file","upgrade-from-0.html.vue"]]),v=JSON.parse('{"path":"/v1.5.2/develop/upgrade-from-0.html","title":"Upgrade processes from 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade processes from 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.26,"words":79},"filePathRelative":"v1.5.2/develop/upgrade-from-0.md","localizedDate":"July 8, 2024","excerpt":"
\\n
Work in progress
\\n
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:
"}');export{b as comp,v as data};
diff --git a/assets/upgrade-from-0.html-BLIdrZVI.js b/assets/upgrade-from-0.html-BLIdrZVI.js
new file mode 100644
index 000000000..3338f45dd
--- /dev/null
+++ b/assets/upgrade-from-0.html-BLIdrZVI.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as l,c as i,a as e,b as r,d as o}from"./app-kq9lCQfY.js";const s={},p={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),c=e("p",null,"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:",-1),h={href:"https://github.com/datasharingframework/dsf-process-hello-world/tree/develop",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function u(f,_){const t=a("ExternalLinkIcon");return l(),i("div",null,[e("div",p,[d,c,e("ul",null,[e("li",null,[r("The "),e("a",h,[r("hello world plugin"),o(t)])]),e("li",null,[r("The "),e("a",g,[r("ping pong plugin"),o(t)])]),e("li",null,[r("The "),e("a",m,[r("update allowlist plugin"),o(t)])])])])])}const b=n(s,[["render",u],["__file","upgrade-from-0.html.vue"]]),v=JSON.parse('{"path":"/v1.0.0/develop/upgrade-from-0.html","title":"Upgrade processes from 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade processes from 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1692708510000,"updatedTime":1692708510000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.26,"words":79},"filePathRelative":"v1.0.0/develop/upgrade-from-0.md","localizedDate":"August 22, 2023","excerpt":"
\\n
Work in progress
\\n
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:
"}');export{b as comp,v as data};
diff --git a/assets/upgrade-from-0.html-BU67otYx.js b/assets/upgrade-from-0.html-BU67otYx.js
new file mode 100644
index 000000000..70e263e42
--- /dev/null
+++ b/assets/upgrade-from-0.html-BU67otYx.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const i={},r=n('
Do not upgrade unless prompted!
Please do not upgrade your DSF installation from DSF 0.9.x to DSF 1.x unless prompted to do so (e.g. from the German MII).
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported. Instead, please perform the following steps:
shut down your DSF instances (DSF FHIR Server and DSF BPE).
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)
install the new DSF according to the instructions.
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.
',4),a=[r];function s(p,d){return t(),o("div",null,a)}const m=e(i,[["render",s],["__file","upgrade-from-0.html.vue"]]),u=JSON.parse('{"path":"/v1.0.0/maintain/upgrade-from-0.html","title":"Upgrade from DSF 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1692708510000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.45,"words":134},"filePathRelative":"v1.0.0/maintain/upgrade-from-0.md","localizedDate":"August 22, 2023","excerpt":"
\\n
Do not upgrade unless prompted!
\\n
Please do not upgrade your DSF installation from DSF 0.9.x to DSF 1.x unless prompted to do so (e.g. from the German MII).
\\n
\\n
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported. Instead, please perform the following steps:
"}');export{m as comp,u as data};
diff --git a/assets/upgrade-from-0.html-C6LY6wwR.js b/assets/upgrade-from-0.html-C6LY6wwR.js
new file mode 100644
index 000000000..447021647
--- /dev/null
+++ b/assets/upgrade-from-0.html-C6LY6wwR.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const a={},i=n('
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
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:
Shut down your DSF instances (DSF FHIR Server and DSF BPE).
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)
Install the new DSF according to the instructions.
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).
Configure your processes according to the new process plugin documentation. 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).
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).
If you want to replace the old setup with the new one, shutdown the old instances (FHIR + BPE) and start the new ones.
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.
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.
',6),r=[i];function s(c,l){return t(),o("div",null,r)}const u=e(a,[["render",s],["__file","upgrade-from-0.html.vue"]]),h=JSON.parse('{"path":"/v1.3.2/maintain/upgrade-from-0.html","title":"Upgrade from DSF 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.12,"words":337},"filePathRelative":"v1.3.2/maintain/upgrade-from-0.md","localizedDate":"December 4, 2023","excerpt":"
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
\\n
\\n
Do not use your 0.9.x configuration as starting point
\\n
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.
\\n
Please use the new installation manual to perform a new installation and use the old setup only for reference.
\\n
"}');export{u as comp,h as data};
diff --git a/assets/upgrade-from-0.html-COvMZ4yo.js b/assets/upgrade-from-0.html-COvMZ4yo.js
new file mode 100644
index 000000000..83ee40696
--- /dev/null
+++ b/assets/upgrade-from-0.html-COvMZ4yo.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const a={},i=n('
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
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:
Shut down your DSF instances (DSF FHIR Server and DSF BPE).
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)
Install the new DSF according to the instructions.
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).
Configure your processes according to the new process plugin documentation. 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).
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).
If you want to replace the old setup with the new one, shutdown the old instances (FHIR + BPE) and start the new ones.
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.
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.
',6),r=[i];function s(l,c){return t(),o("div",null,r)}const u=e(a,[["render",s],["__file","upgrade-from-0.html.vue"]]),h=JSON.parse('{"path":"/v1.5.2/maintain/upgrade-from-0.html","title":"Upgrade from DSF 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.12,"words":337},"filePathRelative":"v1.5.2/maintain/upgrade-from-0.md","localizedDate":"July 8, 2024","excerpt":"
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
\\n
\\n
Do not use your 0.9.x configuration as starting point
\\n
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.
\\n
Please use the new installation manual to perform a new installation and use the old setup only for reference.
\\n
"}');export{u as comp,h as data};
diff --git a/assets/upgrade-from-0.html-CPvp7H4y.js b/assets/upgrade-from-0.html-CPvp7H4y.js
new file mode 100644
index 000000000..9b30a9ba0
--- /dev/null
+++ b/assets/upgrade-from-0.html-CPvp7H4y.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const a={},i=n('
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
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:
Shut down your DSF instances (DSF FHIR Server and DSF BPE).
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)
Install the new DSF according to the instructions.
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).
Configure your processes according to the new process plugin documentation. 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).
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).
If you want to replace the old setup with the new one, shutdown the old instances (FHIR + BPE) and start the new ones.
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.
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.
',6),r=[i];function s(c,l){return t(),o("div",null,r)}const u=e(a,[["render",s],["__file","upgrade-from-0.html.vue"]]),h=JSON.parse('{"path":"/v1.5.0/maintain/upgrade-from-0.html","title":"Upgrade from DSF 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.12,"words":337},"filePathRelative":"v1.5.0/maintain/upgrade-from-0.md","localizedDate":"February 20, 2024","excerpt":"
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
\\n
\\n
Do not use your 0.9.x configuration as starting point
\\n
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.
\\n
Please use the new installation manual to perform a new installation and use the old setup only for reference.
\\n
"}');export{u as comp,h as data};
diff --git a/assets/upgrade-from-0.html-CRAe3DJ7.js b/assets/upgrade-from-0.html-CRAe3DJ7.js
new file mode 100644
index 000000000..a2a235e65
--- /dev/null
+++ b/assets/upgrade-from-0.html-CRAe3DJ7.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as l,a as e,b as r,d as o}from"./app-kq9lCQfY.js";const s={},p={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),c=e("p",null,"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:",-1),h={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function u(f,_){const t=a("ExternalLinkIcon");return i(),l("div",null,[e("div",p,[d,c,e("ul",null,[e("li",null,[r("The "),e("a",h,[r("hello world plugin"),o(t)])]),e("li",null,[r("The "),e("a",g,[r("ping pong plugin"),o(t)])]),e("li",null,[r("The "),e("a",m,[r("update allowlist plugin"),o(t)])])])])])}const b=n(s,[["render",u],["__file","upgrade-from-0.html.vue"]]),v=JSON.parse('{"path":"/v1.3.1/develop/upgrade-from-0.html","title":"Upgrade processes from 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade processes from 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1698748420000,"updatedTime":1698748420000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.26,"words":79},"filePathRelative":"v1.3.1/develop/upgrade-from-0.md","localizedDate":"October 31, 2023","excerpt":"
\\n
Work in progress
\\n
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:
"}');export{b as comp,v as data};
diff --git a/assets/upgrade-from-0.html-CXaHlGc8.js b/assets/upgrade-from-0.html-CXaHlGc8.js
new file mode 100644
index 000000000..483fe152e
--- /dev/null
+++ b/assets/upgrade-from-0.html-CXaHlGc8.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as l,a as e,b as r,d as o}from"./app-kq9lCQfY.js";const s={},p={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),c=e("p",null,"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:",-1),h={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function u(f,_){const t=a("ExternalLinkIcon");return i(),l("div",null,[e("div",p,[d,c,e("ul",null,[e("li",null,[r("The "),e("a",h,[r("hello world plugin"),o(t)])]),e("li",null,[r("The "),e("a",g,[r("ping pong plugin"),o(t)])]),e("li",null,[r("The "),e("a",m,[r("update allowlist plugin"),o(t)])])])])])}const b=n(s,[["render",u],["__file","upgrade-from-0.html.vue"]]),v=JSON.parse('{"path":"/v1.2.0/develop/upgrade-from-0.html","title":"Upgrade processes from 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade processes from 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1694544770000,"updatedTime":1694544770000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.26,"words":79},"filePathRelative":"v1.2.0/develop/upgrade-from-0.md","localizedDate":"September 12, 2023","excerpt":"
\\n
Work in progress
\\n
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:
"}');export{b as comp,v as data};
diff --git a/assets/upgrade-from-0.html-Ccchte1p.js b/assets/upgrade-from-0.html-Ccchte1p.js
new file mode 100644
index 000000000..76f443e9c
--- /dev/null
+++ b/assets/upgrade-from-0.html-Ccchte1p.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const a={},i=n('
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
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:
Shut down your DSF instances (DSF FHIR Server and DSF BPE).
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)
Install the new DSF according to the instructions.
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).
Configure your processes according to the new process plugin documentation. 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).
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).
If you want to replace the old setup with the new one, shutdown the old instances (FHIR + BPE) and start the new ones.
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.
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.
',6),r=[i];function s(c,l){return t(),o("div",null,r)}const u=e(a,[["render",s],["__file","upgrade-from-0.html.vue"]]),h=JSON.parse('{"path":"/v1.4.0/maintain/upgrade-from-0.html","title":"Upgrade from DSF 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1702917645000,"updatedTime":1702917645000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.12,"words":337},"filePathRelative":"v1.4.0/maintain/upgrade-from-0.md","localizedDate":"December 18, 2023","excerpt":"
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
\\n
\\n
Do not use your 0.9.x configuration as starting point
\\n
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.
\\n
Please use the new installation manual to perform a new installation and use the old setup only for reference.
\\n
"}');export{u as comp,h as data};
diff --git a/assets/upgrade-from-0.html-Ct5W8opP.js b/assets/upgrade-from-0.html-Ct5W8opP.js
new file mode 100644
index 000000000..da09cc417
--- /dev/null
+++ b/assets/upgrade-from-0.html-Ct5W8opP.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const r={},i=n('
Do not upgrade unless prompted!
Please do not upgrade your DSF installation from DSF 0.9.x to DSF 1.x unless prompted to do so (e.g. from the German MII).
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported. Instead, please perform the following steps:
shut down your DSF instances (DSF FHIR Server and DSF BPE).
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)
install the new DSF according to the instructions.
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.
',4),a=[i];function s(p,d){return t(),o("div",null,a)}const m=e(r,[["render",s],["__file","upgrade-from-0.html.vue"]]),u=JSON.parse('{"path":"/v1.1.0/maintain/upgrade-from-0.html","title":"Upgrade from DSF 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1692790324000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.45,"words":134},"filePathRelative":"v1.1.0/maintain/upgrade-from-0.md","localizedDate":"August 23, 2023","excerpt":"
\\n
Do not upgrade unless prompted!
\\n
Please do not upgrade your DSF installation from DSF 0.9.x to DSF 1.x unless prompted to do so (e.g. from the German MII).
\\n
\\n
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported. Instead, please perform the following steps:
"}');export{m as comp,u as data};
diff --git a/assets/upgrade-from-0.html-D4zkI0hy.js b/assets/upgrade-from-0.html-D4zkI0hy.js
new file mode 100644
index 000000000..f6a7f2f14
--- /dev/null
+++ b/assets/upgrade-from-0.html-D4zkI0hy.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const r={},i=n('
Do not upgrade unless prompted!
Please do not upgrade your DSF installation from DSF 0.9.x to DSF 1.x unless prompted to do so (e.g. from the German MII).
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported. Instead, please perform the following steps:
shut down your DSF instances (DSF FHIR Server and DSF BPE).
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)
install the new DSF according to the instructions.
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.
',4),a=[i];function s(p,d){return t(),o("div",null,a)}const m=e(r,[["render",s],["__file","upgrade-from-0.html.vue"]]),u=JSON.parse('{"path":"/v1.2.0/maintain/upgrade-from-0.html","title":"Upgrade from DSF 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1694544770000,"updatedTime":1694544770000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.45,"words":134},"filePathRelative":"v1.2.0/maintain/upgrade-from-0.md","localizedDate":"September 12, 2023","excerpt":"
\\n
Do not upgrade unless prompted!
\\n
Please do not upgrade your DSF installation from DSF 0.9.x to DSF 1.x unless prompted to do so (e.g. from the German MII).
\\n
\\n
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported. Instead, please perform the following steps:
"}');export{m as comp,u as data};
diff --git a/assets/upgrade-from-0.html-D5p1Fyxp.js b/assets/upgrade-from-0.html-D5p1Fyxp.js
new file mode 100644
index 000000000..a5648474b
--- /dev/null
+++ b/assets/upgrade-from-0.html-D5p1Fyxp.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as l,a as e,b as r,d as o}from"./app-kq9lCQfY.js";const s={},p={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),c=e("p",null,"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:",-1),h={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function u(f,_){const t=a("ExternalLinkIcon");return i(),l("div",null,[e("div",p,[d,c,e("ul",null,[e("li",null,[r("The "),e("a",h,[r("hello world plugin"),o(t)])]),e("li",null,[r("The "),e("a",g,[r("ping pong plugin"),o(t)])]),e("li",null,[r("The "),e("a",m,[r("update allowlist plugin"),o(t)])])])])])}const b=n(s,[["render",u],["__file","upgrade-from-0.html.vue"]]),v=JSON.parse('{"path":"/v1.3.0/develop/upgrade-from-0.html","title":"Upgrade processes from 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade processes from 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1696944513000,"updatedTime":1696944513000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.26,"words":79},"filePathRelative":"v1.3.0/develop/upgrade-from-0.md","localizedDate":"October 10, 2023","excerpt":"
\\n
Work in progress
\\n
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:
"}');export{b as comp,v as data};
diff --git a/assets/upgrade-from-0.html-D9NWv8w7.js b/assets/upgrade-from-0.html-D9NWv8w7.js
new file mode 100644
index 000000000..cb22ce022
--- /dev/null
+++ b/assets/upgrade-from-0.html-D9NWv8w7.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const a={},i=n('
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
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:
Shut down your DSF instances (DSF FHIR Server and DSF BPE).
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)
Install the new DSF according to the instructions.
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).
Configure your processes according to the new process plugin documentation. 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).
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).
If you want to replace the old setup with the new one, shutdown the old instances (FHIR + BPE) and start the new ones.
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.
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.
',6),r=[i];function s(l,c){return t(),o("div",null,r)}const u=e(a,[["render",s],["__file","upgrade-from-0.html.vue"]]),h=JSON.parse('{"path":"/stable/maintain/upgrade-from-0.html","title":"Upgrade from DSF 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1688985700000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":3},{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.12,"words":337},"filePathRelative":"stable/maintain/upgrade-from-0.md","localizedDate":"July 10, 2023","excerpt":"
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
\\n
\\n
Do not use your 0.9.x configuration as starting point
\\n
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.
\\n
Please use the new installation manual to perform a new installation and use the old setup only for reference.
\\n
"}');export{u as comp,h as data};
diff --git a/assets/upgrade-from-0.html-Dyi1OPIG.js b/assets/upgrade-from-0.html-Dyi1OPIG.js
new file mode 100644
index 000000000..c3f8f1b2f
--- /dev/null
+++ b/assets/upgrade-from-0.html-Dyi1OPIG.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as l,a as e,b as r,d as o}from"./app-kq9lCQfY.js";const s={},p={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),c=e("p",null,"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:",-1),h={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function u(f,_){const t=a("ExternalLinkIcon");return i(),l("div",null,[e("div",p,[d,c,e("ul",null,[e("li",null,[r("The "),e("a",h,[r("hello world plugin"),o(t)])]),e("li",null,[r("The "),e("a",g,[r("ping pong plugin"),o(t)])]),e("li",null,[r("The "),e("a",m,[r("update allowlist plugin"),o(t)])])])])])}const b=n(s,[["render",u],["__file","upgrade-from-0.html.vue"]]),v=JSON.parse('{"path":"/v1.5.0/develop/upgrade-from-0.html","title":"Upgrade processes from 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade processes from 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.26,"words":79},"filePathRelative":"v1.5.0/develop/upgrade-from-0.md","localizedDate":"February 20, 2024","excerpt":"
\\n
Work in progress
\\n
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:
"}');export{b as comp,v as data};
diff --git a/assets/upgrade-from-0.html-LF0qk2hq.js b/assets/upgrade-from-0.html-LF0qk2hq.js
new file mode 100644
index 000000000..70af30419
--- /dev/null
+++ b/assets/upgrade-from-0.html-LF0qk2hq.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as l,a as e,b as r,d as o}from"./app-kq9lCQfY.js";const s={},p={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),c=e("p",null,"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:",-1),h={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function u(f,_){const t=a("ExternalLinkIcon");return i(),l("div",null,[e("div",p,[d,c,e("ul",null,[e("li",null,[r("The "),e("a",h,[r("hello world plugin"),o(t)])]),e("li",null,[r("The "),e("a",g,[r("ping pong plugin"),o(t)])]),e("li",null,[r("The "),e("a",m,[r("update allowlist plugin"),o(t)])])])])])}const b=n(s,[["render",u],["__file","upgrade-from-0.html.vue"]]),v=JSON.parse('{"path":"/v1.3.2/develop/upgrade-from-0.html","title":"Upgrade processes from 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade processes from 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1701710218000,"updatedTime":1701710218000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.26,"words":79},"filePathRelative":"v1.3.2/develop/upgrade-from-0.md","localizedDate":"December 4, 2023","excerpt":"
\\n
Work in progress
\\n
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:
"}');export{b as comp,v as data};
diff --git a/assets/upgrade-from-0.html-Qee7uBnc.js b/assets/upgrade-from-0.html-Qee7uBnc.js
new file mode 100644
index 000000000..5028aa91b
--- /dev/null
+++ b/assets/upgrade-from-0.html-Qee7uBnc.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const a={},i=n('
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
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:
Shut down your DSF instances (DSF FHIR Server and DSF BPE).
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)
Install the new DSF according to the instructions.
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).
Configure your processes according to the new process plugin documentation. 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).
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).
If you want to replace the old setup with the new one, shutdown the old instances (FHIR + BPE) and start the new ones.
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.
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.
',6),r=[i];function s(c,l){return t(),o("div",null,r)}const u=e(a,[["render",s],["__file","upgrade-from-0.html.vue"]]),h=JSON.parse('{"path":"/v1.3.0/maintain/upgrade-from-0.html","title":"Upgrade from DSF 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1696944513000,"updatedTime":1698660030000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":1.12,"words":337},"filePathRelative":"v1.3.0/maintain/upgrade-from-0.md","localizedDate":"October 10, 2023","excerpt":"
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
\\n
\\n
Do not use your 0.9.x configuration as starting point
\\n
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.
\\n
Please use the new installation manual to perform a new installation and use the old setup only for reference.
\\n
"}');export{u as comp,h as data};
diff --git a/assets/upgrade-from-0.html-Uv4WDNVz.js b/assets/upgrade-from-0.html-Uv4WDNVz.js
new file mode 100644
index 000000000..57fbb08c5
--- /dev/null
+++ b/assets/upgrade-from-0.html-Uv4WDNVz.js
@@ -0,0 +1 @@
+import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as a,o as i,c as l,a as e,b as r,d as o}from"./app-kq9lCQfY.js";const s={},p={class:"hint-container tip"},d=e("p",{class:"hint-container-title"},"Work in progress",-1),c=e("p",null,"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:",-1),h={href:"https://github.com/datasharingframework/dsf-process-hello-world",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/datasharingframework/dsf-process-ping-pong",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/datasharingframework/dsf-process-allow-list",target:"_blank",rel:"noopener noreferrer"};function u(f,_){const t=a("ExternalLinkIcon");return i(),l("div",null,[e("div",p,[d,c,e("ul",null,[e("li",null,[r("The "),e("a",h,[r("hello world plugin"),o(t)])]),e("li",null,[r("The "),e("a",m,[r("ping pong plugin"),o(t)])]),e("li",null,[r("The "),e("a",g,[r("update allowlist plugin"),o(t)])])])])])}const b=n(s,[["render",u],["__file","upgrade-from-0.html.vue"]]),v=JSON.parse('{"path":"/stable/develop/upgrade-from-0.html","title":"Upgrade processes from 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade processes from 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1688985700000,"updatedTime":1692790324000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2},{"name":"Simon Mödinger","email":"smoeding@stud.hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.26,"words":79},"filePathRelative":"stable/develop/upgrade-from-0.md","localizedDate":"July 10, 2023","excerpt":"
\\n
Work in progress
\\n
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:
"}');export{b as comp,v as data};
diff --git a/assets/upgrade-from-0.html-hTNkwIzD.js b/assets/upgrade-from-0.html-hTNkwIzD.js
new file mode 100644
index 000000000..1f5f71e98
--- /dev/null
+++ b/assets/upgrade-from-0.html-hTNkwIzD.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const a={},i=n('
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
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:
Shut down your DSF instances (DSF FHIR Server and DSF BPE).
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)
Install the new DSF according to the instructions.
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).
Configure your processes according to the new process plugin documentation. 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).
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).
If you want to replace the old setup with the new one, shutdown the old instances (FHIR + BPE) and start the new ones.
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.
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.
',6),r=[i];function s(c,l){return t(),o("div",null,r)}const u=e(a,[["render",s],["__file","upgrade-from-0.html.vue"]]),h=JSON.parse('{"path":"/v1.3.1/maintain/upgrade-from-0.html","title":"Upgrade from DSF 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1698748420000,"updatedTime":1698748420000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.12,"words":337},"filePathRelative":"v1.3.1/maintain/upgrade-from-0.md","localizedDate":"October 31, 2023","excerpt":"
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
\\n
\\n
Do not use your 0.9.x configuration as starting point
\\n
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.
\\n
Please use the new installation manual to perform a new installation and use the old setup only for reference.
\\n
"}');export{u as comp,h as data};
diff --git a/assets/upgrade-from-0.html-y0bCUoag.js b/assets/upgrade-from-0.html-y0bCUoag.js
new file mode 100644
index 000000000..43d08908a
--- /dev/null
+++ b/assets/upgrade-from-0.html-y0bCUoag.js
@@ -0,0 +1 @@
+import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{o as t,c as o,e as n}from"./app-kq9lCQfY.js";const a={},i=n('
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
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:
Shut down your DSF instances (DSF FHIR Server and DSF BPE).
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)
Install the new DSF according to the instructions.
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).
Configure your processes according to the new process plugin documentation. 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).
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).
If you want to replace the old setup with the new one, shutdown the old instances (FHIR + BPE) and start the new ones.
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.
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.
',6),r=[i];function s(c,l){return t(),o("div",null,r)}const u=e(a,[["render",s],["__file","upgrade-from-0.html.vue"]]),h=JSON.parse('{"path":"/v1.5.1/maintain/upgrade-from-0.html","title":"Upgrade from DSF 0.9.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 0.9.x","icon":"update"},"headers":[],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.12,"words":337},"filePathRelative":"v1.5.1/maintain/upgrade-from-0.md","localizedDate":"April 17, 2024","excerpt":"
A direct upgrade from DSF 0.9.x to DSF 1.x is not supported.
\\n
\\n
Do not use your 0.9.x configuration as starting point
\\n
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.
\\n
Please use the new installation manual to perform a new installation and use the old setup only for reference.
\\n
"}');export{u as comp,h as data};
diff --git a/assets/upgrade-from-1.html-3neSA-BB.js b/assets/upgrade-from-1.html-3neSA-BB.js
new file mode 100644
index 000000000..c8c724e02
--- /dev/null
+++ b/assets/upgrade-from-1.html-3neSA-BB.js
@@ -0,0 +1,22 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as t,a as e,b as n,d as o,e as l}from"./app-kq9lCQfY.js";const d={},p=l(`
Upgrading the DSF from 1.0.0 to 1.1.0 involves modifying the docker-compose.yml files and recreating the containers.
Upgrade from 0.9.x
If you want to migrate from DSF 0.9.x, please follow these instructions.
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.1.0_upgrade
Modify the DSF FHIR docker-compose.yml file, replace the version number with 1.1.0
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.1.0_upgrade
Modify the DSF BPE docker-compose.yml file, replace the version number with 1.1.0
`,9),c=e("li",null,[e("p",null,[n("Upgrade the DSF BPE containers"),e("br"),n(" From "),e("code",null,"/opt/bpe"),n(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker compose up -d && docker compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),u=e("p",null,"Verify your upgrade:",-1),f=e("li",null,[n("Verify the DSF FHIR server is running in version 1.1.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 1.1.0, [...]")],-1),m=e("li",null,"Verify the DSF FHIR server started without errors",-1),h={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},g=e("li",null,[n("Verify the DSF BPE server is running in version 1.1.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 1.1.0, [...]")],-1),v=e("li",null,"Verify the DSF BPE server started without errors",-1),b=e("li",null,"Verify your install with a ping/pong test",-1);function k(x,_){const s=i("ExternalLinkIcon");return r(),t("div",null,[p,e("ol",null,[c,e("li",null,[u,e("ul",null,[f,m,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",h,[n("https://your-dsf-endpoint.de/fhir/"),o(s)]),n(" (authentication with your client-certificate)")]),g,v,b])])])])}const S=a(d,[["render",k],["__file","upgrade-from-1.html.vue"]]),w=JSON.parse('{"path":"/v1.1.0/maintain/upgrade-from-1.html","title":"Upgrade from DSF 1.x","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 1.x","icon":"update"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1692805200000,"updatedTime":1703006341000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":2},{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.06,"words":317},"filePathRelative":"v1.1.0/maintain/upgrade-from-1.md","localizedDate":"August 23, 2023","excerpt":"
Upgrading the DSF from 1.0.0 to 1.1.0 involves modifying the docker-compose.yml files and recreating the containers.
\\n
\\n
Upgrade from 0.9.x
\\n
If you want to migrate from DSF 0.9.x, please follow these instructions.
\\n
"}');export{S as comp,w as data};
diff --git a/assets/upgrade-from-1.html-Bedy_Kcy.js b/assets/upgrade-from-1.html-Bedy_Kcy.js
new file mode 100644
index 000000000..d50faad15
--- /dev/null
+++ b/assets/upgrade-from-1.html-Bedy_Kcy.js
@@ -0,0 +1,22 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as t,a as e,b as n,d as o,e as l}from"./app-kq9lCQfY.js";const d={},p=l(`
Upgrading the DSF from 1.5.0 to 1.5.1 involves modifying the docker-compose.yml files and recreating the containers.
Update to DSF 1.2.0 first
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
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.5.1_upgrade
Modify the DSF FHIR docker-compose.yml file, replace the version number with 1.5.1.
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.5.1_upgrade
Modify the DSF BPE docker-compose.yml file, replace the version number with 1.5.1.
`,9),c={start:"3"},u=e("li",null,[e("p",null,[n("Upgrade the DSF BPE containers"),e("br"),n(" From "),e("code",null,"/opt/bpe"),n(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker compose up -d && docker compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),f=e("p",null,"Verify your upgrade:",-1),m=e("li",null,[n("Verify the DSF FHIR server is running in version 1.5.1. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 1.5.1, [...]")],-1),h=e("li",null,"Verify the DSF FHIR server started without errors",-1),g={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},v=e("li",null,[n("Verify the DSF BPE server is running in version 1.5.1. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 1.5.1, [...]")],-1),b=e("li",null,"Verify the DSF BPE server started without errors",-1),k=e("li",null,"Verify your install with a ping/pong test",-1);function _(x,y){const s=i("ExternalLinkIcon");return r(),t("div",null,[p,e("ol",c,[u,e("li",null,[f,e("ul",null,[m,h,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",g,[n("https://your-dsf-endpoint.de/fhir/"),o(s)]),n(" (authentication with your client-certificate)")]),v,b,k])])])])}const D=a(d,[["render",_],["__file","upgrade-from-1.html.vue"]]),w=JSON.parse('{"path":"/v1.5.1/maintain/upgrade-from-1.html","title":"Upgrade from DSF 1.5.0","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 1.5.0","icon":"update"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1713374283000,"updatedTime":1713374283000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.07,"words":322},"filePathRelative":"v1.5.1/maintain/upgrade-from-1.md","localizedDate":"April 17, 2024","excerpt":"
Upgrading the DSF from 1.5.0 to 1.5.1 involves modifying the docker-compose.yml files and recreating the containers.
\\n
\\n
Update to DSF 1.2.0 first
\\n
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
\\n
"}');export{D as comp,w as data};
diff --git a/assets/upgrade-from-1.html-Bn629slA.js b/assets/upgrade-from-1.html-Bn629slA.js
new file mode 100644
index 000000000..217674864
--- /dev/null
+++ b/assets/upgrade-from-1.html-Bn629slA.js
@@ -0,0 +1,22 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as t,a as e,b as n,d as o,e as l}from"./app-kq9lCQfY.js";const d={},p=l(`
Upgrading the DSF from 1.4.0 to 1.5.0 involves modifying the docker-compose.yml files and recreating the containers.
Update to DSF 1.2.0 first
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
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.5.0_upgrade
Modify the DSF FHIR docker-compose.yml file, replace the version number with 1.5.0.
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.5.0_upgrade
Modify the DSF BPE docker-compose.yml file, replace the version number with 1.5.0.
`,9),c={start:"3"},u=e("li",null,[e("p",null,[n("Upgrade the DSF BPE containers"),e("br"),n(" From "),e("code",null,"/opt/bpe"),n(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker compose up -d && docker compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),f=e("p",null,"Verify your upgrade:",-1),m=e("li",null,[n("Verify the DSF FHIR server is running in version 1.5.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 1.5.0, [...]")],-1),h=e("li",null,"Verify the DSF FHIR server started without errors",-1),g={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},v=e("li",null,[n("Verify the DSF BPE server is running in version 1.5.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 1.5.0, [...]")],-1),b=e("li",null,"Verify the DSF BPE server started without errors",-1),k=e("li",null,"Verify your install with a ping/pong test",-1);function _(x,y){const s=i("ExternalLinkIcon");return r(),t("div",null,[p,e("ol",c,[u,e("li",null,[f,e("ul",null,[m,h,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",g,[n("https://your-dsf-endpoint.de/fhir/"),o(s)]),n(" (authentication with your client-certificate)")]),v,b,k])])])])}const D=a(d,[["render",_],["__file","upgrade-from-1.html.vue"]]),w=JSON.parse('{"path":"/v1.5.0/maintain/upgrade-from-1.html","title":"Upgrade from DSF 1.4.0","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 1.4.0","icon":"update"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1708419681000,"updatedTime":1708419681000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.07,"words":322},"filePathRelative":"v1.5.0/maintain/upgrade-from-1.md","localizedDate":"February 20, 2024","excerpt":"
Upgrading the DSF from 1.4.0 to 1.5.0 involves modifying the docker-compose.yml files and recreating the containers.
\\n
\\n
Update to DSF 1.2.0 first
\\n
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
\\n
"}');export{D as comp,w as data};
diff --git a/assets/upgrade-from-1.html-BybCxOQT.js b/assets/upgrade-from-1.html-BybCxOQT.js
new file mode 100644
index 000000000..06eb84262
--- /dev/null
+++ b/assets/upgrade-from-1.html-BybCxOQT.js
@@ -0,0 +1,22 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as t,a as e,b as n,d as o,e as l}from"./app-kq9lCQfY.js";const d={},p=l(`
Upgrading the DSF from 1.5.1 to 1.5.2 involves modifying the docker-compose.yml files and recreating the containers.
Update to DSF 1.2.0 first
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
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.5.2_upgrade
Modify the DSF FHIR docker-compose.yml file, replace the version number with 1.5.2.
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.5.2_upgrade
Modify the DSF BPE docker-compose.yml file, replace the version number with 1.5.2.
`,9),c={start:"3"},u=e("li",null,[e("p",null,[n("Upgrade the DSF BPE containers"),e("br"),n(" From "),e("code",null,"/opt/bpe"),n(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker compose up -d && docker compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),f=e("p",null,"Verify your upgrade:",-1),m=e("li",null,[n("Verify the DSF FHIR server is running in version 1.5.2. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 1.5.2, [...]")],-1),h=e("li",null,"Verify the DSF FHIR server started without errors",-1),g={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},v=e("li",null,[n("Verify the DSF BPE server is running in version 1.5.2. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 1.5.2, [...]")],-1),k=e("li",null,"Verify the DSF BPE server started without errors",-1),b=e("li",null,"Verify your install with a ping/pong test",-1);function _(x,y){const s=i("ExternalLinkIcon");return r(),t("div",null,[p,e("ol",c,[u,e("li",null,[f,e("ul",null,[m,h,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",g,[n("https://your-dsf-endpoint.de/fhir/"),o(s)]),n(" (authentication with your client-certificate)")]),v,k,b])])])])}const D=a(d,[["render",_],["__file","upgrade-from-1.html.vue"]]),w=JSON.parse('{"path":"/v1.5.2/maintain/upgrade-from-1.html","title":"Upgrade from DSF 1.5.1","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 1.5.1","icon":"update"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1720449876000,"updatedTime":1720449876000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.07,"words":322},"filePathRelative":"v1.5.2/maintain/upgrade-from-1.md","localizedDate":"July 8, 2024","excerpt":"
Upgrading the DSF from 1.5.1 to 1.5.2 involves modifying the docker-compose.yml files and recreating the containers.
\\n
\\n
Update to DSF 1.2.0 first
\\n
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
\\n
"}');export{D as comp,w as data};
diff --git a/assets/upgrade-from-1.html-CLS-rGPo.js b/assets/upgrade-from-1.html-CLS-rGPo.js
new file mode 100644
index 000000000..7596fe81e
--- /dev/null
+++ b/assets/upgrade-from-1.html-CLS-rGPo.js
@@ -0,0 +1,38 @@
+import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as t,o as l,c as r,a as e,b as n,d as a,e as o}from"./app-kq9lCQfY.js";const d={},p=o(`
Upgrading the DSF from 1.1.0 to 1.2.0 involves modifying the docker-compose.yml files and recreating the containers.
Upgrade from 0.9.x
If you want to migrate from DSF 0.9.x, please follow these instructions.
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.2.0_upgrade
Modify the DSF FHIR docker-compose.yml file, replace the version number with 1.2.0 and remove the old healthcheck definition. The new healthcheck is defined as part of the docker image.
The role configuration is now optional. If you don't use roles, you can remove the role config (default for new installations):
app:
+...
+ environment:
+...
+- # TODO specify role configuration to allow access to the UI via web-browser or REST API for specific users, see documentation at dsf.dev
+- DEV_DSF_FHIR_SERVER_ROLECONFIG: |
+
Upgrade the DSF FHIR containers From /opt/fhir execute
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.2.0_upgrade
Modify the DSF BPE docker-compose.yml file, replace the version number with 1.2.0 and remove the old healthcheck definition. The new healthcheck is defined as part of the docker image.
`,11),c={start:"3"},u={href:"https://github.com/datasharingframework/dsf-process-ping-pong/releases",target:"_blank",rel:"noopener noreferrer"},f={href:"https://github.com/datasharingframework/dsf-process-allow-list/releases",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[e("p",null,[n("Upgrade the DSF BPE containers"),e("br"),n(" From "),e("code",null,"/opt/bpe"),n(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker compose up -d && docker compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),m=e("p",null,"Verify your upgrade:",-1),v=e("li",null,[n("Verify the DSF FHIR server is running in version 1.2.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 1.2.0, [...]")],-1),g=e("li",null,"Verify the DSF FHIR server started without errors",-1),k={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},b=e("li",null,[n("Verify the DSF BPE server is running in version 1.2.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 1.2.0, [...]")],-1),x=e("li",null,"Verify the DSF BPE server started without errors",-1),_=e("li",null,"Verify your install with a ping/pong test",-1);function y(w,S){const s=t("ExternalLinkIcon");return l(),r("div",null,[p,e("ol",c,[e("li",null,[e("p",null,[n("DSF v1.2.0 is not compatible with the Ping/Pong process plugin v1.0.0.0, upgrade to the "),e("a",u,[n("Ping/Pong plugin v1.0.1.0"),a(s)]),n(" by removing the old jar file and replacing it with the new v1.0.1.0 one.")])]),e("li",null,[e("p",null,[n("We have released a new version of the Allow List Process plugin where we added support for delete operations. Please upgrade to the "),e("a",f,[n("Allow-List process v1.0.0.1"),a(s)]),n(" by removing the old jar file and replacing it with the new v1.0.0.1 one.")])]),h,e("li",null,[m,e("ul",null,[v,g,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",k,[n("https://your-dsf-endpoint.de/fhir/"),a(s)]),n(" (authentication with your client-certificate)")]),b,x,_])])])])}const I=i(d,[["render",y],["__file","upgrade-from-1.html.vue"]]),q=JSON.parse('{"path":"/v1.2.0/maintain/upgrade-from-1.html","title":"Upgrade from DSF 1.1.0","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 1.1.0","icon":"update"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1694544770000,"updatedTime":1703006341000,"contributors":[{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":6},{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2}]},"readingTime":{"minutes":1.71,"words":513},"filePathRelative":"v1.2.0/maintain/upgrade-from-1.md","localizedDate":"September 12, 2023","excerpt":"
Upgrading the DSF from 1.1.0 to 1.2.0 involves modifying the docker-compose.yml files and recreating the containers.
\\n
\\n
Upgrade from 0.9.x
\\n
If you want to migrate from DSF 0.9.x, please follow these instructions.
\\n
"}');export{I as comp,q as data};
diff --git a/assets/upgrade-from-1.html-CpUfeiok.js b/assets/upgrade-from-1.html-CpUfeiok.js
new file mode 100644
index 000000000..a0c0cf91a
--- /dev/null
+++ b/assets/upgrade-from-1.html-CpUfeiok.js
@@ -0,0 +1,22 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as t,a as e,b as n,d as o,e as l}from"./app-kq9lCQfY.js";const d={},p=l(`
Upgrading the DSF from 1.2.0 to 1.3.0 involves modifying the docker-compose.yml files and recreating the containers.
Upgrade from 0.9.x
If you want to migrate from DSF 0.9.x, please follow these instructions.
Update to DSF 1.2.0 first
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
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.3.0_upgrade
Modify the DSF FHIR docker-compose.yml file, replace the version number with 1.3.0.
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.3.0_upgrade
Modify the DSF BPE docker-compose.yml file, replace the version number with 1.3.0.
`,10),c={start:"3"},u=e("li",null,[e("p",null,[n("Upgrade the DSF BPE containers"),e("br"),n(" From "),e("code",null,"/opt/bpe"),n(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker compose up -d && docker compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),f=e("p",null,"Verify your upgrade:",-1),m=e("li",null,[n("Verify the DSF FHIR server is running in version 1.3.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 1.3.0, [...]")],-1),h=e("li",null,"Verify the DSF FHIR server started without errors",-1),g={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},v=e("li",null,[n("Verify the DSF BPE server is running in version 1.3.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 1.3.0, [...]")],-1),b=e("li",null,"Verify the DSF BPE server started without errors",-1),k=e("li",null,"Verify your install with a ping/pong test",-1);function x(_,y){const s=i("ExternalLinkIcon");return r(),t("div",null,[p,e("ol",c,[u,e("li",null,[f,e("ul",null,[m,h,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",g,[n("https://your-dsf-endpoint.de/fhir/"),o(s)]),n(" (authentication with your client-certificate)")]),v,b,k])])])])}const w=a(d,[["render",x],["__file","upgrade-from-1.html.vue"]]),D=JSON.parse('{"path":"/v1.3.0/maintain/upgrade-from-1.html","title":"Upgrade from DSF 1.2.0","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 1.2.0","icon":"update"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1696944513000,"updatedTime":1703006341000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.14,"words":342},"filePathRelative":"v1.3.0/maintain/upgrade-from-1.md","localizedDate":"October 10, 2023","excerpt":"
Upgrading the DSF from 1.2.0 to 1.3.0 involves modifying the docker-compose.yml files and recreating the containers.
\\n
\\n
Upgrade from 0.9.x
\\n
If you want to migrate from DSF 0.9.x, please follow these instructions.
\\n
"}');export{w as comp,D as data};
diff --git a/assets/upgrade-from-1.html-DG_FtmPQ.js b/assets/upgrade-from-1.html-DG_FtmPQ.js
new file mode 100644
index 000000000..fd3263b27
--- /dev/null
+++ b/assets/upgrade-from-1.html-DG_FtmPQ.js
@@ -0,0 +1,22 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as t,a as e,b as n,d as o,e as l}from"./app-kq9lCQfY.js";const d={},p=l(`
Upgrading the DSF from 1.3.2 to 1.4.0 involves modifying the docker-compose.yml files and recreating the containers.
Update to DSF 1.2.0 first
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
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.4.0_upgrade
Modify the DSF FHIR docker-compose.yml file, replace the version number with 1.4.0.
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.4.0_upgrade
Modify the DSF BPE docker-compose.yml file, replace the version number with 1.4.0.
`,9),c={start:"3"},u=e("li",null,[e("p",null,[n("Upgrade the DSF BPE containers"),e("br"),n(" From "),e("code",null,"/opt/bpe"),n(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker compose up -d && docker compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),f=e("p",null,"Verify your upgrade:",-1),m=e("li",null,[n("Verify the DSF FHIR server is running in version 1.4.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 1.4.0, [...]")],-1),h=e("li",null,"Verify the DSF FHIR server started without errors",-1),g={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},v=e("li",null,[n("Verify the DSF BPE server is running in version 1.4.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 1.4.0, [...]")],-1),b=e("li",null,"Verify the DSF BPE server started without errors",-1),k=e("li",null,"Verify your install with a ping/pong test",-1);function _(x,y){const s=i("ExternalLinkIcon");return r(),t("div",null,[p,e("ol",c,[u,e("li",null,[f,e("ul",null,[m,h,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",g,[n("https://your-dsf-endpoint.de/fhir/"),o(s)]),n(" (authentication with your client-certificate)")]),v,b,k])])])])}const D=a(d,[["render",_],["__file","upgrade-from-1.html.vue"]]),w=JSON.parse('{"path":"/v1.4.0/maintain/upgrade-from-1.html","title":"Upgrade from DSF 1.3.2","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 1.3.2","icon":"update"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1702917645000,"updatedTime":1703006341000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.07,"words":322},"filePathRelative":"v1.4.0/maintain/upgrade-from-1.md","localizedDate":"December 18, 2023","excerpt":"
Upgrading the DSF from 1.3.2 to 1.4.0 involves modifying the docker-compose.yml files and recreating the containers.
\\n
\\n
Update to DSF 1.2.0 first
\\n
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
\\n
"}');export{D as comp,w as data};
diff --git a/assets/upgrade-from-1.html-DO57QWSu.js b/assets/upgrade-from-1.html-DO57QWSu.js
new file mode 100644
index 000000000..c79e5daf3
--- /dev/null
+++ b/assets/upgrade-from-1.html-DO57QWSu.js
@@ -0,0 +1,22 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as t,a as e,b as n,d as o,e as l}from"./app-kq9lCQfY.js";const d={},p=l(`
Upgrading the DSF from 1.3.1 to 1.3.2 involves modifying the docker-compose.yml files and recreating the containers.
Update to DSF 1.2.0 first
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
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.3.2_upgrade
Modify the DSF FHIR docker-compose.yml file, replace the version number with 1.3.2.
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.3.2_upgrade
Modify the DSF BPE docker-compose.yml file, replace the version number with 1.3.2.
`,9),c={start:"3"},u=e("li",null,[e("p",null,[n("Upgrade the DSF BPE containers"),e("br"),n(" From "),e("code",null,"/opt/bpe"),n(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker compose up -d && docker compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),f=e("p",null,"Verify your upgrade:",-1),m=e("li",null,[n("Verify the DSF FHIR server is running in version 1.3.2. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 1.3.2, [...]")],-1),h=e("li",null,"Verify the DSF FHIR server started without errors",-1),g={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},v=e("li",null,[n("Verify the DSF BPE server is running in version 1.3.2. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 1.3.2, [...]")],-1),b=e("li",null,"Verify the DSF BPE server started without errors",-1),k=e("li",null,"Verify your install with a ping/pong test",-1);function _(x,y){const s=i("ExternalLinkIcon");return r(),t("div",null,[p,e("ol",c,[u,e("li",null,[f,e("ul",null,[m,h,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",g,[n("https://your-dsf-endpoint.de/fhir/"),o(s)]),n(" (authentication with your client-certificate)")]),v,b,k])])])])}const D=a(d,[["render",_],["__file","upgrade-from-1.html.vue"]]),w=JSON.parse('{"path":"/v1.3.2/maintain/upgrade-from-1.html","title":"Upgrade from DSF 1.3.1","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 1.3.1","icon":"update"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1701710218000,"updatedTime":1703006341000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":2},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.07,"words":322},"filePathRelative":"v1.3.2/maintain/upgrade-from-1.md","localizedDate":"December 4, 2023","excerpt":"
Upgrading the DSF from 1.3.1 to 1.3.2 involves modifying the docker-compose.yml files and recreating the containers.
\\n
\\n
Update to DSF 1.2.0 first
\\n
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
\\n
"}');export{D as comp,w as data};
diff --git a/assets/upgrade-from-1.html-DVhYYBK6.js b/assets/upgrade-from-1.html-DVhYYBK6.js
new file mode 100644
index 000000000..178d21a6c
--- /dev/null
+++ b/assets/upgrade-from-1.html-DVhYYBK6.js
@@ -0,0 +1,22 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as t,a as e,b as n,d as o,e as l}from"./app-kq9lCQfY.js";const d={},p=l(`
Upgrading the DSF from 1.3.0 to 1.3.1 involves modifying the docker-compose.yml files and recreating the containers.
Update to DSF 1.2.0 first
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
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.3.1_upgrade
Modify the DSF FHIR docker-compose.yml file, replace the version number with 1.3.1.
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.3.1_upgrade
Modify the DSF BPE docker-compose.yml file, replace the version number with 1.3.1.
`,9),c={start:"3"},u=e("li",null,[e("p",null,[n("Upgrade the DSF BPE containers"),e("br"),n(" From "),e("code",null,"/opt/bpe"),n(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker compose up -d && docker compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),f=e("p",null,"Verify your upgrade:",-1),m=e("li",null,[n("Verify the DSF FHIR server is running in version 1.3.1. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 1.3.1, [...]")],-1),h=e("li",null,"Verify the DSF FHIR server started without errors",-1),g={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},v=e("li",null,[n("Verify the DSF BPE server is running in version 1.3.1. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 1.3.1, [...]")],-1),b=e("li",null,"Verify the DSF BPE server started without errors",-1),k=e("li",null,"Verify your install with a ping/pong test",-1);function _(x,y){const s=i("ExternalLinkIcon");return r(),t("div",null,[p,e("ol",c,[u,e("li",null,[f,e("ul",null,[m,h,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",g,[n("https://your-dsf-endpoint.de/fhir/"),o(s)]),n(" (authentication with your client-certificate)")]),v,b,k])])])])}const D=a(d,[["render",_],["__file","upgrade-from-1.html.vue"]]),w=JSON.parse('{"path":"/v1.3.1/maintain/upgrade-from-1.html","title":"Upgrade from DSF 1.3.0","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 1.3.0","icon":"update"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1698748420000,"updatedTime":1703006341000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1},{"name":"Simon Schweizer","email":"simon-tobias.schweizer@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.07,"words":322},"filePathRelative":"v1.3.1/maintain/upgrade-from-1.md","localizedDate":"October 31, 2023","excerpt":"
Upgrading the DSF from 1.3.0 to 1.3.1 involves modifying the docker-compose.yml files and recreating the containers.
\\n
\\n
Update to DSF 1.2.0 first
\\n
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
\\n
"}');export{D as comp,w as data};
diff --git a/assets/upgrade-from-1.html-UX0GM5eH.js b/assets/upgrade-from-1.html-UX0GM5eH.js
new file mode 100644
index 000000000..577ff0d72
--- /dev/null
+++ b/assets/upgrade-from-1.html-UX0GM5eH.js
@@ -0,0 +1,22 @@
+import{_ as a}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as t,a as e,b as n,d as o,e as l}from"./app-kq9lCQfY.js";const d={},p=l(`
Upgrading the DSF from 1.5.1 to 1.5.2 involves modifying the docker-compose.yml files and recreating the containers.
Update to DSF 1.2.0 first
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
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.5.2_upgrade
Modify the DSF FHIR docker-compose.yml file, replace the version number with 1.5.2.
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.5.2_upgrade
Modify the DSF BPE docker-compose.yml file, replace the version number with 1.5.2.
`,9),c={start:"3"},u=e("li",null,[e("p",null,[n("Upgrade the DSF BPE containers"),e("br"),n(" From "),e("code",null,"/opt/bpe"),n(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker compose up -d && docker compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),f=e("p",null,"Verify your upgrade:",-1),m=e("li",null,[n("Verify the DSF FHIR server is running in version 1.5.2. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 1.5.2, [...]")],-1),h=e("li",null,"Verify the DSF FHIR server started without errors",-1),g={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},v=e("li",null,[n("Verify the DSF BPE server is running in version 1.5.2. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 1.5.2, [...]")],-1),b=e("li",null,"Verify the DSF BPE server started without errors",-1),k=e("li",null,"Verify your install with a ping/pong test",-1);function _(x,y){const s=i("ExternalLinkIcon");return r(),t("div",null,[p,e("ol",c,[u,e("li",null,[f,e("ul",null,[m,h,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",g,[n("https://your-dsf-endpoint.de/fhir/"),o(s)]),n(" (authentication with your client-certificate)")]),v,b,k])])])])}const D=a(d,[["render",_],["__file","upgrade-from-1.html.vue"]]),w=JSON.parse('{"path":"/stable/maintain/upgrade-from-1.html","title":"Upgrade from DSF 1.5.1","lang":"en-US","frontmatter":{"title":"Upgrade from DSF 1.5.1","icon":"update"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":null,"updatedTime":null,"contributors":[]},"readingTime":{"minutes":1.07,"words":322},"filePathRelative":"stable/maintain/upgrade-from-1.md","excerpt":"
Upgrading the DSF from 1.5.1 to 1.5.2 involves modifying the docker-compose.yml files and recreating the containers.
\\n
\\n
Update to DSF 1.2.0 first
\\n
When upgrading from 1.0.0 or 1.1.0 it is important to migrate to DSF 1.2.0 first.
\\n
"}');export{D as comp,w as data};
diff --git a/assets/upgradeFrom7.html-CEFLW_mR.js b/assets/upgradeFrom7.html-CEFLW_mR.js
new file mode 100644
index 000000000..5526cc7e5
--- /dev/null
+++ b/assets/upgradeFrom7.html-CEFLW_mR.js
@@ -0,0 +1,100 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as l,o as r,c as o,a as e,b as s,d as a,e as i}from"./app-kq9lCQfY.js";const d={},p=e("p",null,"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.",-1),c={href:"https://github.com/highmed/highmed-dsf/wiki/DSF-Upgrade-From-0.6.0-to-0.7.0",target:"_blank",rel:"noopener noreferrer"},u=e("h2",{id:"modify-dsf-fhir-server-setup",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#modify-dsf-fhir-server-setup"},[e("span",null,"Modify DSF FHIR Server Setup")])],-1),h=i(`
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
Modify the DSF FHIR docker-compose.yml file, replace 0.7.0 with 0.9.0
`,2),g=e("p",null,"Download prepared DSF FHIR server config files and extract/replace the external FHIR bundle",-1),m=e("strong",null,"Test NUM-CODEX",-1),_=e("br",null,null,-1),f={href:"https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_fhir_0_9_0.tar.gz",target:"_blank",rel:"noopener noreferrer"},v=i(`
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
+
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
+
`,1),O=e("p",null,[s("The command will update the external FHIR bundle at "),e("code",null,"/opt/fhir/conf/bundle.xml")],-1),z=e("p",null,"The output of the tar command should be",-1),P=e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`fhir/conf/bundle.xml
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])],-1),G=e("li",null,[e("p",null,[s("Upgrade the DSF FHIR containers"),e("br"),s(" From "),e("code",null,"/opt/fhir"),s(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker-compose up -d && docker-compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),q=e("h2",{id:"modify-dsf-bpe-server-setup",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#modify-dsf-bpe-server-setup"},[e("span",null,"Modify DSF BPE Server Setup")])],-1),T=i(`
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
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
`,2),j=e("p",null,"Upgrade DSF Plugins and Process-Plugins",-1),M=e("strong",null,"NUM-CODEX",-1),N=e("p",null,[s("Process plugins in "),e("code",null,"/opt/bpe/process"),s(":")],-1),B=e("code",null,"codex-process-data-transfer-0.6.0.jar",-1),U=e("code",null,"codex-process-data-transfer-0.7.0.jar",-1),C={href:"https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},V=e("code",null,"dsf-bpe-process-ping-0.6.0.jar",-1),A=e("code",null,"dsf-bpe-process-ping-0.7.0.jar",-1),L={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},X=e("p",null,[s("Make sure the process plugins in "),e("code",null,"/opt/bpe/process"),s(" are configured with "),e("code",null,"chmod 440"),s(" and "),e("code",null,"chown root:bpe"),s(".")],-1),Z=e("strong",null,"HiGHmed",-1),Q=e("p",null,[s("Process plugins in "),e("code",null,"/opt/bpe/process"),s(":")],-1),W=e("code",null,"codex-process-data-transfer-0.6.0.jar",-1),J=e("code",null,"codex-process-data-transfer-0.7.0.jar",-1),K={href:"https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},Y=e("code",null,"dsf-bpe-process-data-sharing-0.6.0.jar",-1),$=e("code",null,"dsf-bpe-process-data-sharing-0.7.0.jar",-1),ee={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},se=e("code",null,"dsf-bpe-process-feasibility-0.6.0.jar",-1),ne=e("code",null,"dsf-bpe-process-feasibility-0.7.0.jar",-1),ae={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},ie=e("code",null,"dsf-bpe-process-feasibility-mpc-0.6.0.jar",-1),te=e("code",null,"dsf-bpe-process-feasibility-mpc-0.7.0.jar",-1),le={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},re=e("code",null,"dsf-bpe-process-local-services-0.6.0.jar",-1),oe=e("code",null,"dsf-bpe-process-local-services-0.7.0.jar",-1),de={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},pe=e("code",null,"dsf-bpe-process-ping-0.6.0.jar",-1),ce=e("code",null,"dsf-bpe-process-ping-0.7.0.jar",-1),ue={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},he=e("code",null,"dsf-bpe-process-update-allow-list-0.6.0.jar",-1),ge=e("code",null,"dsf-bpe-process-update-allow-list-0.7.0.jar",-1),me={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},_e=e("p",null,[s("Make sure the process plugins in "),e("code",null,"/opt/bpe/process"),s(" are configured with "),e("code",null,"chmod 440"),s(" and "),e("code",null,"chown root:bpe"),s(".")],-1),fe=e("p",null,"Plugins in '/opt/bpe/plugin':",-1),ve=e("code",null,"dsf-mpi-client-pdq-0.7.0.jar",-1),be=e("code",null,"hapi-base-2.3.jar",-1),ke=e("code",null,"hapi-structures-v25-2.3.jar",-1),xe=e("code",null,"dsf-mpi-client-pdq-0.9.0.zip",-1),we={href:"https://github.com/highmed/highmed-dsf/releases/tag/v0.9.0",target:"_blank",rel:"noopener noreferrer"},De=e("code",null,"dsf-openehr-client-impl-0.7.0.jar",-1),Fe=e("code",null,"dsf-openehr-client-impl-0.9.0.zip",-1),Re={href:"https://github.com/highmed/highmed-dsf/releases/tag/v0.9.0",target:"_blank",rel:"noopener noreferrer"},Ee=e("p",null,[s("Make sure the plugins in "),e("code",null,"/opt/bpe/plugin"),s(" are configured with "),e("code",null,"chmod 440"),s(" and "),e("code",null,"chown root:bpe"),s(".")],-1),Se=e("li",null,[e("p",null,[s("Upgrade the DSF BPE containers"),e("br"),s(" From "),e("code",null,"/opt/bpe"),s(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker-compose up -d && docker-compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),He=e("p",null,"Verify your upgrade:",-1),ye=e("li",null,[s("Verify the DSF FHIR server is running in version 0.9.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.9.0, [...]")],-1),Ie=e("li",null,"Verify the DSF FHIR server started without errors",-1),Oe={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},ze=e("li",null,[s("Verify the DSF BPE server is running in version 0.9.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.9.0, [...]")],-1),Pe=e("li",null,"Verify the DSF BPE server started without errors",-1),Ge=e("li",null,"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.",-1),qe=e("br",null,null,-1),Te={href:"https://github.com/highmed/highmed-processes/wiki/Process-Ping-Start-v0.7.0",target:"_blank",rel:"noopener noreferrer"};function je(Me,Ne){const n=l("ExternalLinkIcon");return r(),o("div",null,[p,e("p",null,[e("strong",null,[s("If you are upgrading from 0.6.0 please see the "),e("a",c,[s("Upgrade from 0.6.0 to 0.7.0 guide"),a(n)]),s(" first.")])]),u,e("ol",null,[h,e("li",null,[g,e("ul",null,[e("li",null,[m,s(" (non HiGHmed) instance:"),_,e("a",f,[s("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_test_fhir_0_9_0.tar.gz"),a(n)]),v]),e("li",null,[b,s(" instance:"),k,e("a",x,[s("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_test_fhir_0_9_0.tar.gz"),a(n)]),w]),e("li",null,[D,s(" (non HiGHmed) instance:"),F,e("a",R,[s("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_codex_prod_fhir_0_9_0.tar.gz"),a(n)]),E]),e("li",null,[S,s(" instance:"),H,e("a",y,[s("https://github.com/highmed/highmed-dsf/wiki/resources/dsf_highmed_prod_fhir_0_9_0.tar.gz"),a(n)]),I])]),O,z,P]),G]),q,e("ol",null,[T,e("li",null,[j,e("ul",null,[e("li",null,[M,s(" (non HiGHmed) instance: "),e("ul",null,[e("li",null,[N,e("ol",null,[e("li",null,[s("Replace "),B,s(" with "),U,s(" from the "),e("a",C,[s("latest NUM-CODEX processes release"),a(n)])]),e("li",null,[s("Replace "),V,s(" with "),A,s(" from the "),e("a",L,[s("latest HiGHmed processes release"),a(n)])])]),X])])]),e("li",null,[Z,s(" instance: "),e("ul",null,[e("li",null,[Q,e("ol",null,[e("li",null,[s("Replace "),W,s(" with "),J,s(" from the "),e("a",K,[s("latest NUM-CODEX processes release"),a(n)])]),e("li",null,[s("Replace "),Y,s(" with "),$,s(" from the "),e("a",ee,[s("latest HiGHmed processes release"),a(n)])]),e("li",null,[s("Replace "),se,s(" with "),ne,s(" from the "),e("a",ae,[s("latest HiGHmed processes release"),a(n)])]),e("li",null,[s("Replace "),ie,s(" with "),te,s(" from the "),e("a",le,[s("latest HiGHmed processes release"),a(n)])]),e("li",null,[s("Replace "),re,s(" with "),oe,s(" from the "),e("a",de,[s("latest HiGHmed processes release"),a(n)])]),e("li",null,[s("Replace "),pe,s(" with "),ce,s(" from the "),e("a",ue,[s("latest HiGHmed processes release"),a(n)])]),e("li",null,[s("Replace "),he,s(" with "),ge,s(" from the "),e("a",me,[s("latest HiGHmed processes release"),a(n)])])]),_e]),e("li",null,[fe,e("ol",null,[e("li",null,[s("If you are using the provided PDQ MPI Client, replace "),ve,s(", "),be,s(" and "),ke,s(" with the new files from "),xe,s(", see "),e("a",we,[s("DSF release notes"),a(n)])]),e("li",null,[s("If you are using the provided openEHR Client, replace "),De,s(" with the new file from "),Fe,s(", see "),e("a",Re,[s("DSF release notes"),a(n)])])]),Ee])])])])]),Se,e("li",null,[He,e("ul",null,[ye,Ie,e("li",null,[s("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",Oe,[s("https://your-dsf-endpoint.de/fhir/"),a(n)]),s(" (authentication with your client-certificate)")]),ze,Pe,Ge,e("li",null,[s("Verify your install with a ping/pong test"),qe,s(" For a Task resource compatible with the 0.7.0 release of the ping process, see the "),e("a",Te,[s("Ping/Pong process wiki"),a(n)]),s(".")])])])])])}const Ce=t(d,[["render",je],["__file","upgradeFrom7.html.vue"]]),Ve=JSON.parse('{"path":"/oldstable/releases/upgradeFrom7.html","title":"Upgrading from 0.7.0 to 0.9.0","lang":"en-US","frontmatter":{"title":"Upgrading from 0.7.0 to 0.9.0","icon":"install"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":3.63,"words":1088},"filePathRelative":"oldstable/releases/upgradeFrom7.md","localizedDate":"August 23, 2023","excerpt":"
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.
"}');export{Ce as comp,Ve as data};
diff --git a/assets/upgradeFrom8.html-1Y_v8e3q.js b/assets/upgradeFrom8.html-1Y_v8e3q.js
new file mode 100644
index 000000000..0dfe2e978
--- /dev/null
+++ b/assets/upgradeFrom8.html-1Y_v8e3q.js
@@ -0,0 +1,52 @@
+import{_ as l}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as d,a as e,b as s,d as n,w as p,e as t}from"./app-kq9lCQfY.js";const c={},h=e("p",null,"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.",-1),u={href:"https://github.com/highmed/highmed-dsf/wiki/DSF-Upgrade-From-0.6.0-to-0.7.0",target:"_blank",rel:"noopener noreferrer"},g={href:"https://github.com/highmed/highmed-dsf/wiki/DSF-Upgrade-From-0.7.0-to-0.9.0",target:"_blank",rel:"noopener noreferrer"},f=e("br",null,null,-1),m=t(`
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
Modify the DSF FHIR docker-compose.yml file, replace 0.8.0 with 0.9.0
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
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
`,2),v=e("p",null,"Upgrade DSF Plugins and Process-Plugins",-1),b=e("strong",null,"NUM-CODEX",-1),k=e("p",null,[s("Process plugins in "),e("code",null,"/opt/bpe/process"),s(":")],-1),x=e("code",null,"codex-process-data-transfer-0.6.0.jar",-1),F=e("code",null,"codex-process-data-transfer-0.7.0.jar",-1),y={href:"https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},w=e("code",null,"dsf-bpe-process-ping-0.6.0.jar",-1),D=e("code",null,"dsf-bpe-process-ping-0.7.0.jar",-1),S={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},R=e("p",null,[s("Make sure the process plugins in "),e("code",null,"/opt/bpe/process"),s(" are configured with "),e("code",null,"chmod 440"),s(" and "),e("code",null,"chown root:bpe"),s(".")],-1),H=e("strong",null,"HiGHmed",-1),I=e("p",null,[s("Process plugins in "),e("code",null,"/opt/bpe/process"),s(":")],-1),E=e("code",null,"codex-process-data-transfer-0.6.0.jar",-1),q=e("code",null,"codex-process-data-transfer-0.7.0.jar",-1),j={href:"https://github.com/num-codex/codex-processes-ap1/releases/tag/v0.7.0",target:"_blank",rel:"noopener noreferrer"},P=e("code",null,"dsf-bpe-process-data-sharing-0.6.0.jar",-1),U=e("code",null,"dsf-bpe-process-data-sharing-0.7.0.jar",-1),B={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},M=e("code",null,"dsf-bpe-process-feasibility-0.6.0.jar",-1),G=e("code",null,"dsf-bpe-process-feasibility-0.7.0.jar",-1),O={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},C=e("code",null,"dsf-bpe-process-feasibility-mpc-0.6.0.jar",-1),N=e("code",null,"dsf-bpe-process-feasibility-mpc-0.7.0.jar",-1),V={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},T=e("code",null,"dsf-bpe-process-local-services-0.6.0.jar",-1),A=e("code",null,"dsf-bpe-process-local-services-0.7.0.jar",-1),L={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},z=e("code",null,"dsf-bpe-process-ping-0.6.0.jar",-1),X=e("code",null,"dsf-bpe-process-ping-0.7.0.jar",-1),Q={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},W=e("code",null,"dsf-bpe-process-update-allow-list-0.6.0.jar",-1),Z=e("code",null,"dsf-bpe-process-update-allow-list-0.7.0.jar",-1),J={href:"https://github.com/highmed/highmed-processes/tree/v0.7.0",target:"_blank",rel:"noopener noreferrer"},K=e("p",null,[s("Make sure the process plugins in "),e("code",null,"/opt/bpe/process"),s(" are configured with "),e("code",null,"chmod 440"),s(" and "),e("code",null,"chown root:bpe"),s(".")],-1),Y=e("p",null,"Plugins in '/opt/bpe/plugin':",-1),$=e("code",null,"dsf-mpi-client-pdq-0.7.0.jar",-1),ee=e("code",null,"hapi-base-2.3.jar",-1),se=e("code",null,"hapi-structures-v25-2.3.jar",-1),ne=e("code",null,"dsf-mpi-client-pdq-0.9.0.zip",-1),ae={href:"https://github.com/highmed/highmed-dsf/releases/tag/v0.9.0",target:"_blank",rel:"noopener noreferrer"},ie=e("code",null,"dsf-openehr-client-impl-0.7.0.jar",-1),te=e("code",null,"dsf-openehr-client-impl-0.9.0.zip",-1),oe={href:"https://github.com/highmed/highmed-dsf/releases/tag/v0.9.0",target:"_blank",rel:"noopener noreferrer"},le=e("p",null,[s("Make sure the plugins in "),e("code",null,"/opt/bpe/plugin"),s(" are configured with "),e("code",null,"chmod 440"),s(" and "),e("code",null,"chown root:bpe"),s(".")],-1),re=e("li",null,[e("p",null,[s("Upgrade the DSF BPE containers"),e("br"),s(" From "),e("code",null,"/opt/bpe"),s(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker-compose up -d && docker-compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),de=e("p",null,"Verify your upgrade:",-1),pe=e("li",null,[s("Verify the DSF FHIR server is running in version 0.9.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.9.0, [...]")],-1),ce=e("li",null,"Verify the DSF FHIR server started without errors",-1),he={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},ue=e("li",null,[s("Verify the DSF BPE server is running in version 0.9.0. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.9.0, [...]")],-1),ge=e("li",null,"Verify the DSF BPE server started without errors",-1),fe=e("li",null,"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.",-1),me=e("br",null,null,-1),_e={href:"https://github.com/highmed/highmed-processes/wiki/Process-Ping-Start-v0.7.0",target:"_blank",rel:"noopener noreferrer"};function ve(be,ke){const a=i("ExternalLinkIcon"),o=i("RouteLink");return r(),d("div",null,[h,e("p",null,[e("strong",null,[s("If you are upgrading from 0.6.0 please see the "),e("a",u,[s("Upgrade from 0.6.0 to 0.7.0 guide"),n(a)]),s(" first and then visit the "),e("a",g,[s("Upgrade from 0.7.0 to 0.9.0 guide"),n(a)]),s(".")]),f,e("strong",null,[s("If you are upgrading from 0.7.0 please see the "),n(o,{to:"/oldstable/releases/upgradeFrom7.html"},{default:p(()=>[s("Upgrade from 0.7.0 to 0.9.0 guide")]),_:1}),s(".")])]),m,e("ol",null,[_,e("li",null,[v,e("ul",null,[e("li",null,[b,s(" (non HiGHmed) instance: "),e("ul",null,[e("li",null,[k,e("ol",null,[e("li",null,[s("Replace "),x,s(" with "),F,s(" from the "),e("a",y,[s("latest NUM-CODEX processes release"),n(a)])]),e("li",null,[s("Replace "),w,s(" with "),D,s(" from the "),e("a",S,[s("latest HiGHmed processes release"),n(a)])])]),R])])]),e("li",null,[H,s(" instance: "),e("ul",null,[e("li",null,[I,e("ol",null,[e("li",null,[s("Replace "),E,s(" with "),q,s(" from the "),e("a",j,[s("latest NUM-CODEX processes release"),n(a)])]),e("li",null,[s("Replace "),P,s(" with "),U,s(" from the "),e("a",B,[s("latest HiGHmed processes release"),n(a)])]),e("li",null,[s("Replace "),M,s(" with "),G,s(" from the "),e("a",O,[s("latest HiGHmed processes release"),n(a)])]),e("li",null,[s("Replace "),C,s(" with "),N,s(" from the "),e("a",V,[s("latest HiGHmed processes release"),n(a)])]),e("li",null,[s("Replace "),T,s(" with "),A,s(" from the "),e("a",L,[s("latest HiGHmed processes release"),n(a)])]),e("li",null,[s("Replace "),z,s(" with "),X,s(" from the "),e("a",Q,[s("latest HiGHmed processes release"),n(a)])]),e("li",null,[s("Replace "),W,s(" with "),Z,s(" from the "),e("a",J,[s("latest HiGHmed processes release"),n(a)])])]),K]),e("li",null,[Y,e("ol",null,[e("li",null,[s("If you are using the provided PDQ MPI Client, replace "),$,s(", "),ee,s(" and "),se,s(" with the new files from "),ne,s(", see "),e("a",ae,[s("DSF release notes"),n(a)])]),e("li",null,[s("If you are using the provided openEHR Client, replace "),ie,s(" with the new file from "),te,s(", see "),e("a",oe,[s("DSF release notes"),n(a)])])]),le])])])])]),re,e("li",null,[de,e("ul",null,[pe,ce,e("li",null,[s("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",he,[s("https://your-dsf-endpoint.de/fhir/"),n(a)]),s(" (authentication with your client-certificate)")]),ue,ge,fe,e("li",null,[s("Verify your install with a ping/pong test"),me,s(" For a Task resource compatible with the 0.7.0 release of the ping process, see the "),e("a",_e,[s("Ping/Pong process wiki"),n(a)]),s(".")])])])])])}const ye=l(c,[["render",ve],["__file","upgradeFrom8.html.vue"]]),we=JSON.parse('{"path":"/oldstable/releases/upgradeFrom8.html","title":"Upgrading from 0.8.0 to 0.9.0","lang":"en-US","frontmatter":{"title":"Upgrading from 0.8.0 to 0.9.0","icon":"install"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":2.99,"words":898},"filePathRelative":"oldstable/releases/upgradeFrom8.md","localizedDate":"August 23, 2023","excerpt":"
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.
"}');export{ye as comp,we as data};
diff --git a/assets/upgradeFrom90.html-RKmk-LJj.js b/assets/upgradeFrom90.html-RKmk-LJj.js
new file mode 100644
index 000000000..10fb11f05
--- /dev/null
+++ b/assets/upgradeFrom90.html-RKmk-LJj.js
@@ -0,0 +1,39 @@
+import{_ as o}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as i,o as r,c as d,a as e,b as n,d as s,w as p,e as t}from"./app-kq9lCQfY.js";const c={},u=e("p",null,"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.",-1),h=t(`
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
Modify the DSF FHIR docker-compose.yml file, replace 0.9.0 with 0.9.1
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
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
`,2),f=e("br",null,null,-1),m=e("br",null,null,-1),v=e("code",null,"dsf-mpi-client-pdq-0.7.0.jar",-1),k=e("code",null,"hapi-base-2.3.jar",-1),b=e("code",null,"hapi-structures-v25-2.3.jar",-1),_=e("code",null,"dsf-mpi-client-pdq-0.9.1.zip",-1),x={href:"https://github.com/highmed/highmed-dsf/releases/tag/v0.9.1",target:"_blank",rel:"noopener noreferrer"},y=e("br",null,null,-1),F=e("code",null,"dsf-openehr-client-impl-0.7.0.jar",-1),S=e("code",null,"dsf-openehr-client-impl-0.9.1.zip",-1),q={href:"https://github.com/highmed/highmed-dsf/releases/tag/v0.9.1",target:"_blank",rel:"noopener noreferrer"},D=e("pre",null,[e("code",null," Make sure the plugins in `/opt/bpe/plugin` are configured with `chmod 440` and `chown root:bpe`. \n")],-1),I=e("li",null,[e("p",null,[n("Upgrade the DSF BPE containers"),e("br"),n(" From "),e("code",null,"/opt/bpe"),n(" execute")]),e("div",{class:"language-text line-numbers-mode","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`docker-compose up -d && docker-compose logs -f
+`)]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"})])])],-1),w=e("p",null,"Verify your upgrade:",-1),P=e("li",null,[n("Verify the DSF FHIR server is running in version 0.9.1. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.9.1, [...]")],-1),B=e("li",null,"Verify the DSF FHIR server started without errors",-1),H={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},R=e("li",null,[n("Verify the DSF BPE server is running in version 0.9.1. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.9.1, [...]")],-1),C=e("li",null,"Verify the DSF BPE server started without errors",-1),j=e("li",null,"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.",-1),E=e("br",null,null,-1),M={href:"https://github.com/highmed/highmed-processes/wiki/Process-Ping-Start-v0.7.0",target:"_blank",rel:"noopener noreferrer"};function V(U,N){const l=i("RouteLink"),a=i("ExternalLinkIcon");return r(),d("div",null,[u,e("p",null,[e("strong",null,[n("If you are upgrading from 0.8.0 please see the "),s(l,{to:"/oldstable/releases/upgradeFrom8.html"},{default:p(()=>[n("Upgrade from 0.8.0 to 0.9.0 guide")]),_:1}),n(".")])]),h,e("ol",null,[g,e("li",null,[e("p",null,[n("Upgrade DSF Plugins and Process-Plugins"),f,n(" * Plugins in '/opt/bpe/plugin':"),m,n(" 1. If you are using the provided PDQ MPI Client, replace "),v,n(", "),k,n(" and "),b,n(" with the new files from "),_,n(", see "),e("a",x,[n("DSF release notes"),s(a)]),y,n(" 1. If you are using the provided openEHR Client, replace "),F,n(" with the new file from "),S,n(", see "),e("a",q,[n("DSF release notes"),s(a)])]),D]),I,e("li",null,[w,e("ul",null,[P,B,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",H,[n("https://your-dsf-endpoint.de/fhir/"),s(a)]),n(" (authentication with your client-certificate)")]),R,C,j,e("li",null,[n("Verify your install with a ping/pong test"),E,n(" For a Task resource compatible with the 0.7.0 release of the ping process, see the "),e("a",M,[n("Ping/Pong process wiki"),s(a)]),n(".")])])])])])}const L=o(c,[["render",V],["__file","upgradeFrom90.html.vue"]]),O=JSON.parse('{"path":"/oldstable/releases/upgradeFrom90.html","title":"Upgrading from 0.9.0 to 0.9.1","lang":"en-US","frontmatter":{"title":"Upgrading from 0.9.0 to 0.9.1","icon":"install"},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.83,"words":549},"filePathRelative":"oldstable/releases/upgradeFrom90.md","localizedDate":"August 23, 2023","excerpt":"
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.
"}');export{L as comp,O as data};
diff --git a/assets/upgradeFrom91.html-C4vCWdyC.js b/assets/upgradeFrom91.html-C4vCWdyC.js
new file mode 100644
index 000000000..68ff8e372
--- /dev/null
+++ b/assets/upgradeFrom91.html-C4vCWdyC.js
@@ -0,0 +1,30 @@
+import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as t,o,c as l,a as e,b as n,d as a,e as i}from"./app-kq9lCQfY.js";const d={},p=i(`
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.
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
Modify the DSF FHIR docker-compose.yml file, replace 0.9.1 (or 0.9.0) with 0.9.2
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
Modify the DSF BPE docker-compose.yml file, replace 0.9.1 (or 0.9.0) with 0.9.2
Upgrade the DSF BPE containers From /opt/bpe execute
docker-compose up -d && docker-compose logs -f
+
`,3),u=e("p",null,"Verify your upgrade:",-1),h=e("li",null,[n("Verify the DSF FHIR server is running in version 0.9.2. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.9.2, [...]")],-1),f=e("li",null,"Verify the DSF FHIR server started without errors",-1),g={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},m=e("li",null,[n("Verify the DSF BPE server is running in version 0.9.2. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.9.2, [...]")],-1),v=e("li",null,"Verify the DSF BPE server started without errors",-1),k=e("br",null,null,-1),b={href:"https://github.com/highmed/highmed-processes/wiki/Process-Ping-Start-v0.7.0",target:"_blank",rel:"noopener noreferrer"};function x(_,y){const s=t("ExternalLinkIcon");return o(),l("div",null,[p,e("ol",null,[c,e("li",null,[u,e("ul",null,[h,f,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",g,[n("https://your-dsf-endpoint.de/fhir/"),a(s)]),n(" (authentication with your client-certificate)")]),m,v,e("li",null,[n("Verify your install with a ping/pong test"),k,n(" For a Task resource compatible with the 0.7.0 release of the ping process, see the "),e("a",b,[n("Ping/Pong process wiki"),a(s)]),n(".")])])])])])}const q=r(d,[["render",x],["__file","upgradeFrom91.html.vue"]]),D=JSON.parse('{"path":"/oldstable/releases/upgradeFrom91.html","title":"Upgrading from 0.9.1","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.26,"words":379},"filePathRelative":"oldstable/releases/upgradeFrom91.md","localizedDate":"August 23, 2023","excerpt":"\\n
Upgrading the DSF from 0.9.1 to 0.9.2 involves modifying the docker-compose.yml files and recreating the containers.
\\n
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.
"}');export{q as comp,D as data};
diff --git a/assets/upgradeFrom92.html-CoFcIWbe.js b/assets/upgradeFrom92.html-CoFcIWbe.js
new file mode 100644
index 000000000..2b0dfd318
--- /dev/null
+++ b/assets/upgradeFrom92.html-CoFcIWbe.js
@@ -0,0 +1,30 @@
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r,o,c as l,a as e,b as n,d as a,e as i}from"./app-kq9lCQfY.js";const d={},p=i(`
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.
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
Modify the DSF FHIR docker-compose.yml file, replace 0.9.2 (or 0.9.0, 0.9.1) with 0.9.3
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
Modify the DSF BPE docker-compose.yml file, replace 0.9.2 (or 0.9.0, 0.9.1) with 0.9.3
Upgrade the DSF BPE containers From /opt/bpe execute
docker-compose up -d && docker-compose logs -f
+
`,3),u=e("p",null,"Verify your upgrade:",-1),h=e("li",null,[n("Verify the DSF FHIR server is running in version 0.9.3. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-fhir-server-jetty, version: 0.9.3, [...]")],-1),f=e("li",null,"Verify the DSF FHIR server started without errors",-1),g={href:"https://your-dsf-endpoint.de/fhir/",target:"_blank",rel:"noopener noreferrer"},m=e("li",null,[n("Verify the DSF BPE server is running in version 0.9.3. The log should contain a message:"),e("br"),e("code",null,"INFO main - BuildInfoReaderImpl.logBuildInfo(137) | Artifact: dsf-bpe-server-jetty, version: 0.9.3, [...]")],-1),v=e("li",null,"Verify the DSF BPE server started without errors",-1),k=e("br",null,null,-1),b={href:"https://github.com/highmed/highmed-processes/wiki/Process-Ping-Start-v0.7.0",target:"_blank",rel:"noopener noreferrer"};function x(_,y){const s=r("ExternalLinkIcon");return o(),l("div",null,[p,e("ol",null,[c,e("li",null,[u,e("ul",null,[h,f,e("li",null,[n("Verify the DSF FHIR server is accessible via https, for example by browsing to "),e("a",g,[n("https://your-dsf-endpoint.de/fhir/"),a(s)]),n(" (authentication with your client-certificate)")]),m,v,e("li",null,[n("Verify your install with a ping/pong test"),k,n(" For a Task resource compatible with the 0.7.0 release of the ping process, see the "),e("a",b,[n("Ping/Pong process wiki"),a(s)]),n(".")])])])])])}const q=t(d,[["render",x],["__file","upgradeFrom92.html.vue"]]),D=JSON.parse('{"path":"/oldstable/releases/upgradeFrom92.html","title":"Upgrading from 0.9.2","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"Modify DSF FHIR Server Setup","slug":"modify-dsf-fhir-server-setup","link":"#modify-dsf-fhir-server-setup","children":[]},{"level":2,"title":"Modify DSF BPE Server Setup","slug":"modify-dsf-bpe-server-setup","link":"#modify-dsf-bpe-server-setup","children":[]}],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":1.28,"words":385},"filePathRelative":"oldstable/releases/upgradeFrom92.md","localizedDate":"August 23, 2023","excerpt":"\\n
Upgrading the DSF from 0.9.2 to 0.9.3 involves modifying the docker-compose.yml files and recreating the containers.
\\n
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.
"}');export{q as comp,D as data};
diff --git a/assets/usingTheGitHubMaven.html-_DTrQqeM.js b/assets/usingTheGitHubMaven.html-_DTrQqeM.js
new file mode 100644
index 000000000..c45637cf1
--- /dev/null
+++ b/assets/usingTheGitHubMaven.html-_DTrQqeM.js
@@ -0,0 +1,40 @@
+import{_ as p}from"./plugin-vue_export-helper-DlAUqK2U.js";import{r as o,o as c,c as l,a,b as n,d as t,e}from"./app-kq9lCQfY.js";const i={},u=a("h2",{id:"authenticating-to-github-packages",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#authenticating-to-github-packages"},[a("span",null,"Authenticating to GitHub Packages")])],-1),k={href:"https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry#authenticating-to-github-packages",target:"_blank",rel:"noopener noreferrer"},g={href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token",target:"_blank",rel:"noopener noreferrer"},r=e(`
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.
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):
`,2);function m(v,b){const s=o("ExternalLinkIcon");return c(),l("div",null,[u,a("p",null,[n("For more information take a look at this GitHub documentation about "),a("a",k,[n("authentication"),t(s)]),n(".")]),a("p",null,[n("In order to install the HiGHmed DSF packages using Maven in your own projects you need a personal GitHub access token. This "),a("a",g,[n("GitHub documentation"),t(s)]),n(" shows you how to generate one.")]),r,a("p",null,[n("For more information take a look at this GitHub documentation about "),a("a",d,[n("package installation"),t(s)]),n(".")]),h])}const w=p(i,[["render",m],["__file","usingTheGitHubMaven.html.vue"]]),x=JSON.parse('{"path":"/oldstable/code/usingTheGitHubMaven.html","title":"Using the Github Maven Package Registry","lang":"en-US","frontmatter":{"title":"Using the Github Maven Package Registry","icon":"code"},"headers":[{"level":2,"title":"Authenticating to GitHub Packages","slug":"authenticating-to-github-packages","link":"#authenticating-to-github-packages","children":[]},{"level":2,"title":"Installing a Package","slug":"installing-a-package","link":"#installing-a-package","children":[]}],"git":{"createdTime":1692783801000,"updatedTime":1692783801000,"contributors":[{"name":"Hauke Hund","email":"hauke.hund@hs-heilbronn.de","commits":1}]},"readingTime":{"minutes":0.94,"words":283},"filePathRelative":"oldstable/code/usingTheGitHubMaven.md","localizedDate":"August 23, 2023","excerpt":"
Authenticating to GitHub Packages
\\n
For more information take a look at this GitHub documentation about authentication.
"}');export{w as comp,x as data};
diff --git a/download/dsf_bpe_1_0_0.tar.gz b/download/dsf_bpe_1_0_0.tar.gz
new file mode 100644
index 000000000..fbb3b74ff
Binary files /dev/null and b/download/dsf_bpe_1_0_0.tar.gz differ
diff --git a/download/dsf_bpe_1_1_0.tar.gz b/download/dsf_bpe_1_1_0.tar.gz
new file mode 100644
index 000000000..4fa370d0e
Binary files /dev/null and b/download/dsf_bpe_1_1_0.tar.gz differ
diff --git a/download/dsf_bpe_1_2_0.tar.gz b/download/dsf_bpe_1_2_0.tar.gz
new file mode 100644
index 000000000..10c168766
Binary files /dev/null and b/download/dsf_bpe_1_2_0.tar.gz differ
diff --git a/download/dsf_bpe_1_3_0.tar.gz b/download/dsf_bpe_1_3_0.tar.gz
new file mode 100644
index 000000000..3362f863e
Binary files /dev/null and b/download/dsf_bpe_1_3_0.tar.gz differ
diff --git a/download/dsf_bpe_1_3_1.tar.gz b/download/dsf_bpe_1_3_1.tar.gz
new file mode 100644
index 000000000..2aa4491a7
Binary files /dev/null and b/download/dsf_bpe_1_3_1.tar.gz differ
diff --git a/download/dsf_bpe_1_3_2.tar.gz b/download/dsf_bpe_1_3_2.tar.gz
new file mode 100644
index 000000000..34008fd0e
Binary files /dev/null and b/download/dsf_bpe_1_3_2.tar.gz differ
diff --git a/download/dsf_bpe_1_4_0.tar.gz b/download/dsf_bpe_1_4_0.tar.gz
new file mode 100644
index 000000000..1b84fca62
Binary files /dev/null and b/download/dsf_bpe_1_4_0.tar.gz differ
diff --git a/download/dsf_bpe_1_5_0.tar.gz b/download/dsf_bpe_1_5_0.tar.gz
new file mode 100644
index 000000000..60f117774
Binary files /dev/null and b/download/dsf_bpe_1_5_0.tar.gz differ
diff --git a/download/dsf_bpe_1_5_1.tar.gz b/download/dsf_bpe_1_5_1.tar.gz
new file mode 100644
index 000000000..eb92deee5
Binary files /dev/null and b/download/dsf_bpe_1_5_1.tar.gz differ
diff --git a/download/dsf_bpe_1_5_2.tar.gz b/download/dsf_bpe_1_5_2.tar.gz
new file mode 100644
index 000000000..054bf5c54
Binary files /dev/null and b/download/dsf_bpe_1_5_2.tar.gz differ
diff --git a/download/dsf_fhir_1_0_0.tar.gz b/download/dsf_fhir_1_0_0.tar.gz
new file mode 100644
index 000000000..4b4ebef6d
Binary files /dev/null and b/download/dsf_fhir_1_0_0.tar.gz differ
diff --git a/download/dsf_fhir_1_1_0.tar.gz b/download/dsf_fhir_1_1_0.tar.gz
new file mode 100644
index 000000000..7f05e2002
Binary files /dev/null and b/download/dsf_fhir_1_1_0.tar.gz differ
diff --git a/download/dsf_fhir_1_2_0.tar.gz b/download/dsf_fhir_1_2_0.tar.gz
new file mode 100644
index 000000000..b79e705d0
Binary files /dev/null and b/download/dsf_fhir_1_2_0.tar.gz differ
diff --git a/download/dsf_fhir_1_3_0.tar.gz b/download/dsf_fhir_1_3_0.tar.gz
new file mode 100644
index 000000000..897f03d05
Binary files /dev/null and b/download/dsf_fhir_1_3_0.tar.gz differ
diff --git a/download/dsf_fhir_1_3_1.tar.gz b/download/dsf_fhir_1_3_1.tar.gz
new file mode 100644
index 000000000..263d7470d
Binary files /dev/null and b/download/dsf_fhir_1_3_1.tar.gz differ
diff --git a/download/dsf_fhir_1_3_2.tar.gz b/download/dsf_fhir_1_3_2.tar.gz
new file mode 100644
index 000000000..9e650e9e6
Binary files /dev/null and b/download/dsf_fhir_1_3_2.tar.gz differ
diff --git a/download/dsf_fhir_1_4_0.tar.gz b/download/dsf_fhir_1_4_0.tar.gz
new file mode 100644
index 000000000..ef7d24b8b
Binary files /dev/null and b/download/dsf_fhir_1_4_0.tar.gz differ
diff --git a/download/dsf_fhir_1_5_0.tar.gz b/download/dsf_fhir_1_5_0.tar.gz
new file mode 100644
index 000000000..7e9c6bc22
Binary files /dev/null and b/download/dsf_fhir_1_5_0.tar.gz differ
diff --git a/download/dsf_fhir_1_5_1.tar.gz b/download/dsf_fhir_1_5_1.tar.gz
new file mode 100644
index 000000000..511bab7c7
Binary files /dev/null and b/download/dsf_fhir_1_5_1.tar.gz differ
diff --git a/download/dsf_fhir_1_5_2.tar.gz b/download/dsf_fhir_1_5_2.tar.gz
new file mode 100644
index 000000000..de8a28ff5
Binary files /dev/null and b/download/dsf_fhir_1_5_2.tar.gz differ
diff --git a/for-you/index.html b/for-you/index.html
new file mode 100644
index 000000000..6c1a2a4d0
--- /dev/null
+++ b/for-you/index.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+ DSF for your project
+
+
+
+
+
+
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.
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.
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.
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 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.
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.
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 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 committed to advancing biomedical research through secure, interoperable data sharing.
+
+
+
diff --git a/for-you/learn.html b/for-you/learn.html
new file mode 100644
index 000000000..48a418e42
--- /dev/null
+++ b/for-you/learn.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+ How to implement your use-case
+
+
+
+
+
+
Wir laden Sie herzlich zu unserem kommenden Hackathon am 18.06. von 10:00 Uhr bis 15:30 Uhr ein. Diese Veranstaltung bietet die Gelegenheit, sich mit den neuesten Updates und Funktionen unserer Komponenten vertraut zu machen.
Agenda:
Einführung in Neuerungen (10:00 - 11:00 Uhr):
Begrüßung und Einführung in die neuen Funktionen und Verbesserungen des DSFs
Präsentation der Änderungen der MII DSF-Prozessplugins, sowie von Blaze und Flare
Updates MII-Komponenten (ab 11:00 Uhr bis verlängerter Pause, um NUM-DIZ-Meeting besuchen zu können):
DSF
Feasibility
Data Sharing
Data Transfer
KDS Report
Blaze
Flare mit neuer KDS Ontologie
Testen des Prozessplugins "Data Sharing" (ab 14:15 Uhr):
Praktische Anwendung des "Data Sharing"-Prozessplugins auf unserer Testinfrastruktur.
Ziel der Veranstaltung ist es die Test- und Produktivsysteme möglichst aller Standorte auf den neusten Stand zu patchen.
In diesem Hackathon ist das Aktualisieren der Systeme ein aktiver Bestandteil und bedarf keiner speziellen Vorbereitung. Für das Testen der Data Sharing Prozesse sollten jedoch einige Voraussetzungen bereits vor dem Termin erfüllt sein.
Für den Hackathon werden wir primär die Test-DMS aus Heilbronn verwenden, dafür muss neben der Freigabe zur FDPG auch die Freigabe zum und vom MII-Test-System der HHN vorhanden sein (mii-test.gecko.hs-heilbronn.deopen in new window).
In diesem Kontext bietet es sich an, auch die Freigaben für weitere Test-DMSen zu beantragen. Weitere Details dazu befinden sich in der Liste der Firewallregeln im Test-Allowlist-Management-Tool (allowlist-test.gecko.hs-heilbronn.deopen in new window) unter dem Punkt “Download Allowlist”. Wir planen während des Termins auch mit ausgewählten DIZen erste Funktionstests der Test-DMSen durchzuführen.
Wir empfehlen auch sicherzustellen, dass Sie Zugriff auf die Weboberfläche Ihres DSF-FHIR-Servers haben.
Zur Datenausleitung im Kontext des Data Sharing Prozesses werden wir FHIR Bundles mit Testdaten zur Verfügung stellen, die in Form eines FHIR Bundles auf einem FHIR Store gespeichert werden müssen. Dabei kann ein beliebiger FHIR Server (z.B. HAPI FHIR oder Blaze) verwendet werden. Es kann auch der FHIR Server verwendet werden, der z.B. für Feasibility im Testsystem genutzt wird.
Weitere Details zum Data Sharing Prozess sind hier zu finden:
Falls Sie Fragen zum Hackathon oder der Installation des DSF haben, melden Sie sich gerne über den DSF-Community Zulip-Channel oder dsf-gecko@hs-heilbronn.de.
The Data Sharing Framework (DSF) is a concept for a secure middleware to distribute data sharing processes based on the BPMN 2.0 and FHIR R4 standards. The DSF is used to support biomedical research with routine data, aiming to extract, merge, pseudonymize and provide data stored in multiple distributed organizations. Every participating site runs a FHIR endpoint accessible by other sites and a business process engine in the local secured network. The process engines execute BPMN processes in order to coordinate local and remote steps necessary to enable cross-site data sharing or feasibility analyses. This includes access to local data repositories, use-and-access-committee decision support, consent filtering, and privacy preserving record-linkage and pseudonymization. The aim is to enable secure and syntactically-, semantically- and process-interoperable data exchange across organizational boundaries. The secure communication infrastructure is funded by the German Federal Ministry of Education and Research within the Medical Informatics structure as DSF Communityopen in new window.
We are very pleased to have won the Rolf Hansen Memorial Award at EFMI MIE 2023open in new window 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 open in new window
The main objective is to allow only authorized organizations to do what "we" allow them to do (e.g. query data). First, we need a list of organizations that we trust. Secondly, we need a way to ensure that the other party is a member of the parent organization. Thirdly, a list of actions we want to allow the organization to perform is needed. An organization can have different roles in different use cases.
The Allow List consists of Organization-, Endpoint- and OrganisationAffiliation- resources. With these resources the allow list defines communication partners and and parent organizations like research consortia and groups as well as the roles of each organization. Each DSF FHIR server stores their own allow list. To make sure that processes can be executed, parties must allow access via their allow list.
The Data Sharing Framework implements a distributed business process engine based on the BPMN 2.0 and FHIR R4 standards. Every participating organisation (e.g. ORG. A) runs a FHIR endpoint accessible by other sites and a business process engine (BPE) in the local secured network. Once the DSF has been installed in an organisation, it can be used for multiple use cases.
The following architecture diagram also shows three organisations, each of which has installed the DSF. The FHIR endpoint (green) is located in a demilitarised zone (DMZ) and is accessible from outside for communication with other organisations. It can be compared to a mailbox. The Business Process Engine (BPE - blue) is located in the intranet of an organisation and is responsible for the execution of processes. The metaphor: control centre helps here.
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. It is important to understand that the DSF FHIR server is not used for persisting medical data.
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.
The DSF BPE uses websocket (WSS) and webservice (HTTPS) connections to communicate with the DSF FHIR server. FHIR resources are created, read, updated and deleted via HTTP requests against the FHIR webservice API. The FHIR subscription mechanism is used to communicate Task resources with status 'requested' and QuestionnaireResponse resources with status 'completed' to the BPE via websockets. When the BPE starts and before the websocket connections are established, 'requested' Task resources and 'completed' QuestionnaireResponse not seen by the BPE are read via webservice requests.
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.
Here you can find some basic information about interoperability and the standards were using within the DSF before we go into details about the architecture. Here we only describe how the standards (FHIR and BPMN) are used within the DSF. If you want to gain a deeper knowledge of the standards, we recommend visiting these websites: HL7 FHIRopen in new window and BPMNopen in new window
Interoperability is the ability of different systems to work together as seamlessly as possible. We can divide interoperability into four levels.
The foundational level defines the basic interconnectivity requirements which are necessary for a system or application to securely transmit data to and receive data from another system or application. Techniques such as HTTPS or REST are used for this.
The second level is the structural level. It defines the format and the syntax of the data exchange. Therefore, data formats like JSON or XML can be used.
The semantic level ensures the correct interpretation of the contents of the exchanged data between the different systems. Therefore, information models as FHIR or CDA or medical terminology systems like SNOMED CT or ICD can be used.
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 FHIRopen in new window 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. The FHIR profiles can be understood as a set of rules. They explain, for example, which attributes must be mandatorily specified or which terminology may be used. In addition, profiles and controlled vocabulary can be validated.
Business Process Modelling Notationopen in new window is a modelling language that can be used to model and implement processes. The models can be used for the documentation of processes and for communication between different stakeholders. Furthermore, BPMN forms a standardised bridge between process design and process implementation. This is because it simplifies implementation. These processes are executed by a Business Process Engine. Basically, a BPE is a server that can read and execute the business process. More about this in the section on architecture.
On the one hand we use FHIR because of the mentioned benefits. On the other hand FHIR fits great with BPMN and these two in combination are a great fit for what we do: Execute distributed data sharing Processes.
We do not need all 150 FHIR resources. The following FHIR resources are the ones we need and have implemented: ActivityDefinition, Binary, Bundle, CodeSystem, DocumentReference, Endpoint, Group, Library, Measure, MeasureReport, NamingSystem, Organization, Questionnaire, QuestionnaireResponse, ResearchStudy, StructureDefinition, Subscription, Task and ValueSet.
Don't worry, it is not important to understand them all now. But to understand why we use FHIR and BPMN, it is important to look at the ActivityDefinition and TaskResources on the FHIR side and the Message Events on the BPMN side. In the following picture you can see parts of BPMN. These Message Events enable the communication between different organizations. Every time there is a Message Event between two business processes, there is a corresponding TaskResource on the FHIR side. When one organization sends a message for example “do some work” to another organization or when we send a message to ourselves to start or continue a process, we do this by creating a FHIR TaskResource with the status “requested”. After that the Business Process Engine starts the work and the status switches to “in-progress” and if the work is done to “completed” or if there is a problem to “failed”.
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.
The German Federal Ministry of Education and Researchopen in new window is funding the Medical Informatics Initiativeopen in new window 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 Communityopen in new window.
The DSF is a concept for a secure middleware to distribute data sharing processes, aiming to extract, merge, pseudonymize and provide data stored in multiple distributed DICs. A researcher can use the DSF for example to submit feasibility queries to several DICs and thus has the opportunity to obtain sufficient data from different locations for his or her research. By using international standards such as FHIR and BPMN 2.0, the problem of heterogeneous data models, primary systems, architectures and federated legislation between DICs can be solved. The aim is to enable secure and syntactically-, semantically- and process-interoperable data exchange across organisational boundaries.
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.
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.
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.
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 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.
BPMN models can be created with Camunda Modeleropen in new window. 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.
The ping process pluginopen in new window 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.
The ping pong process is composed of 3 different subprocesses:
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. 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.
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.pdfopen in new window
More information about client and server certificates can be found here.
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)
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)
H. Hund, R. Wettstein, C.M. Heidt, C. Fegeler, Executing Distributed Healthcare and Research Processes – The HiGHmed Data Sharing Framework, Stud Health Technol Inform, 278 (2021) 126-133, doi:10.3233/SHTI210060open in new window
R. Wettstein, H. Hund, I. Kobylinski, C. Fegeler, O. Heinze, Feasibility Queries in Distributed Architectures – Concept and Implementation in HiGHmed, Stud Health Technol Inform, 278 (2021) 134-141, doi:10.3233/SHTI210061open in new window
C.M. Heidt, H. Hund, C. Fegeler, A Federated Record Linkage Algorithm for Secure Medical Data Sharing, Stud Health Technol Inform, 278 (2021) 142-149, doi:10.3233/SHTI210062open in new window
R. Wettstein, H. Hund, C. Fegeler, O. Heinze, Data Sharing in Distributed Architectures – Concept and Implementation in HiGHmed, Stud Health Technol Inform, 283 (2021) 111-118, doi:10.3233/SHTI210548open in new window
H.-U. Prokosch, T. Bahls, M. Bialke, J. Eils, C. Fegeler, J. Gruendner, B. Haarbrandt, C. Hampf, W. Hoffmann, H. Hund, et al. The COVID-19 Data Exchange Platform of the German University Medicine, Stud Health Technol Inform, 294 (2022) 674-678, doi:10.3233/SHTI220554open in new window
R. Wettstein, T. Kussel, H. Hund, C. Fegeler, M. Dugas, K. Hamacher, Secure Multi-Party Computation Based Distributed Feasibility Queries – A HiGHmed Use Case, Stud Health Technol Inform, 296 (2022) 41-49, doi:10.3233/SHTI220802open in new window
C. Zilske, M. Kurscheidt, S.T. Schweizer, H. Hund, S. Mödinger, C. Fegeler, Monitoring Distributed Business Processes in Biomedical Research, Stud Health Technol Inform, 302 (2023) 252-256, doi:10.3233/SHTI230113open in new window
H. Hund, R. Wettstein, C. Hampf, M. Bialke, M. Kurscheidt, S.T. Schweizer, C. Zilske, S. Mödinger, C. Fegeler, No Transfer Without Validation: A Data Sharing Framework Use Case, Stud Health Technol Inform, 302 (2023) 68-72, doi:10.3233/SHTI230066open in new window
H. Hund, R. Wettstein, M. Kurscheidt, S.T. Schweizer, C. Zilske, C. Fegeler, Interoperability Is a Process- The Data Sharing Framework, Stud Health Technol Inform, 310 (2024) 28-32, doi:10.3233/SHTI230921open in new window
With this tutorial, participants will gain a detailed insight into the Data Sharing Framework (DSF) (https://github.com/highmed/highmed-dsfopen in new window). The open source DSF enables users to execute biomedical research and healthcare delivery processes across organizations, and the tutorial will demonstrate this with examples from the German Medical Informatics Initiative (MII) (https://www.medizininformatik-initiative.de/en/startopen in new window) funded by the Federal Ministry of Education and Research (BMBF). The tutorial will cover fundamental concepts of distributed processes, the DSFs architecture and key standards such as HL7 FHIR and BPMN 2.0. Participants will have the opportunity to gain hands-on experience with the DSF by working with different processes in a lab setting. Technical aspects such as authentication and authorization will be covered, as well as guidance on using the DSF for other use cases. This tutorial is designed for those involved in distributed research projects, including project members and software developers, as well as individuals interested in multi-organizational research projects.
The use of real-world data collected by healthcare providers for bio-medical research requires the data to be available and accessible. This is especially important when considering the usage of data across organizations. Distributed processes such as feasibility studies, record linkage, and data sharing need to be established for effective consolidation and analysis. While even multi-center retrospective studies using real-world data become commonplace, maintaining infrastructure components for every project conducted is not sustainable. To address this, the Data Sharing Framework (DSF) was developed as an open source, use case independent distributed business process engine to execute cross-organizational research and healthcare delivery processes.
The tutorial will cover the fundamental concepts of distributed processes and will provide an overview of the DSF's architecture and key standards such as HL7 FHIR and BPMN 2.0 that are used in the framework. The tutorial will present real-world examples to illustrate the DSFs capabilities and delve into specific issues the DSF addresses for the German Medical Informatics Initiative (MII).
Participants will have the opportunity to gain hands-on experience with the DSF by working with different processes in a lab setting. Technical aspects such as authentication and authorization, onboarding of new organizations and guidance on using the DSF for other use cases, such as specific research projects or new infrastructure developments, will be covered. Finally, the tutorial will present lessons learned from the last years of using the DSF in test and production environments in multiple research consortia and will present ideas for future improvements based on feedback from end-users, process developers, project managers and administrative staff.
Decision makers and project members with data sharing ideas looking for an architecture, as well as medical informatics professionals and software developers tasked with building multi-centric data sharing applications, are the target audience for this tutorial.
Funded by the German Federal Ministry of Research and Education, 25 sitesopen in new window have installed the DSF to execute the Feasibilityopen in new window process. To perform feasibility queries, a researcher can register and query data on the FDPG (Forschungsdaten Portal für Gesundheit - Research Data Portal)open in new window 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 flyeropen in new window.
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.
To enable researchers to leverage this integrated data for specific research projects, there is a critical need for the ability to query cohort sizes across institutions. The feasibilityopen in new window process allows researchers to conduct automated and distributed feasibility queries, i.e., cohort size estimates. This process is executed according to the open standard BPMN 2.0, the underlying process data model is based on HL7 FHIR R4 resources.
DSF Middleware Setupopen in new window: The DSF middleware connects your site to the central platform. This allows it to receive feasibility query requests as well as reporting back any results of these queries.
Feasibility Triangleopen in new window: The Feasibility Triangle part of this repository provides a site (data integration center) with all the necessary components to set up in order to allow feasibility queries from the central feasibility portal.
The Network University Medicineopen in new window 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.'
As part of the CODEX | COVID-19 Data Exchange Platformopen in new window 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 RDPopen in new window. All 36 university hospitals have installed the DSF to share Covid-19 research data.
The Data Transfer Processopen in new window is used in NUM CODEX to send data from a Data Integration Center (DIC), via the Gecco Transfer Hub (GTH), to the Central Research Repository (CRR). The infrastructure and communincation messages on which the process is based can be seen in the following figure. All organizations use the Data Sharing Framework (DSF) for deployment and execution of the process.
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/open in new window...) and BPE rest interface (https://localhost:8002/bpe/open in new window...) 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.
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/open in new window...) and BPE rest interface (https://localhost:8443/bpe/open in new window...) 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.
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
+
+
+
diff --git a/oldstable/build/index.html b/oldstable/build/index.html
new file mode 100644
index 000000000..e0134f0d2
--- /dev/null
+++ b/oldstable/build/index.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+ Build and Test
+
+
+
+
+
+
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)
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
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
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)
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 MasterPatientIndexClientFactoryopen in new window 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 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 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 OpenEhrClientFactoryopen in new window 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 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.
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.
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.
Since Release 0.1.0, we follow git-flow as described hereopen in new window. 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.
In order to install the HiGHmed DSF packages using Maven in your own projects you need a personal GitHub access token. This GitHub documentationopen in new window 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.
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):
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.pdfopen in new window
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)
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/oldstable/generalinformation/index.html b/oldstable/generalinformation/index.html
new file mode 100644
index 000000000..f75ec22a6
--- /dev/null
+++ b/oldstable/generalinformation/index.html
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+ General Information
+
+
+
+
+
+
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.
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.
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.
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
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
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!
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
Certificate A: Server Certificate (DFN PKI Profile: 'Web Server', Common-Name: Your external DSF FHIR Servers FQDN)
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.netopen in new window for validating GECCO FHIR resources as well as the local GECCO FHIR server are not listed:
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.
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
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
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
+
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.
Verify that the fhir system user or group can write into the following folder
/opt/fhir/log
Add certificates and keys
Add the server certificate (certificate A) and the corresponding private-key to /opt/fhir/secrets/
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
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.deopen in new window
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.
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
+
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.
Verify that the bpe system user or group can write into the following folders
/opt/bpe/log
/opt/bpe/psn
Add certificates and keys
Add the client certificate (certificate B) and the corresponding private-key to /opt/bpe/secrets/
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.
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.deopen in new window
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
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)
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[...]
Stop the DSF BPE Server
Hit Ctrl-C to close log
Stop using: docker-compose stop
Add the following DSF BPE process plugins, for instructions on how to configure the plugin, see release notes.
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
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)
Request Allow-List upload from HiGHmed TTP The Allow-List upload is needed in order to execute HiGHmed and NUM-CODEX processes.
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.
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
Certificate A: Server Certificate (DFN PKI Profile: 'Web Server', Common-Name: Your external DSF FHIR Servers FQDN)
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.netopen in new window for validating GECCO FHIR resources as well as the local GECCO FHIR server are not listed:
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.
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
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
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
+
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.
Verify that the fhir system user or group can write into the following folder
/opt/fhir/log
Add certificates and keys
Add the server certificate (certificate A) and the corresponding private-key to /opt/fhir/secrets/
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
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.deopen in new window
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.
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
+
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.
Verify that the bpe system user or group can write into the following folders
/opt/bpe/log
Add certificates and keys
Add the client certificate (certificate B) and the corresponding private-key to /opt/bpe/secrets/
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.
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.deopen in new window
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
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)
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[...]
Stop the DSF BPE Server
Hit Ctrl-C to close log
Stop using: docker-compose stop
Add the following DSF BPE process plugins, for instructions on how to configure the plugin, see release notes.
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
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)
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.
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
Modify the DSF FHIR docker-compose.yml file, replace 0.7.0 with 0.9.0
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
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
Make sure the process plugins in /opt/bpe/process are configured with chmod 440 and chown root:bpe.
Plugins in '/opt/bpe/plugin':
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 notesopen in new window
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 notesopen in new window
Make sure the plugins in /opt/bpe/plugin are configured with chmod 440 and chown root:bpe.
Upgrade the DSF BPE containers From /opt/bpe execute
docker-compose up -d && docker-compose logs -f
+
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 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 wikiopen in new window.
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
Modify the DSF FHIR docker-compose.yml file, replace 0.8.0 with 0.9.0
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
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
Make sure the process plugins in /opt/bpe/process are configured with chmod 440 and chown root:bpe.
Plugins in '/opt/bpe/plugin':
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 notesopen in new window
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 notesopen in new window
Make sure the plugins in /opt/bpe/plugin are configured with chmod 440 and chown root:bpe.
Upgrade the DSF BPE containers From /opt/bpe execute
docker-compose up -d && docker-compose logs -f
+
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 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 wikiopen in new window.
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
Modify the DSF FHIR docker-compose.yml file, replace 0.9.0 with 0.9.1
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
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
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 notesopen in new window 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 notesopen in new window
Make sure the plugins in `/opt/bpe/plugin` are configured with `chmod 440` and `chown root:bpe`.
+
Upgrade the DSF BPE containers From /opt/bpe execute
docker-compose up -d && docker-compose logs -f
+
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 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 wikiopen in new window.
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.
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
Modify the DSF FHIR docker-compose.yml file, replace 0.9.1 (or 0.9.0) with 0.9.2
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
Modify the DSF BPE docker-compose.yml file, replace 0.9.1 (or 0.9.0) with 0.9.2
Upgrade the DSF BPE containers From /opt/bpe execute
docker-compose up -d && docker-compose logs -f
+
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 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 wikiopen in new window.
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.
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
Modify the DSF FHIR docker-compose.yml file, replace 0.9.2 (or 0.9.0, 0.9.1) with 0.9.3
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
Modify the DSF BPE docker-compose.yml file, replace 0.9.2 (or 0.9.0, 0.9.1) with 0.9.3
Upgrade the DSF BPE containers From /opt/bpe execute
docker-compose up -d && docker-compose logs -f
+
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 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 wikiopen in new window.
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.
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.
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-baseopen in new window module. The DSF BPE server searches for classes implementing this interface using the Java ServiceLoaderopen in new window 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 classopen in new window 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 ServiceTaskopen in new window 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-baseopen in new window module and the class needs to be defined as as Spring Bean.
Business process instances are started or the execution continued via FHIR Taskopen in new window resources. The Taskopen in new window 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 Taskopen in new window 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 Taskopen in new window resources.
FHIR ActivityDefinitionopen in new window 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 Taskopen in new window 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 ActivityDefinitionopen in new window 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.
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.
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/fhiropen in new window. 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.
Start the DSF BPE server for the Test_DIC organization in a second console at location .../dsf-process-tutorial/test-setup:
Start the highmedorg_helloDic process by posting an appropriate FHIR Taskopen in new window resource to the DSF FHIR server:
The Taskopen in new window 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 Taskopen in new window 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 Taskopen in new window resource could be created at the DSF FHIR server. The TutorialExampleStarter class should print a message HTTP 201: Created showing that the Taskopen in new window 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.
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/fhiropen in new window and ghcr.io/highmed/bpeopen in new window 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 file to lookup the port numbers specified for the different DSF FHIR and DSF BPE servers.
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.
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 @Valueopen in new window 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 @ProcessDocumentationopen in new window annotation from the package org.highmed.dsf.tools.generator can be used. The pom.xml of the tutorial-process submodule calls the DSF provided DocumentGeneratoropen in new window class from the same package during the prepare-package phase of the build process. The generator searches for all @ProcessDocumentationopen in new window annotations and generates a Markdown documentation based on the annotation's values in the target folder.
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 Taskopen in new window resource that starts or continues a process instance. It should be noted that a FHIR profile must be created for each Taskopen in new window resource, i.e. for each message event in a process model, which inherits from the DSF Task Base Profileopen in new window. 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.
To avoid the need to specify the version and release date for each CodeSystemopen in new window, StructureDefinition (Task profile)open in new window and ValueSetopen in new window 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 Taskopen in new window), rules have to be defined for reading FHIR resources by external organizations (again except Taskopen in new window). 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:
The read access rules for Taskopen in new window 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.
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.
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.
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.
Start the highmedorg_helloDic process by posting an appropriate FHIR Taskopen in new window 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 to create the Taskopen in new window 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 Taskopen in new window input parameter specified in the TutorialExampleStarter class, have the appropriate effect on your log message.
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 Taskopen in new window from organization Test_DIC to organization Test_COS.
BPMN processes are instantiated and started within the DSF by creating a matching FHIR Taskopen in new window resource in the DSF FHIR server. This is true for executing a process on the local DSF BPE server by manually creating a Taskopen in new window 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 Taskopen in new window 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 Eventopen in new window or Intermediate Message Catch Eventopen in new window. 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.
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:
Canonical URL value specifying the Taskopen in new window profile this authorization rule should match. Can only be specified once per authorization rule extension.
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.
Create a new ActivityDefinitionopen in new window 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.
Add the highmedorg_helloCos process and its resources to the TutorialProcessPluginDefinition class.
Modify HelloDic service class to set the target process variable for the Test_COS organization.
Configure the HelloCosMessage class as a spring in the TutorialConfig class.
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.
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.
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.
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/fhiropen in new window. 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).
Start the DSF BPE server for the Test_COS organization in another console at location .../dsf-process-tutorial/test-setup:
Start the highmedorg_helloDic process by posting a specific FHIR Taskopen in new window 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 Taskopen in new window 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 Taskopen in new window resource to start the highmedorg_helloCos process was send to the Test_COS organization. Verify that a FHIR Taskopen in new window 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.
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.
Different sequence flows during the execution of a process instance can be modeled using BPMN Exclusive Gatewaysopen in new window. For each outgoing sequence flow of the gateway, a BPMN Condition Expressionopen in new window 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.
A BPMN Condition Expressionopen in new window 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 ServiceTaskopen in new window. For example, the BPMN Condition Expressionopen in new window${cohortSize > 100} checks whether the value in the execution variable cohortSize is greater than 100.
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:
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.
Add a boolean variable to the process instance execution variables storing the decision.
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.
Add a condition expressions to each outgoing sequence flow based on the previously stored execution variable.
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.
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.
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.
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.
Start the highmedorg_helloDic process by posting a specific FHIR Taskopen in new window 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 Taskopen in new window 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.
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.
If an existing and started process instance is waiting for a message from another organization, the corresponding FHIR Taskopen in new window may never arrive. Either because the other organization decides to never send the "message" or because some technical problem prohibits the Taskopen in new window 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 Gatewayopen in new window to the process waiting for a response and then either handle a Taskopen in new window resource with the response and finish the process in a success state or fire of an Intermediate Timer Catch Eventopen in new window 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:
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.inputopen in new window parameter. For 1:1 communication relationships this is handled by the DSF BPE servers automatically, but the corresponding Taskopen in new window 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.
Canonical URL value specifying the Taskopen in new window profile this authorization rule should match. Can only be specified once per authorization rule extension.
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.
Modify the process in file hello-hrp.bpmn and set the process definition key and version. Figure out the appropriate values based on the AcitvityDefinitionopen in new window in file hello-hrp.xml.
Add the process in file hello-hrp.bpmn to the TutorialProcessPluginDefinition and configure the FHIR resources needed for the three processes.
Add the HelloCos, HelloHrpMessage , HelloHrp and GoodbyeDicMessage classes as spring beans.
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.
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.
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.
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.
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.
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/fhiropen in new window. 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).
Start the DSF BPE server for the Test_HRP organization in a sixth console at location .../dsf-process-tutorial/test-setup:
Start the highmedorg_helloDic process by posting a specific FHIR Taskopen in new window 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 Taskopen in new window resource needed to start the highmedorg_helloDic process.
Verify that the FHIR Taskopen in new window 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 Taskopen in new window resource to start the highmedorg_helloCos process was sent to the Test_COS organization. Verify that a FHIR Taskopen in new window 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 Taskopen in new window 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.
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.
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.
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.
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.
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.
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.
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.
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.
gitopen in new window is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Processes for the DSF are written using the Javaopen in new window programming language in version 11. Various open source releases of the Java Developer Kit (JDK) 11 exist, you are free in your choice.
In order to download DSF packages from the GitHub Package Registry using Maven you need a personal GitHub access token with scope read:packages. This GitHub documentationopen in new window shows you how to generate one.
After that, add the following server 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 read:packages scope.
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".
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
+
+
+
diff --git a/photos/guideline/generalInformation/highmed_dsf_network_setup.svg b/photos/guideline/generalInformation/highmed_dsf_network_setup.svg
new file mode 100644
index 000000000..4fd39c049
--- /dev/null
+++ b/photos/guideline/generalInformation/highmed_dsf_network_setup.svg
@@ -0,0 +1,3254 @@
+
+
diff --git a/photos/guideline/generalInformation/highmed_dsf_network_setup_ext_dmz.svg b/photos/guideline/generalInformation/highmed_dsf_network_setup_ext_dmz.svg
new file mode 100644
index 000000000..be40e75e7
--- /dev/null
+++ b/photos/guideline/generalInformation/highmed_dsf_network_setup_ext_dmz.svg
@@ -0,0 +1,3490 @@
+
+
diff --git a/photos/guideline/introduction/architecture-dark.svg b/photos/guideline/introduction/architecture-dark.svg
new file mode 100644
index 000000000..6d02e2d47
--- /dev/null
+++ b/photos/guideline/introduction/architecture-dark.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/photos/guideline/introduction/dsf_architecture.svg b/photos/guideline/introduction/dsf_architecture.svg
new file mode 100644
index 000000000..8cec37a42
--- /dev/null
+++ b/photos/guideline/introduction/dsf_architecture.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/photos/guideline/tutorial/eclipse.png b/photos/guideline/tutorial/eclipse.png
new file mode 100644
index 000000000..6be09fc29
Binary files /dev/null and b/photos/guideline/tutorial/eclipse.png differ
diff --git a/photos/guideline/tutorial/ex3.png b/photos/guideline/tutorial/ex3.png
new file mode 100644
index 000000000..6edcb2cfa
Binary files /dev/null and b/photos/guideline/tutorial/ex3.png differ
diff --git a/photos/guideline/tutorial/ex5.png b/photos/guideline/tutorial/ex5.png
new file mode 100644
index 000000000..efc78928f
Binary files /dev/null and b/photos/guideline/tutorial/ex5.png differ
diff --git a/photos/guideline/tutorial/intelliJ.png b/photos/guideline/tutorial/intelliJ.png
new file mode 100644
index 000000000..27c813b85
Binary files /dev/null and b/photos/guideline/tutorial/intelliJ.png differ
diff --git a/photos/home/logo-small.svg b/photos/home/logo-small.svg
new file mode 100644
index 000000000..fd1015a48
--- /dev/null
+++ b/photos/home/logo-small.svg
@@ -0,0 +1,39 @@
+
+
+
diff --git a/photos/home/logo.svg b/photos/home/logo.svg
new file mode 100644
index 000000000..fa093d64f
--- /dev/null
+++ b/photos/home/logo.svg
@@ -0,0 +1,89 @@
+
+
+
diff --git a/photos/info/allowList/allowList-architecture.png b/photos/info/allowList/allowList-architecture.png
new file mode 100644
index 000000000..d1bf28984
Binary files /dev/null and b/photos/info/allowList/allowList-architecture.png differ
diff --git a/photos/info/allowList/org-resource.png b/photos/info/allowList/org-resource.png
new file mode 100644
index 000000000..0b9640049
Binary files /dev/null and b/photos/info/allowList/org-resource.png differ
diff --git a/photos/info/architecture/architecture-dark.svg b/photos/info/architecture/architecture-dark.svg
new file mode 100644
index 000000000..ee844249d
--- /dev/null
+++ b/photos/info/architecture/architecture-dark.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/photos/info/architecture/architecture.svg b/photos/info/architecture/architecture.svg
new file mode 100644
index 000000000..f7149857e
--- /dev/null
+++ b/photos/info/architecture/architecture.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/photos/info/architecture/architecture1.png b/photos/info/architecture/architecture1.png
new file mode 100644
index 000000000..c15499c4e
Binary files /dev/null and b/photos/info/architecture/architecture1.png differ
diff --git a/photos/info/architecture/bpe-dark.svg b/photos/info/architecture/bpe-dark.svg
new file mode 100644
index 000000000..804b4bdd5
--- /dev/null
+++ b/photos/info/architecture/bpe-dark.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/photos/info/architecture/bpe-light.svg b/photos/info/architecture/bpe-light.svg
new file mode 100644
index 000000000..40cba11e8
--- /dev/null
+++ b/photos/info/architecture/bpe-light.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/photos/info/architecture/fhir-server-dark.svg b/photos/info/architecture/fhir-server-dark.svg
new file mode 100644
index 000000000..dd28565aa
--- /dev/null
+++ b/photos/info/architecture/fhir-server-dark.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/photos/info/architecture/fhir-server.svg b/photos/info/architecture/fhir-server.svg
new file mode 100644
index 000000000..4d0aeb83d
--- /dev/null
+++ b/photos/info/architecture/fhir-server.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/photos/info/architecture/mesh.png b/photos/info/architecture/mesh.png
new file mode 100644
index 000000000..96e5eeeec
Binary files /dev/null and b/photos/info/architecture/mesh.png differ
diff --git a/photos/info/architecture/star.png b/photos/info/architecture/star.png
new file mode 100644
index 000000000..123c3218b
Binary files /dev/null and b/photos/info/architecture/star.png differ
diff --git a/photos/info/basics/bpmn1.png b/photos/info/basics/bpmn1.png
new file mode 100644
index 000000000..a72b38b75
Binary files /dev/null and b/photos/info/basics/bpmn1.png differ
diff --git a/photos/info/basics/bpmn2.png b/photos/info/basics/bpmn2.png
new file mode 100644
index 000000000..50afecfe5
Binary files /dev/null and b/photos/info/basics/bpmn2.png differ
diff --git a/photos/info/basics/interoperability.png b/photos/info/basics/interoperability.png
new file mode 100644
index 000000000..4643733d6
Binary files /dev/null and b/photos/info/basics/interoperability.png differ
diff --git a/photos/info/introduction/dic-structure.png b/photos/info/introduction/dic-structure.png
new file mode 100644
index 000000000..eb4c6a8cb
Binary files /dev/null and b/photos/info/introduction/dic-structure.png differ
diff --git a/photos/info/introduction/dsf-concept.png b/photos/info/introduction/dsf-concept.png
new file mode 100644
index 000000000..01f14cebc
Binary files /dev/null and b/photos/info/introduction/dsf-concept.png differ
diff --git a/photos/info/introduction/dsf-structure1.png b/photos/info/introduction/dsf-structure1.png
new file mode 100644
index 000000000..8dbfda7e5
Binary files /dev/null and b/photos/info/introduction/dsf-structure1.png differ
diff --git a/photos/info/plugins/bpmn-communicate.png b/photos/info/plugins/bpmn-communicate.png
new file mode 100644
index 000000000..96d225b1c
Binary files /dev/null and b/photos/info/plugins/bpmn-communicate.png differ
diff --git a/photos/info/plugins/bpmn-event-based-gateway.png b/photos/info/plugins/bpmn-event-based-gateway.png
new file mode 100644
index 000000000..d54e0f423
Binary files /dev/null and b/photos/info/plugins/bpmn-event-based-gateway.png differ
diff --git a/photos/info/plugins/bpmn-example.png b/photos/info/plugins/bpmn-example.png
new file mode 100644
index 000000000..fb98431ae
Binary files /dev/null and b/photos/info/plugins/bpmn-example.png differ
diff --git a/photos/info/plugins/bpmn-intermediate.png b/photos/info/plugins/bpmn-intermediate.png
new file mode 100644
index 000000000..b8cf0a8ae
Binary files /dev/null and b/photos/info/plugins/bpmn-intermediate.png differ
diff --git a/photos/info/plugins/plugin.png b/photos/info/plugins/plugin.png
new file mode 100644
index 000000000..6db966e35
Binary files /dev/null and b/photos/info/plugins/plugin.png differ
diff --git a/photos/info/security/certificates-dark.svg b/photos/info/security/certificates-dark.svg
new file mode 100644
index 000000000..1e4f49f3c
--- /dev/null
+++ b/photos/info/security/certificates-dark.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/photos/info/security/certificates-light.svg b/photos/info/security/certificates-light.svg
new file mode 100644
index 000000000..9ad1cb495
--- /dev/null
+++ b/photos/info/security/certificates-light.svg
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/photos/info/security/certificates.png b/photos/info/security/certificates.png
new file mode 100644
index 000000000..03d0507b3
Binary files /dev/null and b/photos/info/security/certificates.png differ
diff --git a/photos/info/use-cases/ping-pong.png b/photos/info/use-cases/ping-pong.png
new file mode 100644
index 000000000..167d4b3a5
Binary files /dev/null and b/photos/info/use-cases/ping-pong.png differ
diff --git a/photos/learnmore/contact/email.png b/photos/learnmore/contact/email.png
new file mode 100644
index 000000000..b7b3d6e2c
Binary files /dev/null and b/photos/learnmore/contact/email.png differ
diff --git a/photos/learnmore/contact/map.png b/photos/learnmore/contact/map.png
new file mode 100644
index 000000000..3c60ed5ad
Binary files /dev/null and b/photos/learnmore/contact/map.png differ
diff --git a/photos/learnmore/contributors/fegeler.jpg b/photos/learnmore/contributors/fegeler.jpg
new file mode 100644
index 000000000..12de5c6a1
Binary files /dev/null and b/photos/learnmore/contributors/fegeler.jpg differ
diff --git a/photos/learnmore/contributors/hund.jpg b/photos/learnmore/contributors/hund.jpg
new file mode 100644
index 000000000..77374d60c
Binary files /dev/null and b/photos/learnmore/contributors/hund.jpg differ
diff --git a/photos/learnmore/contributors/kiel.jpg b/photos/learnmore/contributors/kiel.jpg
new file mode 100644
index 000000000..66dcb1a43
Binary files /dev/null and b/photos/learnmore/contributors/kiel.jpg differ
diff --git a/photos/learnmore/contributors/kurscheidt.jpg b/photos/learnmore/contributors/kurscheidt.jpg
new file mode 100644
index 000000000..b53042cf6
Binary files /dev/null and b/photos/learnmore/contributors/kurscheidt.jpg differ
diff --git a/photos/learnmore/contributors/moedinger.jpg b/photos/learnmore/contributors/moedinger.jpg
new file mode 100644
index 000000000..ed274abaf
Binary files /dev/null and b/photos/learnmore/contributors/moedinger.jpg differ
diff --git a/photos/learnmore/contributors/schweizer.png b/photos/learnmore/contributors/schweizer.png
new file mode 100644
index 000000000..f30f39949
Binary files /dev/null and b/photos/learnmore/contributors/schweizer.png differ
diff --git a/photos/learnmore/contributors/wettstein.jpg b/photos/learnmore/contributors/wettstein.jpg
new file mode 100644
index 000000000..0e52c3ef2
Binary files /dev/null and b/photos/learnmore/contributors/wettstein.jpg differ
diff --git a/photos/learnmore/contributors/zilske.jpg b/photos/learnmore/contributors/zilske.jpg
new file mode 100644
index 000000000..92e628d28
Binary files /dev/null and b/photos/learnmore/contributors/zilske.jpg differ
diff --git a/photos/learnmore/funding/bmbf-mii.png b/photos/learnmore/funding/bmbf-mii.png
new file mode 100644
index 000000000..e4d34792c
Binary files /dev/null and b/photos/learnmore/funding/bmbf-mii.png differ
diff --git a/photos/learnmore/funding/bmbf.png b/photos/learnmore/funding/bmbf.png
new file mode 100644
index 000000000..ff3b4021d
Binary files /dev/null and b/photos/learnmore/funding/bmbf.png differ
diff --git a/photos/learnmore/funding/hd.jpg b/photos/learnmore/funding/hd.jpg
new file mode 100644
index 000000000..97b881663
Binary files /dev/null and b/photos/learnmore/funding/hd.jpg differ
diff --git a/photos/learnmore/funding/highmed.jpg b/photos/learnmore/funding/highmed.jpg
new file mode 100644
index 000000000..5d0536ad8
Binary files /dev/null and b/photos/learnmore/funding/highmed.jpg differ
diff --git a/photos/learnmore/funding/leipzig.png b/photos/learnmore/funding/leipzig.png
new file mode 100644
index 000000000..72fdd9f52
Binary files /dev/null and b/photos/learnmore/funding/leipzig.png differ
diff --git a/photos/learnmore/funding/mii.png b/photos/learnmore/funding/mii.png
new file mode 100644
index 000000000..a2b4346ed
Binary files /dev/null and b/photos/learnmore/funding/mii.png differ
diff --git a/photos/learnmore/partners/hhn-logo.png b/photos/learnmore/partners/hhn-logo.png
new file mode 100644
index 000000000..2bc6ac9c8
Binary files /dev/null and b/photos/learnmore/partners/hhn-logo.png differ
diff --git a/photos/learnmore/partners/imi.png b/photos/learnmore/partners/imi.png
new file mode 100644
index 000000000..3160e8640
Binary files /dev/null and b/photos/learnmore/partners/imi.png differ
diff --git a/photos/learnmore/partners/life.png b/photos/learnmore/partners/life.png
new file mode 100644
index 000000000..c6ead91a8
Binary files /dev/null and b/photos/learnmore/partners/life.png differ
diff --git a/photos/learnmore/partners/logo-gecko.png b/photos/learnmore/partners/logo-gecko.png
new file mode 100644
index 000000000..75909ca1c
Binary files /dev/null and b/photos/learnmore/partners/logo-gecko.png differ
diff --git a/photos/learnmore/projects/ap1.png b/photos/learnmore/projects/ap1.png
new file mode 100644
index 000000000..1c595476e
Binary files /dev/null and b/photos/learnmore/projects/ap1.png differ
diff --git a/photos/learnmore/projects/num.png b/photos/learnmore/projects/num.png
new file mode 100644
index 000000000..9d404c7b5
Binary files /dev/null and b/photos/learnmore/projects/num.png differ
diff --git a/photos/tutorials/dsf-architecture.svg b/photos/tutorials/dsf-architecture.svg
new file mode 100644
index 000000000..f56973def
--- /dev/null
+++ b/photos/tutorials/dsf-architecture.svg
@@ -0,0 +1,690 @@
+
+
diff --git a/search-pro.worker.js b/search-pro.worker.js
new file mode 100644
index 000000000..619a81510
--- /dev/null
+++ b/search-pro.worker.js
@@ -0,0 +1,2 @@
+const V=Object.entries,et=Object.fromEntries,st="ENTRIES",L="KEYS",T="VALUES",_="";class D{set;_type;_path;constructor(t,s){const n=t._tree,o=Array.from(n.keys());this.set=t,this._type=s,this._path=o.length>0?[{node:n,keys:o}]:[]}next(){const t=this.dive();return this.backtrack(),t}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:t,keys:s}=E(this._path);if(E(s)===_)return{done:!1,value:this.result()};const n=t.get(E(s));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const t=E(this._path).keys;t.pop(),!(t.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:t})=>E(t)).filter(t=>t!==_).join("")}value(){return E(this._path).node.get(_)}result(){switch(this._type){case T:return this.value();case L:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const E=e=>e[e.length-1],nt=(e,t,s)=>{const n=new Map;if(t===void 0)return n;const o=t.length+1,u=o+s,i=new Uint8Array(u*o).fill(s+1);for(let r=0;r{const d=u*i;t:for(const c of e.keys())if(c===_){const a=o[d-1];a<=s&&n.set(r,[e.get(c),a])}else{let a=u;for(let h=0;hs)continue t}R(e.get(c),t,s,n,o,a,i,r+c)}};class C{_tree;_prefix;_size=void 0;constructor(t=new Map,s=""){this._tree=t,this._prefix=s}atPrefix(t){if(!t.startsWith(this._prefix))throw new Error("Mismatched prefix");const[s,n]=x(this._tree,t.slice(this._prefix.length));if(s===void 0){const[o,u]=O(n);for(const i of o.keys())if(i!==_&&i.startsWith(u)){const r=new Map;return r.set(i.slice(u.length),o.get(i)),new C(r,t)}}return new C(s,t)}clear(){this._size=void 0,this._tree.clear()}delete(t){return this._size=void 0,ot(this._tree,t)}entries(){return new D(this,st)}forEach(t){for(const[s,n]of this)t(s,n,this)}fuzzyGet(t,s){return nt(this._tree,t,s)}get(t){const s=k(this._tree,t);return s!==void 0?s.get(_):void 0}has(t){const s=k(this._tree,t);return s!==void 0&&s.has(_)}keys(){return new D(this,L)}set(t,s){if(typeof t!="string")throw new Error("key must be a string");return this._size=void 0,I(this._tree,t).set(_,s),this}get size(){if(this._size)return this._size;this._size=0;const t=this.entries();for(;!t.next().done;)this._size+=1;return this._size}update(t,s){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=I(this._tree,t);return n.set(_,s(n.get(_))),this}fetch(t,s){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;const n=I(this._tree,t);let o=n.get(_);return o===void 0&&n.set(_,o=s()),o}values(){return new D(this,T)}[Symbol.iterator](){return this.entries()}static from(t){const s=new C;for(const[n,o]of t)s.set(n,o);return s}static fromObject(t){return C.from(Object.entries(t))}}const x=(e,t,s=[])=>{if(t.length===0||e==null)return[e,s];for(const n of e.keys())if(n!==_&&t.startsWith(n))return s.push([e,n]),x(e.get(n),t.slice(n.length),s);return s.push([e,t]),x(void 0,"",s)},k=(e,t)=>{if(t.length===0||e==null)return e;for(const s of e.keys())if(s!==_&&t.startsWith(s))return k(e.get(s),t.slice(s.length))},I=(e,t)=>{const s=t.length;t:for(let n=0;e&&n{const[s,n]=x(e,t);if(s!==void 0){if(s.delete(_),s.size===0)W(n);else if(s.size===1){const[o,u]=s.entries().next().value;q(n,o,u)}}},W=e=>{if(e.length===0)return;const[t,s]=O(e);if(t.delete(s),t.size===0)W(e.slice(0,-1));else if(t.size===1){const[n,o]=t.entries().next().value;n!==_&&q(e.slice(0,-1),n,o)}},q=(e,t,s)=>{if(e.length===0)return;const[n,o]=O(e);n.set(o+t,s),n.delete(o)},O=e=>e[e.length-1],ut=(e,t)=>{const s=e._idToShortId.get(t);if(s!=null)return e._storedFields.get(s)},it=/[\n\r -#%-*,-/:;?@[-\]_{}\u00A0\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u1680\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2000-\u200A\u2010-\u2029\u202F-\u2043\u2045-\u2051\u2053-\u205F\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u3000-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]+/u,M="or",$="and",rt="and_not",ct=(e,t)=>{e.includes(t)||e.push(t)},N=(e,t)=>{for(const s of t)e.includes(s)||e.push(s)},P=({score:e},{score:t})=>t-e,lt=()=>new Map,b=e=>{const t=new Map;for(const s of Object.keys(e))t.set(parseInt(s,10),e[s]);return t},G=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0,ht={[M]:(e,t)=>{for(const s of t.keys()){const n=e.get(s);if(n==null)e.set(s,t.get(s));else{const{score:o,terms:u,match:i}=t.get(s);n.score=n.score+o,n.match=Object.assign(n.match,i),N(n.terms,u)}}return e},[$]:(e,t)=>{const s=new Map;for(const n of t.keys()){const o=e.get(n);if(o==null)continue;const{score:u,terms:i,match:r}=t.get(n);N(o.terms,i),s.set(n,{score:o.score+u,terms:o.terms,match:Object.assign(o.match,r)})}return s},[rt]:(e,t)=>{for(const s of t.keys())e.delete(s);return e}},dt=(e,t,s,n,o,u)=>{const{k:i,b:r,d}=u;return Math.log(1+(s-t+.5)/(t+.5))*(d+e*(i+1)/(e+i*(1-r+r*n/o)))},at=e=>(t,s,n)=>{const o=typeof e.fuzzy=="function"?e.fuzzy(t,s,n):e.fuzzy||!1,u=typeof e.prefix=="function"?e.prefix(t,s,n):e.prefix===!0;return{term:t,fuzzy:o,prefix:u}},H=(e,t,s,n)=>{for(const o of Object.keys(e._fieldIds))if(e._fieldIds[o]===s){e._options.logger("warn",`SlimSearch: document with ID ${e._documentIds.get(t)} has changed before removal: term "${n}" was not present in field "${o}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}},ft=(e,t,s,n)=>{if(!e._index.has(n)){H(e,s,t,n);return}const o=e._index.fetch(n,lt),u=o.get(t);u==null||u.get(s)==null?H(e,s,t,n):u.get(s)<=1?u.size<=1?o.delete(t):u.delete(s):u.set(s,u.get(s)-1),e._index.get(n).size===0&&e._index.delete(n)},gt={k:1.2,b:.7,d:.5},mt={idField:"id",extractField:(e,t)=>e[t],tokenize:e=>e.split(it),processTerm:e=>e.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(e,t)=>{typeof console?.[e]=="function"&&console[e](t)},autoVacuum:!0},J={combineWith:M,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:gt},pt={combineWith:$,prefix:(e,t,s)=>t===s.length-1},Ft={batchSize:1e3,batchWait:10},U={minDirtFactor:.1,minDirtCount:20},_t={...Ft,...U},K=Symbol("*"),yt=(e,t)=>{const s=new Map,n={...e._options.searchOptions,...t};for(const[o,u]of e._documentIds){const i=n.boostDocument?n.boostDocument(u,"",e._storedFields.get(o)):1;s.set(o,{score:i,terms:[],match:{}})}return s},X=(e,t=M)=>{if(e.length===0)return new Map;const s=t.toLowerCase(),n=ht[s];if(!n)throw new Error(`Invalid combination operator: ${t}`);return e.reduce(n)||new Map},S=(e,t,s,n,o,u,i,r,d=new Map)=>{if(o==null)return d;for(const c of Object.keys(u)){const a=u[c],h=e._fieldIds[c],g=o.get(h);if(g==null)continue;let m=g.size;const p=e._avgFieldLength[h];for(const l of g.keys()){if(!e._documentIds.has(l)){ft(e,h,l,s),m-=1;continue}const f=i?i(e._documentIds.get(l),s,e._storedFields.get(l)):1;if(!f)continue;const y=g.get(l),F=e._fieldLength.get(l)[h],v=dt(y,m,e._documentCount,F,p,r),z=n*a*f*v,A=d.get(l);if(A){A.score+=z,ct(A.terms,t);const w=G(A.match,s);w?w.push(c):A.match[s]=[c]}else d.set(l,{score:z,terms:[t],match:{[s]:[c]}})}}return d},At=(e,t,s)=>{const n={...e._options.searchOptions,...s},o=(n.fields||e._options.fields).reduce((l,f)=>({...l,[f]:G(n.boost,f)||1}),{}),{boostDocument:u,weights:i,maxFuzzy:r,bm25:d}=n,{fuzzy:c,prefix:a}={...J.weights,...i},h=e._index.get(t.term),g=S(e,t.term,t.term,1,h,o,u,d);let m,p;if(t.prefix&&(m=e._index.atPrefix(t.term)),t.fuzzy){const l=t.fuzzy===!0?.2:t.fuzzy,f=l<1?Math.min(r,Math.round(t.term.length*l)):l;f&&(p=e._index.fuzzyGet(t.term,f))}if(m)for(const[l,f]of m){const y=l.length-t.term.length;if(!y)continue;p?.delete(l);const F=a*l.length/(l.length+.3*y);S(e,t.term,l,F,f,o,u,d,g)}if(p)for(const l of p.keys()){const[f,y]=p.get(l);if(!y)continue;const F=c*l.length/(l.length+y);S(e,t.term,l,F,f,o,u,d,g)}return g},Y=(e,t,s={})=>{if(t===K)return yt(e,s);if(typeof t!="string"){const a={...s,...t,queries:void 0},h=t.queries.map(g=>Y(e,g,a));return X(h,a.combineWith)}const{tokenize:n,processTerm:o,searchOptions:u}=e._options,i={tokenize:n,processTerm:o,...u,...s},{tokenize:r,processTerm:d}=i,c=r(t).flatMap(a=>d(a)).filter(a=>!!a).map(at(i)).map(a=>At(e,a,i));return X(c,i.combineWith)},Q=(e,t,s={})=>{const n=Y(e,t,s),o=[];for(const[u,{score:i,terms:r,match:d}]of n){const c=r.length||1,a={id:e._documentIds.get(u),score:i*c,terms:Object.keys(d),queryTerms:r,match:d};Object.assign(a,e._storedFields.get(u)),(s.filter==null||s.filter(a))&&o.push(a)}return t===K&&s.boostDocument==null&&e._options.searchOptions.boostDocument==null||o.sort(P),o},Ct=(e,t,s={})=>{s={...e._options.autoSuggestOptions,...s};const n=new Map;for(const{score:u,terms:i}of Q(e,t,s)){const r=i.join(" "),d=n.get(r);d!=null?(d.score+=u,d.count+=1):n.set(r,{score:u,terms:i,count:1})}const o=[];for(const[u,{score:i,terms:r,count:d}]of n)o.push({suggestion:u,terms:r,score:i/d});return o.sort(P),o};class Et{_options;_index;_documentCount;_documentIds;_idToShortId;_fieldIds;_fieldLength;_avgFieldLength;_nextId;_storedFields;_dirtCount;_currentVacuum;_enqueuedVacuum;_enqueuedVacuumConditions;constructor(t){if(t?.fields==null)throw new Error('SlimSearch: option "fields" must be provided');const s=t.autoVacuum==null||t.autoVacuum===!0?_t:t.autoVacuum;this._options={...mt,...t,autoVacuum:s,searchOptions:{...J,...t.searchOptions||{}},autoSuggestOptions:{...pt,...t.autoSuggestOptions||{}}},this._index=new C,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=U,this.addFields(this._options.fields)}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}get documentCount(){return this._documentCount}get termCount(){return this._index.size}toJSON(){const t=[];for(const[s,n]of this._index){const o={};for(const[u,i]of n)o[u]=Object.fromEntries(i);t.push([s,o])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:t,serializationVersion:2}}addFields(t){for(let s=0;s{if(c!==1&&c!==2)throw new Error("SlimSearch: cannot deserialize an index created with an incompatible version");const h=new Et(a);h._documentCount=t,h._nextId=s,h._documentIds=b(n),h._idToShortId=new Map,h._fieldIds=o,h._fieldLength=b(u),h._avgFieldLength=i,h._storedFields=b(r),h._dirtCount=d||0,h._index=new C;for(const[g,m]of h._documentIds)h._idToShortId.set(m,g);for(const[g,m]of e){const p=new Map;for(const l of Object.keys(m)){let f=m[l];c===1&&(f=f.ds),p.set(parseInt(l,10),b(f))}h._index.set(g,p)}return h},B=(e,t)=>{const s=e.toLowerCase(),n=t.toLowerCase(),o=[];let u=0,i=0;const r=(c,a=!1)=>{let h="";i===0?h=c.length>20?`… ${c.slice(-20)}`:c:a?h=c.length+i>100?`${c.slice(0,100-i)}… `:c:h=c.length>20?`${c.slice(0,20)} … ${c.slice(-20)}`:c,h&&o.push(h),i+=h.length,a||(o.push(["mark",t]),i+=t.length,i>=100&&o.push(" …"))};let d=s.indexOf(n,u);if(d===-1)return null;for(;d>=0;){const c=d+n.length;if(r(e.slice(u,d)),u=c,i>100)break;d=s.indexOf(n,u)}return i<100&&r(e.slice(u),!0),o},wt=(e,t)=>t.contents.reduce((s,[,n])=>s+n,0)-e.contents.reduce((s,[,n])=>s+n,0),xt=(e,t)=>Math.max(...t.contents.map(([,s])=>s))-Math.max(...e.contents.map(([,s])=>s)),Z=(e,t,s={})=>{const n={};return Q(t,e,{boost:{h:2,t:1,c:4},prefix:!0,...s}).forEach(o=>{const{id:u,terms:i,score:r}=o,d=u.includes("@"),c=u.includes("#"),[a,h]=u.split(/[#@]/),g=Number(a),m=i.sort((l,f)=>l.length-f.length).filter((l,f)=>i.slice(f+1).every(y=>!y.includes(l))),{contents:p}=n[g]??={title:"",contents:[]};if(d)p.push([{type:"customField",id:g,index:h,display:m.map(l=>o.c.map(f=>B(f,l))).flat().filter(l=>l!==null)},r]);else{const l=m.map(f=>B(o.h,f)).filter(f=>f!==null);if(l.length&&p.push([{type:c?"heading":"title",id:g,...c&&{anchor:h},display:l},r]),"t"in o)for(const f of o.t){const y=m.map(F=>B(f,F)).filter(F=>F!==null);y.length&&p.push([{type:"text",id:g,...c&&{anchor:h},display:y},r])}}}),V(n).sort(([,o],[,u])=>"max"==="total"?wt(o,u):xt(o,u)).map(([o,{title:u,contents:i}])=>{if(!u){const r=ut(t,o);r&&(u=r.h)}return{title:u,contents:i.map(([r])=>r)}})},tt=(e,t,s={})=>Ct(t,e,{fuzzy:.2,maxFuzzy:3,...s}).map(({suggestion:n})=>n),bt=et(V(JSON.parse("{\"/\":{\"documentCount\":2857,\"nextId\":2857,\"documentIds\":{\"0\":\"0\",\"1\":\"0#rolf-hansen-memorial-award-2023-goes-to-hauke-hund\",\"2\":\"0#feel-free-to-contact-us-via-dsf-gecko-hs-heilbronn-de-and-we-will-take-care-of-your-request-as-soon-as-possible\",\"3\":\"1\",\"4\":\"1#overview\",\"5\":\"2\",\"6\":\"2#overview-of-dsf\",\"7\":\"2#key-features-and-benefits\",\"8\":\"2#distributed-data-sharing-processes\",\"9\":\"2#flexibility-with-data-standards\",\"10\":\"2#security-and-access-control\",\"11\":\"2#deployment-in-clinical-environments\",\"12\":\"2#getting-started-with-the-dsf\",\"13\":\"3\",\"14\":\"4\",\"15\":\"4#vorbereitung\",\"16\":\"4#netzwerkfreigaben\",\"17\":\"4#fhir-store\",\"18\":\"4#installationshinweise\",\"19\":\"4#dsf\",\"20\":\"4#prozessplugins\",\"21\":\"4#weitere-anwendungen\",\"22\":\"4#data-sharing-demodaten\",\"23\":\"5\",\"24\":\"5#overview\",\"25\":\"6\",\"26\":\"6#publications\",\"27\":\"6#recorded-talks\",\"28\":\"6#gmds-conference-2022\",\"29\":\"6#gmds-conference-2020\",\"30\":\"7\",\"31\":\"7#overview-v-0-9-x\",\"32\":\"8\",\"33\":\"9\",\"34\":\"9#security-vulnerability-disclosure-policy\",\"35\":\"9#our-commitment-to-security\",\"36\":\"9#responsible-disclosure\",\"37\":\"9#how-to-report-a-vulnerability\",\"38\":\"9#our-promise\",\"39\":\"9#legal-protection\",\"40\":\"9#questions\",\"41\":\"10\",\"42\":\"12\",\"43\":\"12#new-features\",\"44\":\"15\",\"45\":\"15#new-features\",\"46\":\"18\",\"47\":\"18#new-features\",\"48\":\"21\",\"49\":\"21#new-features\",\"50\":\"24\",\"51\":\"24#new-features\",\"52\":\"27\",\"53\":\"27#new-features\",\"54\":\"30\",\"55\":\"30#new-features\",\"56\":\"33\",\"57\":\"33#new-features\",\"58\":\"36\",\"59\":\"36#new-features\",\"60\":\"39\",\"61\":\"39#new-features\",\"62\":\"42\",\"63\":\"42#new-features\",\"64\":\"44\",\"65\":\"44#overview\",\"66\":\"45\",\"67\":\"45#e-mail\",\"68\":\"45#community\",\"69\":\"45#stay-up-to-date\",\"70\":\"45#contribute-code\",\"71\":\"45#share-your-experience-get-support\",\"72\":\"46\",\"73\":\"46#heilbronn-university-of-applied-sciences-gecko-institute\",\"74\":\"46#university-of-heidelberg-institute-of-medical-informatics\",\"75\":\"46#university-of-leipzig-life-institute\",\"76\":\"47\",\"77\":\"47#dsf-medical-informatics-structure-data-sharing-framework-community-2023-2026\",\"78\":\"47#development-of-the-dsf-in-the-highmed-consortium-contribution-heilbronn-university-and-heidelberg-university-2018-2022\",\"79\":\"48\",\"80\":\"49\",\"81\":\"49#goal\",\"82\":\"49#allow-list-managment\",\"83\":\"49#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\",\"84\":\"50\",\"85\":\"50#dsf-fhir-server\",\"86\":\"50#business-process-engine-bpe\",\"87\":\"50#flexible-deployment\",\"88\":\"50#network-setup-additional-reverse-proxy-in-external-dmz\",\"89\":\"51\",\"90\":\"51#interoperability\",\"91\":\"51#hl7-fhir\",\"92\":\"51#bpmn\",\"93\":\"51#why-are-we-using-fhir-and-bpmn\",\"94\":\"52\",\"95\":\"53\",\"96\":\"53#additional-reverse-proxy-in-external-dmz\",\"97\":\"54\",\"98\":\"54#overview\",\"99\":\"54#bpmn-example\",\"100\":\"54#ping-pong-process\",\"101\":\"54#autostart-ping-process\",\"102\":\"54#ping-process\",\"103\":\"54#pong-process\",\"104\":\"55\",\"105\":\"55#basics-security\",\"106\":\"55#authentication\",\"107\":\"55#certificate-requests\",\"108\":\"55#fhir-endpoint\",\"109\":\"55#business-process-engine-server\",\"110\":\"56\",\"111\":\"57\",\"112\":\"57#abstract\",\"113\":\"57#topic\",\"114\":\"57#target-group\",\"115\":\"57#what-you-need\",\"116\":\"57#what-you-will-learn\",\"117\":\"58\",\"118\":\"59\",\"119\":\"60\",\"120\":\"60#overview\",\"121\":\"61\",\"122\":\"61#overview\",\"123\":\"61#the-feasibility-process\",\"124\":\"61#technical-information\",\"125\":\"62\",\"126\":\"62#the-data-transfer-process\",\"127\":\"63\",\"128\":\"64\",\"129\":\"64#build-project\",\"130\":\"64#manual-integration-testing-without-docker\",\"131\":\"64#manual-integration-testing-local-with-docker\",\"132\":\"64#troubleshooting\",\"133\":\"64#manual-integration-testing-vms-for-docker-registry-3-medics-ttp\",\"134\":\"64#starting-the-processes\",\"135\":\"65\",\"136\":\"66\",\"137\":\"66#release-a-new-final-version\",\"138\":\"66#release-a-new-candidate-version\",\"139\":\"67\",\"140\":\"68\",\"141\":\"68#database\",\"142\":\"68#json-xml-adapter\",\"143\":\"68#dao\",\"144\":\"68#resolve-resource-references-if-needed\",\"145\":\"68#authorization\",\"146\":\"68#webservice\",\"147\":\"68#test\",\"148\":\"69\",\"149\":\"70\",\"150\":\"71\",\"151\":\"72\",\"152\":\"72#code-style\",\"153\":\"72#git-workflow\",\"154\":\"72#branch-naming\",\"155\":\"73\",\"156\":\"74\",\"157\":\"76\",\"158\":\"76#authenticating-to-github-packages\",\"159\":\"76#installing-a-package\",\"160\":\"77\",\"161\":\"78\",\"162\":\"78#certificate-requests\",\"163\":\"78#fhir-endpoint\",\"164\":\"78#business-process-engine-server\",\"165\":\"79\",\"166\":\"79#additional-reverse-proxy-in-external-dmz\",\"167\":\"80\",\"168\":\"81\",\"169\":\"81#dsf-0-9-3-configuration-parameters-bpe-server\",\"170\":\"81#org-highmed-dsf-bpe-consent-webservice-factory-class\",\"171\":\"81#org-highmed-dsf-bpe-db-liquibase-password-or-org-highmed-dsf-bpe-db-liquibase-password-file\",\"172\":\"81#org-highmed-dsf-bpe-db-liquibase-username\",\"173\":\"81#org-highmed-dsf-bpe-db-url\",\"174\":\"81#org-highmed-dsf-bpe-db-user-camunda-group\",\"175\":\"81#org-highmed-dsf-bpe-db-user-camunda-password-or-org-highmed-dsf-bpe-db-user-camunda-password-file\",\"176\":\"81#org-highmed-dsf-bpe-db-user-camunda-username\",\"177\":\"81#org-highmed-dsf-bpe-db-user-group\",\"178\":\"81#org-highmed-dsf-bpe-db-user-password-or-org-highmed-dsf-bpe-db-user-password-file\",\"179\":\"81#org-highmed-dsf-bpe-db-user-username\",\"180\":\"81#org-highmed-dsf-bpe-debug-log-message-onactivityend\",\"181\":\"81#org-highmed-dsf-bpe-debug-log-message-onactivitystart\",\"182\":\"81#org-highmed-dsf-bpe-debug-log-message-variables\",\"183\":\"81#org-highmed-dsf-bpe-fhir-client-certificate\",\"184\":\"81#org-highmed-dsf-bpe-fhir-client-certificate-private-key\",\"185\":\"81#org-highmed-dsf-bpe-fhir-client-certificate-private-key-password-or-org-highmed-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"186\":\"81#org-highmed-dsf-bpe-fhir-client-local-proxy-password-or-org-highmed-dsf-bpe-fhir-client-local-proxy-password-file\",\"187\":\"81#org-highmed-dsf-bpe-fhir-client-local-proxy-url\",\"188\":\"81#org-highmed-dsf-bpe-fhir-client-local-proxy-username\",\"189\":\"81#org-highmed-dsf-bpe-fhir-client-local-timeout-connect\",\"190\":\"81#org-highmed-dsf-bpe-fhir-client-local-timeout-read\",\"191\":\"81#org-highmed-dsf-bpe-fhir-client-local-verbose\",\"192\":\"81#org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-password-or-org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-password-file\",\"193\":\"81#org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-url\",\"194\":\"81#org-highmed-dsf-bpe-fhir-client-local-websocket-proxy-username\",\"195\":\"81#org-highmed-dsf-bpe-fhir-client-remote-proxy-password-or-org-highmed-dsf-bpe-fhir-client-remote-proxy-password-file\",\"196\":\"81#org-highmed-dsf-bpe-fhir-client-remote-proxy-url\",\"197\":\"81#org-highmed-dsf-bpe-fhir-client-remote-proxy-username\",\"198\":\"81#org-highmed-dsf-bpe-fhir-client-remote-timeout-connect\",\"199\":\"81#org-highmed-dsf-bpe-fhir-client-remote-timeout-read\",\"200\":\"81#org-highmed-dsf-bpe-fhir-client-remote-verbose\",\"201\":\"81#org-highmed-dsf-bpe-fhir-client-trust-certificates\",\"202\":\"81#org-highmed-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"203\":\"81#org-highmed-dsf-bpe-fhir-server-base-url\",\"204\":\"81#org-highmed-dsf-bpe-fhir-server-organization-identifier-value\",\"205\":\"81#org-highmed-dsf-bpe-fhir-task-subscription-retry-max\",\"206\":\"81#org-highmed-dsf-bpe-fhir-task-subscription-retry-sleep\",\"207\":\"81#org-highmed-dsf-bpe-fhir-task-subscription-search-parameter\",\"208\":\"81#org-highmed-dsf-bpe-mail-client-certificate\",\"209\":\"81#org-highmed-dsf-bpe-mail-client-certificate-private-key\",\"210\":\"81#org-highmed-dsf-bpe-mail-client-certificate-private-key-password-or-org-highmed-dsf-bpe-mail-client-certificate-private-key-password-file\",\"211\":\"81#org-highmed-dsf-bpe-mail-fromaddress\",\"212\":\"81#org-highmed-dsf-bpe-mail-host\",\"213\":\"81#org-highmed-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"214\":\"81#org-highmed-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"215\":\"81#org-highmed-dsf-bpe-mail-password-or-org-highmed-dsf-bpe-mail-password-file\",\"216\":\"81#org-highmed-dsf-bpe-mail-port\",\"217\":\"81#org-highmed-dsf-bpe-mail-replytoaddresses\",\"218\":\"81#org-highmed-dsf-bpe-mail-sendmailonerrorlogevent\",\"219\":\"81#org-highmed-dsf-bpe-mail-sendtestmailonstartup\",\"220\":\"81#org-highmed-dsf-bpe-mail-smime-p12keystore\",\"221\":\"81#org-highmed-dsf-bpe-mail-smime-p12keystore-password-or-org-highmed-dsf-bpe-mail-smime-p12keystore-password-file\",\"222\":\"81#org-highmed-dsf-bpe-mail-toaddresses\",\"223\":\"81#org-highmed-dsf-bpe-mail-toaddressescc\",\"224\":\"81#org-highmed-dsf-bpe-mail-trust-certificates\",\"225\":\"81#org-highmed-dsf-bpe-mail-username\",\"226\":\"81#org-highmed-dsf-bpe-mail-usesmtps\",\"227\":\"81#org-highmed-dsf-bpe-mpi-webservice-factory-class\",\"228\":\"81#org-highmed-dsf-bpe-openehr-webservice-factory-class\",\"229\":\"81#org-highmed-dsf-bpe-process-excluded\",\"230\":\"81#org-highmed-dsf-bpe-process-fhir-server-retry-max\",\"231\":\"81#org-highmed-dsf-bpe-process-fhir-server-retry-sleep\",\"232\":\"81#org-highmed-dsf-bpe-process-plugin-directroy\",\"233\":\"81#org-highmed-dsf-bpe-process-retired\",\"234\":\"81#org-highmed-dsf-bpe-pseudonymization-webservice-factory-class\",\"235\":\"82\",\"236\":\"82#dsf-0-9-3-configuration-parameters-fhir-server\",\"237\":\"82#org-highmed-dsf-fhir-client-certificate\",\"238\":\"82#org-highmed-dsf-fhir-client-certificate-private-key\",\"239\":\"82#org-highmed-dsf-fhir-client-certificate-private-key-password-or-org-highmed-dsf-fhir-client-certificate-private-key-password-file\",\"240\":\"82#org-highmed-dsf-fhir-client-proxy-password-or-org-highmed-dsf-fhir-client-proxy-password-file\",\"241\":\"82#org-highmed-dsf-fhir-client-proxy-url\",\"242\":\"82#org-highmed-dsf-fhir-client-proxy-username\",\"243\":\"82#org-highmed-dsf-fhir-client-timeout-connect\",\"244\":\"82#org-highmed-dsf-fhir-client-timeout-read\",\"245\":\"82#org-highmed-dsf-fhir-client-trust-certificates\",\"246\":\"82#org-highmed-dsf-fhir-client-verbose\",\"247\":\"82#org-highmed-dsf-fhir-db-liquibase-password-or-org-highmed-dsf-fhir-db-liquibase-password-file\",\"248\":\"82#org-highmed-dsf-fhir-db-liquibase-username\",\"249\":\"82#org-highmed-dsf-fhir-db-url\",\"250\":\"82#org-highmed-dsf-fhir-db-user-group\",\"251\":\"82#org-highmed-dsf-fhir-db-user-password-or-org-highmed-dsf-fhir-db-user-password-file\",\"252\":\"82#org-highmed-dsf-fhir-db-user-permanent-delete-group\",\"253\":\"82#org-highmed-dsf-fhir-db-user-permanent-delete-password-or-org-highmed-dsf-fhir-db-user-permanent-delete-password-file\",\"254\":\"82#org-highmed-dsf-fhir-db-user-permanent-delete-username\",\"255\":\"82#org-highmed-dsf-fhir-db-user-username\",\"256\":\"82#org-highmed-dsf-fhir-server-base-url\",\"257\":\"82#org-highmed-dsf-fhir-server-cors-origins\",\"258\":\"82#org-highmed-dsf-fhir-server-init-bundle\",\"259\":\"82#org-highmed-dsf-fhir-server-organization-identifier-value\",\"260\":\"82#org-highmed-dsf-fhir-server-page-count\",\"261\":\"82#org-highmed-dsf-fhir-server-user-thumbprints\",\"262\":\"82#org-highmed-dsf-fhir-server-user-thumbprints-permanent-delete\",\"263\":\"83\",\"264\":\"83#dsf-0-9-3-configuration-parameters-fhir-reverse-proxy\",\"265\":\"83#app-server-ip\",\"266\":\"83#https-server-name-port\",\"267\":\"83#proxy-pass-connection-timeout-http\",\"268\":\"83#proxy-pass-connection-timeout-ws\",\"269\":\"83#proxy-pass-timeout-http\",\"270\":\"83#proxy-pass-timeout-ws\",\"271\":\"83#ssl-ca-certificate-file\",\"272\":\"83#ssl-ca-dn-request-file\",\"273\":\"83#ssl-certificate-chain-file\",\"274\":\"83#ssl-certificate-file\",\"275\":\"83#ssl-certificate-key-file\",\"276\":\"84\",\"277\":\"84#prerequisites\",\"278\":\"84#virtual-machines\",\"279\":\"84#docker-docker-compose\",\"280\":\"84#client-server-certificates\",\"281\":\"84#network-setup-network-access\",\"282\":\"84#on-boarding-excel-spreadsheet\",\"283\":\"84#setup\",\"284\":\"84#prepare-certificates\",\"285\":\"84#dsf-fhir-server\",\"286\":\"84#dsf-bpe-server\",\"287\":\"85\",\"288\":\"85#prerequisites\",\"289\":\"85#virtual-machines\",\"290\":\"85#docker-docker-compose\",\"291\":\"85#client-server-certificates\",\"292\":\"85#network-setup-network-access\",\"293\":\"85#on-boarding-excel-spreadsheet\",\"294\":\"85#setup\",\"295\":\"85#prepare-certificates\",\"296\":\"85#dsf-fhir-server\",\"297\":\"85#dsf-bpe-server\",\"298\":\"86\",\"299\":\"86#modify-dsf-fhir-server-setup\",\"300\":\"86#modify-dsf-bpe-server-setup\",\"301\":\"87\",\"302\":\"87#modify-dsf-fhir-server-setup\",\"303\":\"87#modify-dsf-bpe-server-setup\",\"304\":\"88\",\"305\":\"88#modify-dsf-fhir-server-setup\",\"306\":\"88#modify-dsf-bpe-server-setup\",\"307\":\"89\",\"308\":\"89#modify-dsf-fhir-server-setup\",\"309\":\"89#modify-dsf-bpe-server-setup\",\"310\":\"90\",\"311\":\"90#modify-dsf-fhir-server-setup\",\"312\":\"90#modify-dsf-bpe-server-setup\",\"313\":\"91\",\"314\":\"91#implementing-bpmn-processes-as-dsf-process-plugins\",\"315\":\"91#prerequisites\",\"316\":\"91#exercise-1-simple-process\",\"317\":\"91#exercise-1-1-process-debugging\",\"318\":\"91#exercise-2-input-parameters\",\"319\":\"91#exercise-3-message-events\",\"320\":\"91#exercise-4-exclusive-gateways\",\"321\":\"91#exercise-5-event-based-gateways-and-intermediate-events\",\"322\":\"92\",\"323\":\"92#docker-compose-yml\",\"324\":\"93\",\"325\":\"93#exercise-1-simple-process\",\"326\":\"93#introduction\",\"327\":\"93#tutorial-code-base-structure-and-docker-test-setup\",\"328\":\"93#process-plugin-main-components\",\"329\":\"93#process-execution-and-fhir-task-resources\",\"330\":\"93#process-access-control\",\"331\":\"93#exercise-tasks\",\"332\":\"93#solution-verification\",\"333\":\"93#maven-build-and-automated-tests\",\"334\":\"93#process-execution-and-manual-tests\",\"335\":\"94\",\"336\":\"94#exercise-1-1-process-debugging\",\"337\":\"94#introduction\",\"338\":\"94#exercise-tasks\",\"339\":\"95\",\"340\":\"95#exercise-2-input-parameters\",\"341\":\"95#introduction\",\"342\":\"95#environment-variables\",\"343\":\"95#task-input-parameters\",\"344\":\"95#version-and-release-date-placeholders\",\"345\":\"95#exercise-tasks\",\"346\":\"95#solution-verification\",\"347\":\"95#maven-build-and-automated-tests\",\"348\":\"95#process-execution-and-manual-tests\",\"349\":\"96\",\"350\":\"96#exercise-3-message-events\",\"351\":\"96#introduction\",\"352\":\"96#message-flow-and-fhir-task-resources\",\"353\":\"96#bpmn-process-definition-key-vs-fhir-task-instantiatesuri-and-activitydefinition-url-version\",\"354\":\"96#activitydefinitions-for-the-dsf\",\"355\":\"96#message-name-1-1\",\"356\":\"96#task-profile-1-1\",\"357\":\"96#requester-1\",\"358\":\"96#recipient-1\",\"359\":\"96#authorization-extension-example\",\"360\":\"96#exercise-tasks\",\"361\":\"96#solution-verification\",\"362\":\"96#maven-build-and-automated-tests\",\"363\":\"96#process-execution-and-manual-tests\",\"364\":\"97\",\"365\":\"97#exercise-4-exclusive-gateways\",\"366\":\"97#introduction\",\"367\":\"97#exclusive-gateways\",\"368\":\"97#condition-expressions\",\"369\":\"97#storing-modifying-process-variables\",\"370\":\"97#exercise-tasks\",\"371\":\"97#solution-verification\",\"372\":\"97#maven-build-and-automated-tests\",\"373\":\"97#process-execution-and-manual-tests\",\"374\":\"98\",\"375\":\"98#exercise-5-event-based-gateways-and-intermediate-events\",\"376\":\"98#introduction\",\"377\":\"98#managing-multiple-and-missing-messages\",\"378\":\"98#timer-events\",\"379\":\"98#matching-process-instances-with-business-keys\",\"380\":\"98#activitydefinitions-for-the-dsf\",\"381\":\"98#message-name-1-1\",\"382\":\"98#task-profile-1-1\",\"383\":\"98#requester-1\",\"384\":\"98#recipient-1\",\"385\":\"98#authorization-extension-example\",\"386\":\"98#exercise-tasks\",\"387\":\"98#solution-verification\",\"388\":\"98#maven-build-and-automated-tests\",\"389\":\"98#process-execution-and-manual-tests\",\"390\":\"99\",\"391\":\"99#git\",\"392\":\"99#java-11\",\"393\":\"99#maven-3-8\",\"394\":\"99#github-packages\",\"395\":\"99#docker-and-docker-compose\",\"396\":\"99#host-entries-for-test-setup\",\"397\":\"99#java-ide\",\"398\":\"99#bpmn-editor\",\"399\":\"99#hardware\",\"400\":\"100\",\"401\":\"100#benefits-of-contributing\",\"402\":\"100#general\",\"403\":\"100#code-style\",\"404\":\"100#branching-strategy\",\"405\":\"100#branch-naming\",\"406\":\"100#setting-up-the-project\",\"407\":\"100#java\",\"408\":\"100#docker\",\"409\":\"100#maven\",\"410\":\"100#workflow\",\"411\":\"100#pull-request-process\",\"412\":\"100#data-security-in-dsf-development\",\"413\":\"101\",\"414\":\"102\",\"415\":\"102#ways-you-can-contribute\",\"416\":\"103\",\"417\":\"103#overview\",\"418\":\"104\",\"419\":\"105\",\"420\":\"106\",\"421\":\"106#overview\",\"422\":\"107\",\"423\":\"107#overview\",\"424\":\"107#prerequisites\",\"425\":\"107#start-here\",\"426\":\"108\",\"427\":\"108#overview\",\"428\":\"108#prerequisites\",\"429\":\"108#deployment\",\"430\":\"109\",\"431\":\"109#prerequisites\",\"432\":\"109#virtual-machines\",\"433\":\"109#docker-docker-compose\",\"434\":\"109#client-server-certificates\",\"435\":\"109#network-setup-network-access\",\"436\":\"109#setup\",\"437\":\"109#prepare-certificates\",\"438\":\"109#dsf-fhir-server\",\"439\":\"109#dsf-bpe-server\",\"440\":\"109#logs\",\"441\":\"109#on-boarding\",\"442\":\"110\",\"443\":\"111\",\"444\":\"111#modify-dsf-fhir-server-setup\",\"445\":\"111#modify-dsf-bpe-server-setup\",\"446\":\"112\",\"447\":\"112#overview\",\"448\":\"113\",\"449\":\"114\",\"450\":\"115\",\"451\":\"115#overview\",\"452\":\"116\",\"453\":\"116#overview\",\"454\":\"116#prerequisites\",\"455\":\"116#start-here\",\"456\":\"117\",\"457\":\"117#prerequisites\",\"458\":\"117#virtual-machines\",\"459\":\"117#docker-docker-compose\",\"460\":\"117#client-server-certificates\",\"461\":\"117#network-setup-network-access\",\"462\":\"117#setup\",\"463\":\"117#prepare-certificates\",\"464\":\"117#dsf-fhir-server\",\"465\":\"117#dsf-bpe-server\",\"466\":\"117#logs\",\"467\":\"117#on-boarding\",\"468\":\"118\",\"469\":\"119\",\"470\":\"119#overview\",\"471\":\"120\",\"472\":\"121\",\"473\":\"122\",\"474\":\"122#overview\",\"475\":\"123\",\"476\":\"123#overview\",\"477\":\"123#prerequisites\",\"478\":\"123#start-here\",\"479\":\"124\",\"480\":\"124#prerequisites\",\"481\":\"124#virtual-machines\",\"482\":\"124#docker-docker-compose\",\"483\":\"124#client-server-certificates\",\"484\":\"124#network-setup-network-access\",\"485\":\"124#setup\",\"486\":\"124#prepare-certificates\",\"487\":\"124#dsf-fhir-server\",\"488\":\"124#dsf-bpe-server\",\"489\":\"124#logs\",\"490\":\"124#on-boarding\",\"491\":\"125\",\"492\":\"126\",\"493\":\"126#modify-dsf-fhir-server-setup\",\"494\":\"126#modify-dsf-bpe-server-setup\",\"495\":\"127\",\"496\":\"127#overview\",\"497\":\"128\",\"498\":\"129\",\"499\":\"130\",\"500\":\"130#overview\",\"501\":\"131\",\"502\":\"131#overview\",\"503\":\"131#prerequisites\",\"504\":\"131#start-here\",\"505\":\"132\",\"506\":\"132#prerequisites\",\"507\":\"132#virtual-machines\",\"508\":\"132#docker-docker-compose\",\"509\":\"132#client-server-certificates\",\"510\":\"132#network-setup-network-access\",\"511\":\"132#setup\",\"512\":\"132#prepare-certificates\",\"513\":\"132#dsf-fhir-server\",\"514\":\"132#dsf-bpe-server\",\"515\":\"132#logs\",\"516\":\"132#on-boarding\",\"517\":\"133\",\"518\":\"134\",\"519\":\"134#modify-dsf-fhir-server-setup\",\"520\":\"134#modify-dsf-bpe-server-setup\",\"521\":\"135\",\"522\":\"135#overview\",\"523\":\"136\",\"524\":\"137\",\"525\":\"138\",\"526\":\"138#overview\",\"527\":\"139\",\"528\":\"139#overview\",\"529\":\"139#prerequisites\",\"530\":\"139#start-here\",\"531\":\"140\",\"532\":\"140#common-processes\",\"533\":\"140#mii-processes\",\"534\":\"140#num-processes\",\"535\":\"141\",\"536\":\"141#prerequisites\",\"537\":\"141#virtual-machines\",\"538\":\"141#docker-docker-compose\",\"539\":\"141#client-server-certificates\",\"540\":\"141#network-setup-network-access\",\"541\":\"141#setup\",\"542\":\"141#prepare-certificates\",\"543\":\"141#dsf-fhir-server\",\"544\":\"141#dsf-bpe-server\",\"545\":\"141#logs\",\"546\":\"141#on-boarding\",\"547\":\"142\",\"548\":\"143\",\"549\":\"143#modify-dsf-fhir-server-setup\",\"550\":\"143#modify-dsf-bpe-server-setup\",\"551\":\"144\",\"552\":\"144#overview\",\"553\":\"145\",\"554\":\"146\",\"555\":\"147\",\"556\":\"147#overview\",\"557\":\"148\",\"558\":\"148#overview\",\"559\":\"148#prerequisites\",\"560\":\"148#start-here\",\"561\":\"149\",\"562\":\"149#common-processes\",\"563\":\"149#mii-processes\",\"564\":\"149#num-processes\",\"565\":\"150\",\"566\":\"150#prerequisites\",\"567\":\"150#virtual-machines\",\"568\":\"150#docker-docker-compose\",\"569\":\"150#client-server-certificates\",\"570\":\"150#network-setup-network-access\",\"571\":\"150#setup\",\"572\":\"150#prepare-certificates\",\"573\":\"150#dsf-fhir-server\",\"574\":\"150#dsf-bpe-server\",\"575\":\"150#logs\",\"576\":\"150#on-boarding\",\"577\":\"151\",\"578\":\"152\",\"579\":\"152#modify-dsf-fhir-server-setup\",\"580\":\"152#modify-dsf-bpe-server-setup\",\"581\":\"153\",\"582\":\"153#overview\",\"583\":\"154\",\"584\":\"155\",\"585\":\"156\",\"586\":\"156#overview\",\"587\":\"157\",\"588\":\"157#overview\",\"589\":\"157#prerequisites\",\"590\":\"157#start-here\",\"591\":\"158\",\"592\":\"158#common-processes\",\"593\":\"158#mii-processes\",\"594\":\"158#num-processes\",\"595\":\"159\",\"596\":\"159#prerequisites\",\"597\":\"159#virtual-machines\",\"598\":\"159#docker-docker-compose\",\"599\":\"159#client-server-certificates\",\"600\":\"159#network-setup-network-access\",\"601\":\"159#setup\",\"602\":\"159#prepare-certificates\",\"603\":\"159#dsf-fhir-server\",\"604\":\"159#dsf-bpe-server\",\"605\":\"159#logs\",\"606\":\"159#on-boarding\",\"607\":\"160\",\"608\":\"161\",\"609\":\"161#modify-dsf-fhir-server-setup\",\"610\":\"161#modify-dsf-bpe-server-setup\",\"611\":\"162\",\"612\":\"162#benefits-of-contributing\",\"613\":\"162#general\",\"614\":\"162#code-style\",\"615\":\"162#branching-strategy\",\"616\":\"162#branch-naming\",\"617\":\"162#setting-up-the-project\",\"618\":\"162#java\",\"619\":\"162#docker\",\"620\":\"162#maven\",\"621\":\"162#workflow\",\"622\":\"162#pull-request-process\",\"623\":\"162#data-security-in-dsf-development\",\"624\":\"163\",\"625\":\"164\",\"626\":\"164#ways-you-can-contribute\",\"627\":\"165\",\"628\":\"165#overview\",\"629\":\"166\",\"630\":\"167\",\"631\":\"168\",\"632\":\"168#overview\",\"633\":\"169\",\"634\":\"169#overview\",\"635\":\"169#prerequisites\",\"636\":\"169#start-here\",\"637\":\"170\",\"638\":\"170#common-processes\",\"639\":\"170#mii-processes\",\"640\":\"170#num-processes\",\"641\":\"171\",\"642\":\"171#prerequisites\",\"643\":\"171#virtual-machines\",\"644\":\"171#docker-docker-compose\",\"645\":\"171#client-server-certificates\",\"646\":\"171#network-setup-network-access\",\"647\":\"171#setup\",\"648\":\"171#prepare-certificates\",\"649\":\"171#dsf-fhir-server\",\"650\":\"171#dsf-bpe-server\",\"651\":\"171#logs\",\"652\":\"171#on-boarding\",\"653\":\"172\",\"654\":\"173\",\"655\":\"173#modify-dsf-fhir-server-setup\",\"656\":\"173#modify-dsf-bpe-server-setup\",\"657\":\"174\",\"658\":\"174#benefits-of-contributing\",\"659\":\"174#general\",\"660\":\"174#code-style\",\"661\":\"174#branching-strategy\",\"662\":\"174#branch-naming\",\"663\":\"174#setting-up-the-project\",\"664\":\"174#java\",\"665\":\"174#docker\",\"666\":\"174#maven\",\"667\":\"174#workflow\",\"668\":\"174#pull-request-process\",\"669\":\"174#data-security-in-dsf-development\",\"670\":\"175\",\"671\":\"176\",\"672\":\"176#ways-you-can-contribute\",\"673\":\"177\",\"674\":\"177#overview\",\"675\":\"178\",\"676\":\"179\",\"677\":\"180\",\"678\":\"180#overview\",\"679\":\"181\",\"680\":\"181#overview\",\"681\":\"181#prerequisites\",\"682\":\"181#start-here\",\"683\":\"182\",\"684\":\"182#common-processes\",\"685\":\"182#mii-processes\",\"686\":\"182#num-processes\",\"687\":\"183\",\"688\":\"183#prerequisites\",\"689\":\"183#virtual-machines\",\"690\":\"183#docker-docker-compose\",\"691\":\"183#client-server-certificates\",\"692\":\"183#network-setup-network-access\",\"693\":\"183#setup\",\"694\":\"183#prepare-certificates\",\"695\":\"183#dsf-fhir-server\",\"696\":\"183#dsf-bpe-server\",\"697\":\"183#logs\",\"698\":\"183#on-boarding\",\"699\":\"184\",\"700\":\"185\",\"701\":\"185#modify-dsf-fhir-server-setup\",\"702\":\"185#modify-dsf-bpe-server-setup\",\"703\":\"186\",\"704\":\"186#benefits-of-contributing\",\"705\":\"186#general\",\"706\":\"186#code-style\",\"707\":\"186#branching-strategy\",\"708\":\"186#branch-naming\",\"709\":\"186#setting-up-the-project\",\"710\":\"186#java\",\"711\":\"186#docker\",\"712\":\"186#maven\",\"713\":\"186#workflow\",\"714\":\"186#pull-request-process\",\"715\":\"186#data-security-in-dsf-development\",\"716\":\"187\",\"717\":\"188\",\"718\":\"188#ways-you-can-contribute\",\"719\":\"189\",\"720\":\"189#overview\",\"721\":\"190\",\"722\":\"191\",\"723\":\"192\",\"724\":\"192#overview\",\"725\":\"193\",\"726\":\"193#overview\",\"727\":\"193#prerequisites\",\"728\":\"193#start-here\",\"729\":\"194\",\"730\":\"194#common-processes\",\"731\":\"194#mii-processes\",\"732\":\"194#num-processes\",\"733\":\"195\",\"734\":\"195#prerequisites\",\"735\":\"195#virtual-machines\",\"736\":\"195#docker-docker-compose\",\"737\":\"195#client-server-certificates\",\"738\":\"195#network-setup-network-access\",\"739\":\"195#setup\",\"740\":\"195#prepare-certificates\",\"741\":\"195#dsf-fhir-server\",\"742\":\"195#dsf-bpe-server\",\"743\":\"195#logs\",\"744\":\"195#on-boarding\",\"745\":\"196\",\"746\":\"197\",\"747\":\"197#modify-dsf-fhir-server-setup\",\"748\":\"197#modify-dsf-bpe-server-setup\",\"749\":\"198\",\"750\":\"198#benefits-of-contributing\",\"751\":\"198#general\",\"752\":\"198#code-style\",\"753\":\"198#branching-strategy\",\"754\":\"198#branch-naming\",\"755\":\"198#setting-up-the-project\",\"756\":\"198#java\",\"757\":\"198#docker\",\"758\":\"198#maven\",\"759\":\"198#workflow\",\"760\":\"198#pull-request-process\",\"761\":\"198#data-security-in-dsf-development\",\"762\":\"199\",\"763\":\"200\",\"764\":\"200#ways-you-can-contribute\",\"765\":\"201\",\"766\":\"201#overview\",\"767\":\"202\",\"768\":\"203\",\"769\":\"204\",\"770\":\"204#overview\",\"771\":\"205\",\"772\":\"205#overview\",\"773\":\"205#prerequisites\",\"774\":\"205#start-here\",\"775\":\"206\",\"776\":\"206#overview\",\"777\":\"206#prerequisites\",\"778\":\"206#deployment\",\"779\":\"207\",\"780\":\"207#prerequisites\",\"781\":\"207#virtual-machines\",\"782\":\"207#docker-docker-compose\",\"783\":\"207#client-server-certificates\",\"784\":\"207#network-setup-network-access\",\"785\":\"207#setup\",\"786\":\"207#prepare-certificates\",\"787\":\"207#dsf-fhir-server\",\"788\":\"207#dsf-bpe-server\",\"789\":\"207#logs\",\"790\":\"207#on-boarding\",\"791\":\"208\",\"792\":\"209\",\"793\":\"209#modify-dsf-fhir-server-setup\",\"794\":\"209#modify-dsf-bpe-server-setup\",\"795\":\"210\",\"796\":\"210#overview\",\"797\":\"211\",\"798\":\"211#overview\",\"799\":\"211#matching-users\",\"800\":\"211#thumbprint\",\"801\":\"211#email\",\"802\":\"211#token-role-and-token-group\",\"803\":\"211#dsf-and-practitioner-roles\",\"804\":\"211#dsf-role\",\"805\":\"211#practitioner-role\",\"806\":\"211#examples\",\"807\":\"212\",\"808\":\"212#dev-dsf-server-api-host\",\"809\":\"212#dev-dsf-server-api-port\",\"810\":\"212#dev-dsf-server-auth-client-certificate-header\",\"811\":\"212#dev-dsf-server-auth-oidc-authorization-code-flow\",\"812\":\"212#dev-dsf-server-auth-oidc-back-channel-logout\",\"813\":\"212#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"814\":\"212#dev-dsf-server-auth-oidc-bearer-token\",\"815\":\"212#dev-dsf-server-auth-oidc-client-id\",\"816\":\"212#dev-dsf-server-auth-oidc-client-secret\",\"817\":\"212#dev-dsf-server-auth-oidc-provider-client-certificate\",\"818\":\"212#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"819\":\"212#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"820\":\"212#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"821\":\"212#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"822\":\"212#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"823\":\"212#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"824\":\"212#dev-dsf-server-auth-trust-client-certificate-cas\",\"825\":\"212#dev-dsf-server-certificate\",\"826\":\"212#dev-dsf-server-certificate-chain\",\"827\":\"212#dev-dsf-server-certificate-key\",\"828\":\"212#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"829\":\"212#dev-dsf-server-context-path\",\"830\":\"212#dev-dsf-server-status-host\",\"831\":\"212#dev-dsf-server-status-port\",\"832\":\"212#dev-dsf-bpe-db-liquibase-forceunlock\",\"833\":\"212#dev-dsf-bpe-db-liquibase-lockwaittime\",\"834\":\"212#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file\",\"835\":\"212#dev-dsf-bpe-db-liquibase-username\",\"836\":\"212#dev-dsf-bpe-db-url\",\"837\":\"212#dev-dsf-bpe-db-user-camunda-group\",\"838\":\"212#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file\",\"839\":\"212#dev-dsf-bpe-db-user-camunda-username\",\"840\":\"212#dev-dsf-bpe-db-user-group\",\"841\":\"212#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file\",\"842\":\"212#dev-dsf-bpe-db-user-username\",\"843\":\"212#dev-dsf-bpe-debug-log-message-currentuser\",\"844\":\"212#dev-dsf-bpe-debug-log-message-dbstatement\",\"845\":\"212#dev-dsf-bpe-debug-log-message-onactivityend\",\"846\":\"212#dev-dsf-bpe-debug-log-message-onactivitystart\",\"847\":\"212#dev-dsf-bpe-debug-log-message-variables\",\"848\":\"212#dev-dsf-bpe-debug-log-message-variableslocal\",\"849\":\"212#dev-dsf-bpe-debug-log-message-webservicerequest\",\"850\":\"212#dev-dsf-bpe-fhir-client-certificate\",\"851\":\"212#dev-dsf-bpe-fhir-client-certificate-private-key\",\"852\":\"212#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"853\":\"212#dev-dsf-bpe-fhir-client-local-timeout-connect\",\"854\":\"212#dev-dsf-bpe-fhir-client-local-timeout-read\",\"855\":\"212#dev-dsf-bpe-fhir-client-local-verbose\",\"856\":\"212#dev-dsf-bpe-fhir-client-remote-timeout-connect\",\"857\":\"212#dev-dsf-bpe-fhir-client-remote-timeout-read\",\"858\":\"212#dev-dsf-bpe-fhir-client-remote-verbose\",\"859\":\"212#dev-dsf-bpe-fhir-client-trust-server-certificate-cas\",\"860\":\"212#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"861\":\"212#dev-dsf-bpe-fhir-server-base-url\",\"862\":\"212#dev-dsf-bpe-fhir-task-subscription-retry-max\",\"863\":\"212#dev-dsf-bpe-fhir-task-subscription-retry-sleep\",\"864\":\"212#dev-dsf-bpe-fhir-task-subscription-search-parameter\",\"865\":\"212#dev-dsf-bpe-mail-client-certificate\",\"866\":\"212#dev-dsf-bpe-mail-client-certificate-private-key\",\"867\":\"212#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file\",\"868\":\"212#dev-dsf-bpe-mail-fromaddress\",\"869\":\"212#dev-dsf-bpe-mail-host\",\"870\":\"212#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"871\":\"212#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"872\":\"212#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file\",\"873\":\"212#dev-dsf-bpe-mail-port\",\"874\":\"212#dev-dsf-bpe-mail-replytoaddresses\",\"875\":\"212#dev-dsf-bpe-mail-sendmailonerrorlogevent\",\"876\":\"212#dev-dsf-bpe-mail-sendtestmailonstartup\",\"877\":\"212#dev-dsf-bpe-mail-smime-p12keystore\",\"878\":\"212#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file\",\"879\":\"212#dev-dsf-bpe-mail-toaddresses\",\"880\":\"212#dev-dsf-bpe-mail-toaddressescc\",\"881\":\"212#dev-dsf-bpe-mail-trust-server-certificate-cas\",\"882\":\"212#dev-dsf-bpe-mail-username\",\"883\":\"212#dev-dsf-bpe-mail-usesmtps\",\"884\":\"212#dev-dsf-bpe-process-engine-corepoolsize\",\"885\":\"212#dev-dsf-bpe-process-engine-maxpoolsize\",\"886\":\"212#dev-dsf-bpe-process-engine-queuesize\",\"887\":\"212#dev-dsf-bpe-process-excluded\",\"888\":\"212#dev-dsf-bpe-process-fhir-server-retry-max\",\"889\":\"212#dev-dsf-bpe-process-fhir-server-retry-sleep\",\"890\":\"212#dev-dsf-bpe-process-plugin-directroy\",\"891\":\"212#dev-dsf-bpe-process-retired\",\"892\":\"212#dev-dsf-bpe-process-threads\",\"893\":\"212#dev-dsf-bpe-server-base-url\",\"894\":\"212#dev-dsf-bpe-server-roleconfig\",\"895\":\"212#dev-dsf-bpe-server-static-resource-cache\",\"896\":\"212#dev-dsf-bpe-server-ui-theme\",\"897\":\"212#dev-dsf-proxy-noproxy\",\"898\":\"212#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"899\":\"212#dev-dsf-proxy-url\",\"900\":\"212#dev-dsf-proxy-username\",\"901\":\"213\",\"902\":\"213#overview\",\"903\":\"213#authorization-code-flow\",\"904\":\"213#additional-odic-configuration-parameter\",\"905\":\"213#example\",\"906\":\"214\",\"907\":\"214#overview\",\"908\":\"215\",\"909\":\"215#app-server-ip\",\"910\":\"215#https-server-name-port\",\"911\":\"215#proxy-pass-connection-timeout-http\",\"912\":\"215#proxy-pass-connection-timeout-ws\",\"913\":\"215#proxy-pass-timeout-http\",\"914\":\"215#proxy-pass-timeout-ws\",\"915\":\"215#server-context-path\",\"916\":\"215#ssl-ca-certificate-file\",\"917\":\"215#ssl-ca-dn-request-file\",\"918\":\"215#ssl-certificate-chain-file\",\"919\":\"215#ssl-certificate-file\",\"920\":\"215#ssl-certificate-key-file\",\"921\":\"215#ssl-verify-client\",\"922\":\"216\",\"923\":\"216#overview\",\"924\":\"217\",\"925\":\"217#overview\",\"926\":\"217#matching-users\",\"927\":\"217#thumbprint\",\"928\":\"217#email\",\"929\":\"217#token-role-and-token-group\",\"930\":\"217#dsf-and-practitioner-roles\",\"931\":\"217#dsf-role\",\"932\":\"217#practitioner-role\",\"933\":\"217#examples\",\"934\":\"218\",\"935\":\"218#dev-dsf-fhir-client-certificate\",\"936\":\"218#dev-dsf-fhir-client-certificate-private-key\",\"937\":\"218#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file\",\"938\":\"218#dev-dsf-fhir-client-timeout-connect\",\"939\":\"218#dev-dsf-fhir-client-timeout-read\",\"940\":\"218#dev-dsf-fhir-client-trust-server-certificate-cas\",\"941\":\"218#dev-dsf-fhir-client-verbose\",\"942\":\"218#dev-dsf-fhir-db-liquibase-forceunlock\",\"943\":\"218#dev-dsf-fhir-db-liquibase-lockwaittime\",\"944\":\"218#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file\",\"945\":\"218#dev-dsf-fhir-db-liquibase-username\",\"946\":\"218#dev-dsf-fhir-db-url\",\"947\":\"218#dev-dsf-fhir-db-user-group\",\"948\":\"218#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file\",\"949\":\"218#dev-dsf-fhir-db-user-permanent-delete-group\",\"950\":\"218#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file\",\"951\":\"218#dev-dsf-fhir-db-user-permanent-delete-username\",\"952\":\"218#dev-dsf-fhir-db-user-username\",\"953\":\"218#dev-dsf-fhir-debug-log-message-currentuser\",\"954\":\"218#dev-dsf-fhir-debug-log-message-dbstatement\",\"955\":\"218#dev-dsf-fhir-debug-log-message-webservicerequest\",\"956\":\"218#dev-dsf-fhir-server-base-url\",\"957\":\"218#dev-dsf-fhir-server-init-bundle\",\"958\":\"218#dev-dsf-fhir-server-organization-identifier-value\",\"959\":\"218#dev-dsf-fhir-server-organization-thumbprint\",\"960\":\"218#dev-dsf-fhir-server-page-count\",\"961\":\"218#dev-dsf-fhir-server-roleconfig\",\"962\":\"218#dev-dsf-fhir-server-static-resource-cache\",\"963\":\"218#dev-dsf-fhir-server-ui-theme\",\"964\":\"218#dev-dsf-proxy-noproxy\",\"965\":\"218#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"966\":\"218#dev-dsf-proxy-url\",\"967\":\"218#dev-dsf-proxy-username\",\"968\":\"218#dev-dsf-server-api-host\",\"969\":\"218#dev-dsf-server-api-port\",\"970\":\"218#dev-dsf-server-auth-client-certificate-header\",\"971\":\"218#dev-dsf-server-auth-oidc-authorization-code-flow\",\"972\":\"218#dev-dsf-server-auth-oidc-back-channel-logout\",\"973\":\"218#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"974\":\"218#dev-dsf-server-auth-oidc-bearer-token\",\"975\":\"218#dev-dsf-server-auth-oidc-client-id\",\"976\":\"218#dev-dsf-server-auth-oidc-client-secret\",\"977\":\"218#dev-dsf-server-auth-oidc-provider-client-certificate\",\"978\":\"218#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"979\":\"218#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"980\":\"218#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"981\":\"218#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"982\":\"218#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"983\":\"218#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"984\":\"218#dev-dsf-server-auth-trust-client-certificate-cas\",\"985\":\"218#dev-dsf-server-certificate\",\"986\":\"218#dev-dsf-server-certificate-chain\",\"987\":\"218#dev-dsf-server-certificate-key\",\"988\":\"218#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"989\":\"218#dev-dsf-server-context-path\",\"990\":\"218#dev-dsf-server-status-host\",\"991\":\"218#dev-dsf-server-status-port\",\"992\":\"219\",\"993\":\"219#overview\",\"994\":\"219#authorization-code-flow\",\"995\":\"219#bearer-token-authentication\",\"996\":\"219#additional-odic-configuration-parameter\",\"997\":\"219#example\",\"998\":\"220\",\"999\":\"220#overview\",\"1000\":\"221\",\"1001\":\"221#app-server-ip\",\"1002\":\"221#https-server-name-port\",\"1003\":\"221#proxy-pass-connection-timeout-http\",\"1004\":\"221#proxy-pass-connection-timeout-ws\",\"1005\":\"221#proxy-pass-timeout-http\",\"1006\":\"221#proxy-pass-timeout-ws\",\"1007\":\"221#server-context-path\",\"1008\":\"221#ssl-ca-certificate-file\",\"1009\":\"221#ssl-ca-dn-request-file\",\"1010\":\"221#ssl-certificate-chain-file\",\"1011\":\"221#ssl-certificate-file\",\"1012\":\"221#ssl-certificate-key-file\",\"1013\":\"221#ssl-verify-client\",\"1014\":\"222\",\"1015\":\"222#overview\",\"1016\":\"223\",\"1017\":\"223#dev-dsf-bpe-db-liquibase-forceunlock\",\"1018\":\"223#dev-dsf-bpe-db-liquibase-lockwaittime\",\"1019\":\"223#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file\",\"1020\":\"223#dev-dsf-bpe-db-liquibase-username\",\"1021\":\"223#dev-dsf-bpe-db-url\",\"1022\":\"223#dev-dsf-bpe-db-user-camunda-group\",\"1023\":\"223#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file\",\"1024\":\"223#dev-dsf-bpe-db-user-camunda-username\",\"1025\":\"223#dev-dsf-bpe-db-user-group\",\"1026\":\"223#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file\",\"1027\":\"223#dev-dsf-bpe-db-user-username\",\"1028\":\"223#dev-dsf-bpe-debug-log-message-onactivityend\",\"1029\":\"223#dev-dsf-bpe-debug-log-message-onactivitystart\",\"1030\":\"223#dev-dsf-bpe-debug-log-message-variables\",\"1031\":\"223#dev-dsf-bpe-fhir-client-certificate\",\"1032\":\"223#dev-dsf-bpe-fhir-client-certificate-private-key\",\"1033\":\"223#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"1034\":\"223#dev-dsf-bpe-fhir-client-local-timeout-connect\",\"1035\":\"223#dev-dsf-bpe-fhir-client-local-timeout-read\",\"1036\":\"223#dev-dsf-bpe-fhir-client-local-verbose\",\"1037\":\"223#dev-dsf-bpe-fhir-client-remote-timeout-connect\",\"1038\":\"223#dev-dsf-bpe-fhir-client-remote-timeout-read\",\"1039\":\"223#dev-dsf-bpe-fhir-client-remote-verbose\",\"1040\":\"223#dev-dsf-bpe-fhir-client-trust-server-certificate-cas\",\"1041\":\"223#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"1042\":\"223#dev-dsf-bpe-fhir-server-base-url\",\"1043\":\"223#dev-dsf-bpe-fhir-server-organization-identifier-value\",\"1044\":\"223#dev-dsf-bpe-fhir-task-subscription-retry-max\",\"1045\":\"223#dev-dsf-bpe-fhir-task-subscription-retry-sleep\",\"1046\":\"223#dev-dsf-bpe-fhir-task-subscription-search-parameter\",\"1047\":\"223#dev-dsf-bpe-mail-client-certificate\",\"1048\":\"223#dev-dsf-bpe-mail-client-certificate-private-key\",\"1049\":\"223#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file\",\"1050\":\"223#dev-dsf-bpe-mail-fromaddress\",\"1051\":\"223#dev-dsf-bpe-mail-host\",\"1052\":\"223#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"1053\":\"223#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"1054\":\"223#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file\",\"1055\":\"223#dev-dsf-bpe-mail-port\",\"1056\":\"223#dev-dsf-bpe-mail-replytoaddresses\",\"1057\":\"223#dev-dsf-bpe-mail-sendmailonerrorlogevent\",\"1058\":\"223#dev-dsf-bpe-mail-sendtestmailonstartup\",\"1059\":\"223#dev-dsf-bpe-mail-smime-p12keystore\",\"1060\":\"223#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file\",\"1061\":\"223#dev-dsf-bpe-mail-toaddresses\",\"1062\":\"223#dev-dsf-bpe-mail-toaddressescc\",\"1063\":\"223#dev-dsf-bpe-mail-trust-server-certificate-cas\",\"1064\":\"223#dev-dsf-bpe-mail-username\",\"1065\":\"223#dev-dsf-bpe-mail-usesmtps\",\"1066\":\"223#dev-dsf-bpe-process-excluded\",\"1067\":\"223#dev-dsf-bpe-process-fhir-server-retry-max\",\"1068\":\"223#dev-dsf-bpe-process-fhir-server-retry-sleep\",\"1069\":\"223#dev-dsf-bpe-process-plugin-directroy\",\"1070\":\"223#dev-dsf-bpe-process-retired\",\"1071\":\"223#dev-dsf-proxy-noproxy\",\"1072\":\"223#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1073\":\"223#dev-dsf-proxy-url\",\"1074\":\"223#dev-dsf-proxy-username\",\"1075\":\"224\",\"1076\":\"224#dev-dsf-server-api-host\",\"1077\":\"224#dev-dsf-server-api-port\",\"1078\":\"224#dev-dsf-server-auth-client-certificate-header\",\"1079\":\"224#dev-dsf-server-auth-oidc-authorization-code-flow\",\"1080\":\"224#dev-dsf-server-auth-oidc-back-channel-logout\",\"1081\":\"224#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"1082\":\"224#dev-dsf-server-auth-oidc-bearer-token\",\"1083\":\"224#dev-dsf-server-auth-oidc-client-id\",\"1084\":\"224#dev-dsf-server-auth-oidc-client-secret\",\"1085\":\"224#dev-dsf-server-auth-oidc-provider-client-certificate\",\"1086\":\"224#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"1087\":\"224#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"1088\":\"224#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"1089\":\"224#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"1090\":\"224#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"1091\":\"224#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"1092\":\"224#dev-dsf-server-auth-trust-client-certificate-cas\",\"1093\":\"224#dev-dsf-server-certificate\",\"1094\":\"224#dev-dsf-server-certificate-chain\",\"1095\":\"224#dev-dsf-server-certificate-key\",\"1096\":\"224#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"1097\":\"224#dev-dsf-server-context-path\",\"1098\":\"224#dev-dsf-server-status-host\",\"1099\":\"224#dev-dsf-server-status-port\",\"1100\":\"225\",\"1101\":\"225#dev-dsf-fhir-client-certificate\",\"1102\":\"225#dev-dsf-fhir-client-certificate-private-key\",\"1103\":\"225#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file\",\"1104\":\"225#dev-dsf-fhir-client-timeout-connect\",\"1105\":\"225#dev-dsf-fhir-client-timeout-read\",\"1106\":\"225#dev-dsf-fhir-client-trust-server-certificate-cas\",\"1107\":\"225#dev-dsf-fhir-client-verbose\",\"1108\":\"225#dev-dsf-fhir-db-liquibase-forceunlock\",\"1109\":\"225#dev-dsf-fhir-db-liquibase-lockwaittime\",\"1110\":\"225#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file\",\"1111\":\"225#dev-dsf-fhir-db-liquibase-username\",\"1112\":\"225#dev-dsf-fhir-db-url\",\"1113\":\"225#dev-dsf-fhir-db-user-group\",\"1114\":\"225#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file\",\"1115\":\"225#dev-dsf-fhir-db-user-permanent-delete-group\",\"1116\":\"225#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file\",\"1117\":\"225#dev-dsf-fhir-db-user-permanent-delete-username\",\"1118\":\"225#dev-dsf-fhir-db-user-username\",\"1119\":\"225#dev-dsf-fhir-server-base-url\",\"1120\":\"225#dev-dsf-fhir-server-init-bundle\",\"1121\":\"225#dev-dsf-fhir-server-organization-identifier-value\",\"1122\":\"225#dev-dsf-fhir-server-page-count\",\"1123\":\"225#dev-dsf-fhir-server-roleconfig\",\"1124\":\"225#dev-dsf-fhir-server-static-resource-cache\",\"1125\":\"225#dev-dsf-proxy-noproxy\",\"1126\":\"225#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1127\":\"225#dev-dsf-proxy-url\",\"1128\":\"225#dev-dsf-proxy-username\",\"1129\":\"226\",\"1130\":\"226#app-server-ip\",\"1131\":\"226#https-server-name-port\",\"1132\":\"226#proxy-pass-connection-timeout-http\",\"1133\":\"226#proxy-pass-connection-timeout-ws\",\"1134\":\"226#proxy-pass-timeout-http\",\"1135\":\"226#proxy-pass-timeout-ws\",\"1136\":\"226#ssl-ca-certificate-file\",\"1137\":\"226#ssl-ca-dn-request-file\",\"1138\":\"226#ssl-certificate-chain-file\",\"1139\":\"226#ssl-certificate-file\",\"1140\":\"226#ssl-certificate-key-file\",\"1141\":\"227\",\"1142\":\"227#overview\",\"1143\":\"228\",\"1144\":\"228#dev-dsf-server-api-host\",\"1145\":\"228#dev-dsf-server-api-port\",\"1146\":\"228#dev-dsf-server-auth-client-certificate-header\",\"1147\":\"228#dev-dsf-server-auth-oidc-authorization-code-flow\",\"1148\":\"228#dev-dsf-server-auth-oidc-back-channel-logout\",\"1149\":\"228#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"1150\":\"228#dev-dsf-server-auth-oidc-bearer-token\",\"1151\":\"228#dev-dsf-server-auth-oidc-client-id\",\"1152\":\"228#dev-dsf-server-auth-oidc-client-secret\",\"1153\":\"228#dev-dsf-server-auth-oidc-provider-client-certificate\",\"1154\":\"228#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"1155\":\"228#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"1156\":\"228#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"1157\":\"228#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"1158\":\"228#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"1159\":\"228#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"1160\":\"228#dev-dsf-server-auth-trust-client-certificate-cas\",\"1161\":\"228#dev-dsf-server-certificate\",\"1162\":\"228#dev-dsf-server-certificate-chain\",\"1163\":\"228#dev-dsf-server-certificate-key\",\"1164\":\"228#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"1165\":\"228#dev-dsf-server-context-path\",\"1166\":\"228#dev-dsf-server-status-host\",\"1167\":\"228#dev-dsf-server-status-port\",\"1168\":\"228#dev-dsf-bpe-db-liquibase-forceunlock\",\"1169\":\"228#dev-dsf-bpe-db-liquibase-lockwaittime\",\"1170\":\"228#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file\",\"1171\":\"228#dev-dsf-bpe-db-liquibase-username\",\"1172\":\"228#dev-dsf-bpe-db-url\",\"1173\":\"228#dev-dsf-bpe-db-user-camunda-group\",\"1174\":\"228#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file\",\"1175\":\"228#dev-dsf-bpe-db-user-camunda-username\",\"1176\":\"228#dev-dsf-bpe-db-user-group\",\"1177\":\"228#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file\",\"1178\":\"228#dev-dsf-bpe-db-user-username\",\"1179\":\"228#dev-dsf-bpe-debug-log-message-onactivityend\",\"1180\":\"228#dev-dsf-bpe-debug-log-message-onactivitystart\",\"1181\":\"228#dev-dsf-bpe-debug-log-message-variables\",\"1182\":\"228#dev-dsf-bpe-fhir-client-certificate\",\"1183\":\"228#dev-dsf-bpe-fhir-client-certificate-private-key\",\"1184\":\"228#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"1185\":\"228#dev-dsf-bpe-fhir-client-local-timeout-connect\",\"1186\":\"228#dev-dsf-bpe-fhir-client-local-timeout-read\",\"1187\":\"228#dev-dsf-bpe-fhir-client-local-verbose\",\"1188\":\"228#dev-dsf-bpe-fhir-client-remote-timeout-connect\",\"1189\":\"228#dev-dsf-bpe-fhir-client-remote-timeout-read\",\"1190\":\"228#dev-dsf-bpe-fhir-client-remote-verbose\",\"1191\":\"228#dev-dsf-bpe-fhir-client-trust-server-certificate-cas\",\"1192\":\"228#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"1193\":\"228#dev-dsf-bpe-fhir-server-base-url\",\"1194\":\"228#dev-dsf-bpe-fhir-server-organization-identifier-value\",\"1195\":\"228#dev-dsf-bpe-fhir-task-subscription-retry-max\",\"1196\":\"228#dev-dsf-bpe-fhir-task-subscription-retry-sleep\",\"1197\":\"228#dev-dsf-bpe-fhir-task-subscription-search-parameter\",\"1198\":\"228#dev-dsf-bpe-mail-client-certificate\",\"1199\":\"228#dev-dsf-bpe-mail-client-certificate-private-key\",\"1200\":\"228#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file\",\"1201\":\"228#dev-dsf-bpe-mail-fromaddress\",\"1202\":\"228#dev-dsf-bpe-mail-host\",\"1203\":\"228#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"1204\":\"228#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"1205\":\"228#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file\",\"1206\":\"228#dev-dsf-bpe-mail-port\",\"1207\":\"228#dev-dsf-bpe-mail-replytoaddresses\",\"1208\":\"228#dev-dsf-bpe-mail-sendmailonerrorlogevent\",\"1209\":\"228#dev-dsf-bpe-mail-sendtestmailonstartup\",\"1210\":\"228#dev-dsf-bpe-mail-smime-p12keystore\",\"1211\":\"228#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file\",\"1212\":\"228#dev-dsf-bpe-mail-toaddresses\",\"1213\":\"228#dev-dsf-bpe-mail-toaddressescc\",\"1214\":\"228#dev-dsf-bpe-mail-trust-server-certificate-cas\",\"1215\":\"228#dev-dsf-bpe-mail-username\",\"1216\":\"228#dev-dsf-bpe-mail-usesmtps\",\"1217\":\"228#dev-dsf-bpe-process-excluded\",\"1218\":\"228#dev-dsf-bpe-process-fhir-server-retry-max\",\"1219\":\"228#dev-dsf-bpe-process-fhir-server-retry-sleep\",\"1220\":\"228#dev-dsf-bpe-process-plugin-directroy\",\"1221\":\"228#dev-dsf-bpe-process-retired\",\"1222\":\"228#dev-dsf-proxy-noproxy\",\"1223\":\"228#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1224\":\"228#dev-dsf-proxy-url\",\"1225\":\"228#dev-dsf-proxy-username\",\"1226\":\"229\",\"1227\":\"229#overview\",\"1228\":\"230\",\"1229\":\"230#overview\",\"1230\":\"230#matching-users\",\"1231\":\"230#thumbprint\",\"1232\":\"230#email\",\"1233\":\"230#token-role-and-token-group\",\"1234\":\"230#dsf-and-practitioner-roles\",\"1235\":\"230#dsf-role\",\"1236\":\"230#practitioner-role\",\"1237\":\"230#examples\",\"1238\":\"231\",\"1239\":\"231#dev-dsf-fhir-client-certificate\",\"1240\":\"231#dev-dsf-fhir-client-certificate-private-key\",\"1241\":\"231#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file\",\"1242\":\"231#dev-dsf-fhir-client-timeout-connect\",\"1243\":\"231#dev-dsf-fhir-client-timeout-read\",\"1244\":\"231#dev-dsf-fhir-client-trust-server-certificate-cas\",\"1245\":\"231#dev-dsf-fhir-client-verbose\",\"1246\":\"231#dev-dsf-fhir-db-liquibase-forceunlock\",\"1247\":\"231#dev-dsf-fhir-db-liquibase-lockwaittime\",\"1248\":\"231#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file\",\"1249\":\"231#dev-dsf-fhir-db-liquibase-username\",\"1250\":\"231#dev-dsf-fhir-db-url\",\"1251\":\"231#dev-dsf-fhir-db-user-group\",\"1252\":\"231#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file\",\"1253\":\"231#dev-dsf-fhir-db-user-permanent-delete-group\",\"1254\":\"231#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file\",\"1255\":\"231#dev-dsf-fhir-db-user-permanent-delete-username\",\"1256\":\"231#dev-dsf-fhir-db-user-username\",\"1257\":\"231#dev-dsf-fhir-server-base-url\",\"1258\":\"231#dev-dsf-fhir-server-init-bundle\",\"1259\":\"231#dev-dsf-fhir-server-organization-identifier-value\",\"1260\":\"231#dev-dsf-fhir-server-organization-thumbprint\",\"1261\":\"231#dev-dsf-fhir-server-page-count\",\"1262\":\"231#dev-dsf-fhir-server-roleconfig\",\"1263\":\"231#dev-dsf-fhir-server-static-resource-cache\",\"1264\":\"231#dev-dsf-proxy-noproxy\",\"1265\":\"231#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1266\":\"231#dev-dsf-proxy-url\",\"1267\":\"231#dev-dsf-proxy-username\",\"1268\":\"231#dev-dsf-server-api-host\",\"1269\":\"231#dev-dsf-server-api-port\",\"1270\":\"231#dev-dsf-server-auth-client-certificate-header\",\"1271\":\"231#dev-dsf-server-auth-oidc-authorization-code-flow\",\"1272\":\"231#dev-dsf-server-auth-oidc-back-channel-logout\",\"1273\":\"231#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"1274\":\"231#dev-dsf-server-auth-oidc-bearer-token\",\"1275\":\"231#dev-dsf-server-auth-oidc-client-id\",\"1276\":\"231#dev-dsf-server-auth-oidc-client-secret\",\"1277\":\"231#dev-dsf-server-auth-oidc-provider-client-certificate\",\"1278\":\"231#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"1279\":\"231#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"1280\":\"231#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"1281\":\"231#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"1282\":\"231#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"1283\":\"231#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"1284\":\"231#dev-dsf-server-auth-trust-client-certificate-cas\",\"1285\":\"231#dev-dsf-server-certificate\",\"1286\":\"231#dev-dsf-server-certificate-chain\",\"1287\":\"231#dev-dsf-server-certificate-key\",\"1288\":\"231#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"1289\":\"231#dev-dsf-server-context-path\",\"1290\":\"231#dev-dsf-server-status-host\",\"1291\":\"231#dev-dsf-server-status-port\",\"1292\":\"232\",\"1293\":\"232#overview\",\"1294\":\"232#authorization-code-flow\",\"1295\":\"232#bearer-token-authentication\",\"1296\":\"232#additional-odic-configuration-parameter\",\"1297\":\"232#example\",\"1298\":\"233\",\"1299\":\"233#overview\",\"1300\":\"234\",\"1301\":\"234#app-server-ip\",\"1302\":\"234#https-server-name-port\",\"1303\":\"234#proxy-pass-connection-timeout-http\",\"1304\":\"234#proxy-pass-connection-timeout-ws\",\"1305\":\"234#proxy-pass-timeout-http\",\"1306\":\"234#proxy-pass-timeout-ws\",\"1307\":\"234#ssl-ca-certificate-file\",\"1308\":\"234#ssl-ca-dn-request-file\",\"1309\":\"234#ssl-certificate-chain-file\",\"1310\":\"234#ssl-certificate-file\",\"1311\":\"234#ssl-certificate-key-file\",\"1312\":\"234#ssl-verify-client\",\"1313\":\"235\",\"1314\":\"235#overview\",\"1315\":\"236\",\"1316\":\"236#dev-dsf-server-api-host\",\"1317\":\"236#dev-dsf-server-api-port\",\"1318\":\"236#dev-dsf-server-auth-client-certificate-header\",\"1319\":\"236#dev-dsf-server-auth-oidc-authorization-code-flow\",\"1320\":\"236#dev-dsf-server-auth-oidc-back-channel-logout\",\"1321\":\"236#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"1322\":\"236#dev-dsf-server-auth-oidc-bearer-token\",\"1323\":\"236#dev-dsf-server-auth-oidc-client-id\",\"1324\":\"236#dev-dsf-server-auth-oidc-client-secret\",\"1325\":\"236#dev-dsf-server-auth-oidc-provider-client-certificate\",\"1326\":\"236#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"1327\":\"236#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"1328\":\"236#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"1329\":\"236#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"1330\":\"236#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"1331\":\"236#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"1332\":\"236#dev-dsf-server-auth-trust-client-certificate-cas\",\"1333\":\"236#dev-dsf-server-certificate\",\"1334\":\"236#dev-dsf-server-certificate-chain\",\"1335\":\"236#dev-dsf-server-certificate-key\",\"1336\":\"236#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"1337\":\"236#dev-dsf-server-context-path\",\"1338\":\"236#dev-dsf-server-status-host\",\"1339\":\"236#dev-dsf-server-status-port\",\"1340\":\"236#dev-dsf-bpe-db-liquibase-forceunlock\",\"1341\":\"236#dev-dsf-bpe-db-liquibase-lockwaittime\",\"1342\":\"236#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file\",\"1343\":\"236#dev-dsf-bpe-db-liquibase-username\",\"1344\":\"236#dev-dsf-bpe-db-url\",\"1345\":\"236#dev-dsf-bpe-db-user-camunda-group\",\"1346\":\"236#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file\",\"1347\":\"236#dev-dsf-bpe-db-user-camunda-username\",\"1348\":\"236#dev-dsf-bpe-db-user-group\",\"1349\":\"236#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file\",\"1350\":\"236#dev-dsf-bpe-db-user-username\",\"1351\":\"236#dev-dsf-bpe-debug-log-message-onactivityend\",\"1352\":\"236#dev-dsf-bpe-debug-log-message-onactivitystart\",\"1353\":\"236#dev-dsf-bpe-debug-log-message-variables\",\"1354\":\"236#dev-dsf-bpe-debug-log-message-variableslocal\",\"1355\":\"236#dev-dsf-bpe-fhir-client-certificate\",\"1356\":\"236#dev-dsf-bpe-fhir-client-certificate-private-key\",\"1357\":\"236#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"1358\":\"236#dev-dsf-bpe-fhir-client-local-timeout-connect\",\"1359\":\"236#dev-dsf-bpe-fhir-client-local-timeout-read\",\"1360\":\"236#dev-dsf-bpe-fhir-client-local-verbose\",\"1361\":\"236#dev-dsf-bpe-fhir-client-remote-timeout-connect\",\"1362\":\"236#dev-dsf-bpe-fhir-client-remote-timeout-read\",\"1363\":\"236#dev-dsf-bpe-fhir-client-remote-verbose\",\"1364\":\"236#dev-dsf-bpe-fhir-client-trust-server-certificate-cas\",\"1365\":\"236#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"1366\":\"236#dev-dsf-bpe-fhir-server-base-url\",\"1367\":\"236#dev-dsf-bpe-fhir-task-subscription-retry-max\",\"1368\":\"236#dev-dsf-bpe-fhir-task-subscription-retry-sleep\",\"1369\":\"236#dev-dsf-bpe-fhir-task-subscription-search-parameter\",\"1370\":\"236#dev-dsf-bpe-mail-client-certificate\",\"1371\":\"236#dev-dsf-bpe-mail-client-certificate-private-key\",\"1372\":\"236#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file\",\"1373\":\"236#dev-dsf-bpe-mail-fromaddress\",\"1374\":\"236#dev-dsf-bpe-mail-host\",\"1375\":\"236#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"1376\":\"236#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"1377\":\"236#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file\",\"1378\":\"236#dev-dsf-bpe-mail-port\",\"1379\":\"236#dev-dsf-bpe-mail-replytoaddresses\",\"1380\":\"236#dev-dsf-bpe-mail-sendmailonerrorlogevent\",\"1381\":\"236#dev-dsf-bpe-mail-sendtestmailonstartup\",\"1382\":\"236#dev-dsf-bpe-mail-smime-p12keystore\",\"1383\":\"236#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file\",\"1384\":\"236#dev-dsf-bpe-mail-toaddresses\",\"1385\":\"236#dev-dsf-bpe-mail-toaddressescc\",\"1386\":\"236#dev-dsf-bpe-mail-trust-server-certificate-cas\",\"1387\":\"236#dev-dsf-bpe-mail-username\",\"1388\":\"236#dev-dsf-bpe-mail-usesmtps\",\"1389\":\"236#dev-dsf-bpe-process-engine-corepoolsize\",\"1390\":\"236#dev-dsf-bpe-process-engine-maxpoolsize\",\"1391\":\"236#dev-dsf-bpe-process-engine-queuesize\",\"1392\":\"236#dev-dsf-bpe-process-excluded\",\"1393\":\"236#dev-dsf-bpe-process-fhir-server-retry-max\",\"1394\":\"236#dev-dsf-bpe-process-fhir-server-retry-sleep\",\"1395\":\"236#dev-dsf-bpe-process-plugin-directroy\",\"1396\":\"236#dev-dsf-bpe-process-retired\",\"1397\":\"236#dev-dsf-bpe-process-threads\",\"1398\":\"236#dev-dsf-proxy-noproxy\",\"1399\":\"236#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1400\":\"236#dev-dsf-proxy-url\",\"1401\":\"236#dev-dsf-proxy-username\",\"1402\":\"237\",\"1403\":\"237#overview\",\"1404\":\"238\",\"1405\":\"238#overview\",\"1406\":\"238#matching-users\",\"1407\":\"238#thumbprint\",\"1408\":\"238#email\",\"1409\":\"238#token-role-and-token-group\",\"1410\":\"238#dsf-and-practitioner-roles\",\"1411\":\"238#dsf-role\",\"1412\":\"238#practitioner-role\",\"1413\":\"238#examples\",\"1414\":\"239\",\"1415\":\"239#dev-dsf-fhir-client-certificate\",\"1416\":\"239#dev-dsf-fhir-client-certificate-private-key\",\"1417\":\"239#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file\",\"1418\":\"239#dev-dsf-fhir-client-timeout-connect\",\"1419\":\"239#dev-dsf-fhir-client-timeout-read\",\"1420\":\"239#dev-dsf-fhir-client-trust-server-certificate-cas\",\"1421\":\"239#dev-dsf-fhir-client-verbose\",\"1422\":\"239#dev-dsf-fhir-db-liquibase-forceunlock\",\"1423\":\"239#dev-dsf-fhir-db-liquibase-lockwaittime\",\"1424\":\"239#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file\",\"1425\":\"239#dev-dsf-fhir-db-liquibase-username\",\"1426\":\"239#dev-dsf-fhir-db-url\",\"1427\":\"239#dev-dsf-fhir-db-user-group\",\"1428\":\"239#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file\",\"1429\":\"239#dev-dsf-fhir-db-user-permanent-delete-group\",\"1430\":\"239#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file\",\"1431\":\"239#dev-dsf-fhir-db-user-permanent-delete-username\",\"1432\":\"239#dev-dsf-fhir-db-user-username\",\"1433\":\"239#dev-dsf-fhir-server-base-url\",\"1434\":\"239#dev-dsf-fhir-server-init-bundle\",\"1435\":\"239#dev-dsf-fhir-server-organization-identifier-value\",\"1436\":\"239#dev-dsf-fhir-server-organization-thumbprint\",\"1437\":\"239#dev-dsf-fhir-server-page-count\",\"1438\":\"239#dev-dsf-fhir-server-roleconfig\",\"1439\":\"239#dev-dsf-fhir-server-static-resource-cache\",\"1440\":\"239#dev-dsf-proxy-noproxy\",\"1441\":\"239#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1442\":\"239#dev-dsf-proxy-url\",\"1443\":\"239#dev-dsf-proxy-username\",\"1444\":\"239#dev-dsf-server-api-host\",\"1445\":\"239#dev-dsf-server-api-port\",\"1446\":\"239#dev-dsf-server-auth-client-certificate-header\",\"1447\":\"239#dev-dsf-server-auth-oidc-authorization-code-flow\",\"1448\":\"239#dev-dsf-server-auth-oidc-back-channel-logout\",\"1449\":\"239#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"1450\":\"239#dev-dsf-server-auth-oidc-bearer-token\",\"1451\":\"239#dev-dsf-server-auth-oidc-client-id\",\"1452\":\"239#dev-dsf-server-auth-oidc-client-secret\",\"1453\":\"239#dev-dsf-server-auth-oidc-provider-client-certificate\",\"1454\":\"239#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"1455\":\"239#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"1456\":\"239#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"1457\":\"239#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"1458\":\"239#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"1459\":\"239#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"1460\":\"239#dev-dsf-server-auth-trust-client-certificate-cas\",\"1461\":\"239#dev-dsf-server-certificate\",\"1462\":\"239#dev-dsf-server-certificate-chain\",\"1463\":\"239#dev-dsf-server-certificate-key\",\"1464\":\"239#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"1465\":\"239#dev-dsf-server-context-path\",\"1466\":\"239#dev-dsf-server-status-host\",\"1467\":\"239#dev-dsf-server-status-port\",\"1468\":\"240\",\"1469\":\"240#overview\",\"1470\":\"240#authorization-code-flow\",\"1471\":\"240#bearer-token-authentication\",\"1472\":\"240#additional-odic-configuration-parameter\",\"1473\":\"240#example\",\"1474\":\"241\",\"1475\":\"241#overview\",\"1476\":\"242\",\"1477\":\"242#app-server-ip\",\"1478\":\"242#https-server-name-port\",\"1479\":\"242#proxy-pass-connection-timeout-http\",\"1480\":\"242#proxy-pass-connection-timeout-ws\",\"1481\":\"242#proxy-pass-timeout-http\",\"1482\":\"242#proxy-pass-timeout-ws\",\"1483\":\"242#server-context-path\",\"1484\":\"242#ssl-ca-certificate-file\",\"1485\":\"242#ssl-ca-dn-request-file\",\"1486\":\"242#ssl-certificate-chain-file\",\"1487\":\"242#ssl-certificate-file\",\"1488\":\"242#ssl-certificate-key-file\",\"1489\":\"242#ssl-verify-client\",\"1490\":\"243\",\"1491\":\"243#overview\",\"1492\":\"244\",\"1493\":\"244#dev-dsf-server-api-host\",\"1494\":\"244#dev-dsf-server-api-port\",\"1495\":\"244#dev-dsf-server-auth-client-certificate-header\",\"1496\":\"244#dev-dsf-server-auth-oidc-authorization-code-flow\",\"1497\":\"244#dev-dsf-server-auth-oidc-back-channel-logout\",\"1498\":\"244#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"1499\":\"244#dev-dsf-server-auth-oidc-bearer-token\",\"1500\":\"244#dev-dsf-server-auth-oidc-client-id\",\"1501\":\"244#dev-dsf-server-auth-oidc-client-secret\",\"1502\":\"244#dev-dsf-server-auth-oidc-provider-client-certificate\",\"1503\":\"244#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"1504\":\"244#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"1505\":\"244#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"1506\":\"244#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"1507\":\"244#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"1508\":\"244#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"1509\":\"244#dev-dsf-server-auth-trust-client-certificate-cas\",\"1510\":\"244#dev-dsf-server-certificate\",\"1511\":\"244#dev-dsf-server-certificate-chain\",\"1512\":\"244#dev-dsf-server-certificate-key\",\"1513\":\"244#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"1514\":\"244#dev-dsf-server-context-path\",\"1515\":\"244#dev-dsf-server-status-host\",\"1516\":\"244#dev-dsf-server-status-port\",\"1517\":\"244#dev-dsf-bpe-db-liquibase-forceunlock\",\"1518\":\"244#dev-dsf-bpe-db-liquibase-lockwaittime\",\"1519\":\"244#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file\",\"1520\":\"244#dev-dsf-bpe-db-liquibase-username\",\"1521\":\"244#dev-dsf-bpe-db-url\",\"1522\":\"244#dev-dsf-bpe-db-user-camunda-group\",\"1523\":\"244#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file\",\"1524\":\"244#dev-dsf-bpe-db-user-camunda-username\",\"1525\":\"244#dev-dsf-bpe-db-user-group\",\"1526\":\"244#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file\",\"1527\":\"244#dev-dsf-bpe-db-user-username\",\"1528\":\"244#dev-dsf-bpe-debug-log-message-onactivityend\",\"1529\":\"244#dev-dsf-bpe-debug-log-message-onactivitystart\",\"1530\":\"244#dev-dsf-bpe-debug-log-message-variables\",\"1531\":\"244#dev-dsf-bpe-debug-log-message-variableslocal\",\"1532\":\"244#dev-dsf-bpe-fhir-client-certificate\",\"1533\":\"244#dev-dsf-bpe-fhir-client-certificate-private-key\",\"1534\":\"244#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"1535\":\"244#dev-dsf-bpe-fhir-client-local-timeout-connect\",\"1536\":\"244#dev-dsf-bpe-fhir-client-local-timeout-read\",\"1537\":\"244#dev-dsf-bpe-fhir-client-local-verbose\",\"1538\":\"244#dev-dsf-bpe-fhir-client-remote-timeout-connect\",\"1539\":\"244#dev-dsf-bpe-fhir-client-remote-timeout-read\",\"1540\":\"244#dev-dsf-bpe-fhir-client-remote-verbose\",\"1541\":\"244#dev-dsf-bpe-fhir-client-trust-server-certificate-cas\",\"1542\":\"244#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"1543\":\"244#dev-dsf-bpe-fhir-server-base-url\",\"1544\":\"244#dev-dsf-bpe-fhir-task-subscription-retry-max\",\"1545\":\"244#dev-dsf-bpe-fhir-task-subscription-retry-sleep\",\"1546\":\"244#dev-dsf-bpe-fhir-task-subscription-search-parameter\",\"1547\":\"244#dev-dsf-bpe-mail-client-certificate\",\"1548\":\"244#dev-dsf-bpe-mail-client-certificate-private-key\",\"1549\":\"244#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file\",\"1550\":\"244#dev-dsf-bpe-mail-fromaddress\",\"1551\":\"244#dev-dsf-bpe-mail-host\",\"1552\":\"244#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"1553\":\"244#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"1554\":\"244#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file\",\"1555\":\"244#dev-dsf-bpe-mail-port\",\"1556\":\"244#dev-dsf-bpe-mail-replytoaddresses\",\"1557\":\"244#dev-dsf-bpe-mail-sendmailonerrorlogevent\",\"1558\":\"244#dev-dsf-bpe-mail-sendtestmailonstartup\",\"1559\":\"244#dev-dsf-bpe-mail-smime-p12keystore\",\"1560\":\"244#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file\",\"1561\":\"244#dev-dsf-bpe-mail-toaddresses\",\"1562\":\"244#dev-dsf-bpe-mail-toaddressescc\",\"1563\":\"244#dev-dsf-bpe-mail-trust-server-certificate-cas\",\"1564\":\"244#dev-dsf-bpe-mail-username\",\"1565\":\"244#dev-dsf-bpe-mail-usesmtps\",\"1566\":\"244#dev-dsf-bpe-process-engine-corepoolsize\",\"1567\":\"244#dev-dsf-bpe-process-engine-maxpoolsize\",\"1568\":\"244#dev-dsf-bpe-process-engine-queuesize\",\"1569\":\"244#dev-dsf-bpe-process-excluded\",\"1570\":\"244#dev-dsf-bpe-process-fhir-server-retry-max\",\"1571\":\"244#dev-dsf-bpe-process-fhir-server-retry-sleep\",\"1572\":\"244#dev-dsf-bpe-process-plugin-directroy\",\"1573\":\"244#dev-dsf-bpe-process-retired\",\"1574\":\"244#dev-dsf-bpe-process-threads\",\"1575\":\"244#dev-dsf-proxy-noproxy\",\"1576\":\"244#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1577\":\"244#dev-dsf-proxy-url\",\"1578\":\"244#dev-dsf-proxy-username\",\"1579\":\"245\",\"1580\":\"245#overview\",\"1581\":\"246\",\"1582\":\"246#overview\",\"1583\":\"246#matching-users\",\"1584\":\"246#thumbprint\",\"1585\":\"246#email\",\"1586\":\"246#token-role-and-token-group\",\"1587\":\"246#dsf-and-practitioner-roles\",\"1588\":\"246#dsf-role\",\"1589\":\"246#practitioner-role\",\"1590\":\"246#examples\",\"1591\":\"247\",\"1592\":\"247#dev-dsf-fhir-client-certificate\",\"1593\":\"247#dev-dsf-fhir-client-certificate-private-key\",\"1594\":\"247#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file\",\"1595\":\"247#dev-dsf-fhir-client-timeout-connect\",\"1596\":\"247#dev-dsf-fhir-client-timeout-read\",\"1597\":\"247#dev-dsf-fhir-client-trust-server-certificate-cas\",\"1598\":\"247#dev-dsf-fhir-client-verbose\",\"1599\":\"247#dev-dsf-fhir-db-liquibase-forceunlock\",\"1600\":\"247#dev-dsf-fhir-db-liquibase-lockwaittime\",\"1601\":\"247#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file\",\"1602\":\"247#dev-dsf-fhir-db-liquibase-username\",\"1603\":\"247#dev-dsf-fhir-db-url\",\"1604\":\"247#dev-dsf-fhir-db-user-group\",\"1605\":\"247#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file\",\"1606\":\"247#dev-dsf-fhir-db-user-permanent-delete-group\",\"1607\":\"247#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file\",\"1608\":\"247#dev-dsf-fhir-db-user-permanent-delete-username\",\"1609\":\"247#dev-dsf-fhir-db-user-username\",\"1610\":\"247#dev-dsf-fhir-server-base-url\",\"1611\":\"247#dev-dsf-fhir-server-init-bundle\",\"1612\":\"247#dev-dsf-fhir-server-organization-identifier-value\",\"1613\":\"247#dev-dsf-fhir-server-organization-thumbprint\",\"1614\":\"247#dev-dsf-fhir-server-page-count\",\"1615\":\"247#dev-dsf-fhir-server-roleconfig\",\"1616\":\"247#dev-dsf-fhir-server-static-resource-cache\",\"1617\":\"247#dev-dsf-proxy-noproxy\",\"1618\":\"247#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1619\":\"247#dev-dsf-proxy-url\",\"1620\":\"247#dev-dsf-proxy-username\",\"1621\":\"247#dev-dsf-server-api-host\",\"1622\":\"247#dev-dsf-server-api-port\",\"1623\":\"247#dev-dsf-server-auth-client-certificate-header\",\"1624\":\"247#dev-dsf-server-auth-oidc-authorization-code-flow\",\"1625\":\"247#dev-dsf-server-auth-oidc-back-channel-logout\",\"1626\":\"247#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"1627\":\"247#dev-dsf-server-auth-oidc-bearer-token\",\"1628\":\"247#dev-dsf-server-auth-oidc-client-id\",\"1629\":\"247#dev-dsf-server-auth-oidc-client-secret\",\"1630\":\"247#dev-dsf-server-auth-oidc-provider-client-certificate\",\"1631\":\"247#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"1632\":\"247#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"1633\":\"247#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"1634\":\"247#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"1635\":\"247#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"1636\":\"247#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"1637\":\"247#dev-dsf-server-auth-trust-client-certificate-cas\",\"1638\":\"247#dev-dsf-server-certificate\",\"1639\":\"247#dev-dsf-server-certificate-chain\",\"1640\":\"247#dev-dsf-server-certificate-key\",\"1641\":\"247#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"1642\":\"247#dev-dsf-server-context-path\",\"1643\":\"247#dev-dsf-server-status-host\",\"1644\":\"247#dev-dsf-server-status-port\",\"1645\":\"248\",\"1646\":\"248#overview\",\"1647\":\"248#authorization-code-flow\",\"1648\":\"248#bearer-token-authentication\",\"1649\":\"248#additional-odic-configuration-parameter\",\"1650\":\"248#example\",\"1651\":\"249\",\"1652\":\"249#overview\",\"1653\":\"250\",\"1654\":\"250#app-server-ip\",\"1655\":\"250#https-server-name-port\",\"1656\":\"250#proxy-pass-connection-timeout-http\",\"1657\":\"250#proxy-pass-connection-timeout-ws\",\"1658\":\"250#proxy-pass-timeout-http\",\"1659\":\"250#proxy-pass-timeout-ws\",\"1660\":\"250#server-context-path\",\"1661\":\"250#ssl-ca-certificate-file\",\"1662\":\"250#ssl-ca-dn-request-file\",\"1663\":\"250#ssl-certificate-chain-file\",\"1664\":\"250#ssl-certificate-file\",\"1665\":\"250#ssl-certificate-key-file\",\"1666\":\"250#ssl-verify-client\",\"1667\":\"251\",\"1668\":\"251#overview\",\"1669\":\"252\",\"1670\":\"252#dev-dsf-server-api-host\",\"1671\":\"252#dev-dsf-server-api-port\",\"1672\":\"252#dev-dsf-server-auth-client-certificate-header\",\"1673\":\"252#dev-dsf-server-auth-oidc-authorization-code-flow\",\"1674\":\"252#dev-dsf-server-auth-oidc-back-channel-logout\",\"1675\":\"252#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"1676\":\"252#dev-dsf-server-auth-oidc-bearer-token\",\"1677\":\"252#dev-dsf-server-auth-oidc-client-id\",\"1678\":\"252#dev-dsf-server-auth-oidc-client-secret\",\"1679\":\"252#dev-dsf-server-auth-oidc-provider-client-certificate\",\"1680\":\"252#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"1681\":\"252#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"1682\":\"252#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"1683\":\"252#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"1684\":\"252#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"1685\":\"252#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"1686\":\"252#dev-dsf-server-auth-trust-client-certificate-cas\",\"1687\":\"252#dev-dsf-server-certificate\",\"1688\":\"252#dev-dsf-server-certificate-chain\",\"1689\":\"252#dev-dsf-server-certificate-key\",\"1690\":\"252#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"1691\":\"252#dev-dsf-server-context-path\",\"1692\":\"252#dev-dsf-server-status-host\",\"1693\":\"252#dev-dsf-server-status-port\",\"1694\":\"252#dev-dsf-bpe-db-liquibase-forceunlock\",\"1695\":\"252#dev-dsf-bpe-db-liquibase-lockwaittime\",\"1696\":\"252#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file\",\"1697\":\"252#dev-dsf-bpe-db-liquibase-username\",\"1698\":\"252#dev-dsf-bpe-db-url\",\"1699\":\"252#dev-dsf-bpe-db-user-camunda-group\",\"1700\":\"252#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file\",\"1701\":\"252#dev-dsf-bpe-db-user-camunda-username\",\"1702\":\"252#dev-dsf-bpe-db-user-group\",\"1703\":\"252#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file\",\"1704\":\"252#dev-dsf-bpe-db-user-username\",\"1705\":\"252#dev-dsf-bpe-debug-log-message-onactivityend\",\"1706\":\"252#dev-dsf-bpe-debug-log-message-onactivitystart\",\"1707\":\"252#dev-dsf-bpe-debug-log-message-variables\",\"1708\":\"252#dev-dsf-bpe-debug-log-message-variableslocal\",\"1709\":\"252#dev-dsf-bpe-fhir-client-certificate\",\"1710\":\"252#dev-dsf-bpe-fhir-client-certificate-private-key\",\"1711\":\"252#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"1712\":\"252#dev-dsf-bpe-fhir-client-local-timeout-connect\",\"1713\":\"252#dev-dsf-bpe-fhir-client-local-timeout-read\",\"1714\":\"252#dev-dsf-bpe-fhir-client-local-verbose\",\"1715\":\"252#dev-dsf-bpe-fhir-client-remote-timeout-connect\",\"1716\":\"252#dev-dsf-bpe-fhir-client-remote-timeout-read\",\"1717\":\"252#dev-dsf-bpe-fhir-client-remote-verbose\",\"1718\":\"252#dev-dsf-bpe-fhir-client-trust-server-certificate-cas\",\"1719\":\"252#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"1720\":\"252#dev-dsf-bpe-fhir-server-base-url\",\"1721\":\"252#dev-dsf-bpe-fhir-task-subscription-retry-max\",\"1722\":\"252#dev-dsf-bpe-fhir-task-subscription-retry-sleep\",\"1723\":\"252#dev-dsf-bpe-fhir-task-subscription-search-parameter\",\"1724\":\"252#dev-dsf-bpe-mail-client-certificate\",\"1725\":\"252#dev-dsf-bpe-mail-client-certificate-private-key\",\"1726\":\"252#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file\",\"1727\":\"252#dev-dsf-bpe-mail-fromaddress\",\"1728\":\"252#dev-dsf-bpe-mail-host\",\"1729\":\"252#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"1730\":\"252#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"1731\":\"252#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file\",\"1732\":\"252#dev-dsf-bpe-mail-port\",\"1733\":\"252#dev-dsf-bpe-mail-replytoaddresses\",\"1734\":\"252#dev-dsf-bpe-mail-sendmailonerrorlogevent\",\"1735\":\"252#dev-dsf-bpe-mail-sendtestmailonstartup\",\"1736\":\"252#dev-dsf-bpe-mail-smime-p12keystore\",\"1737\":\"252#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file\",\"1738\":\"252#dev-dsf-bpe-mail-toaddresses\",\"1739\":\"252#dev-dsf-bpe-mail-toaddressescc\",\"1740\":\"252#dev-dsf-bpe-mail-trust-server-certificate-cas\",\"1741\":\"252#dev-dsf-bpe-mail-username\",\"1742\":\"252#dev-dsf-bpe-mail-usesmtps\",\"1743\":\"252#dev-dsf-bpe-process-engine-corepoolsize\",\"1744\":\"252#dev-dsf-bpe-process-engine-maxpoolsize\",\"1745\":\"252#dev-dsf-bpe-process-engine-queuesize\",\"1746\":\"252#dev-dsf-bpe-process-excluded\",\"1747\":\"252#dev-dsf-bpe-process-fhir-server-retry-max\",\"1748\":\"252#dev-dsf-bpe-process-fhir-server-retry-sleep\",\"1749\":\"252#dev-dsf-bpe-process-plugin-directroy\",\"1750\":\"252#dev-dsf-bpe-process-retired\",\"1751\":\"252#dev-dsf-bpe-process-threads\",\"1752\":\"252#dev-dsf-proxy-noproxy\",\"1753\":\"252#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1754\":\"252#dev-dsf-proxy-url\",\"1755\":\"252#dev-dsf-proxy-username\",\"1756\":\"253\",\"1757\":\"253#overview\",\"1758\":\"254\",\"1759\":\"254#overview\",\"1760\":\"254#matching-users\",\"1761\":\"254#thumbprint\",\"1762\":\"254#email\",\"1763\":\"254#token-role-and-token-group\",\"1764\":\"254#dsf-and-practitioner-roles\",\"1765\":\"254#dsf-role\",\"1766\":\"254#practitioner-role\",\"1767\":\"254#examples\",\"1768\":\"255\",\"1769\":\"255#dev-dsf-fhir-client-certificate\",\"1770\":\"255#dev-dsf-fhir-client-certificate-private-key\",\"1771\":\"255#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file\",\"1772\":\"255#dev-dsf-fhir-client-timeout-connect\",\"1773\":\"255#dev-dsf-fhir-client-timeout-read\",\"1774\":\"255#dev-dsf-fhir-client-trust-server-certificate-cas\",\"1775\":\"255#dev-dsf-fhir-client-verbose\",\"1776\":\"255#dev-dsf-fhir-db-liquibase-forceunlock\",\"1777\":\"255#dev-dsf-fhir-db-liquibase-lockwaittime\",\"1778\":\"255#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file\",\"1779\":\"255#dev-dsf-fhir-db-liquibase-username\",\"1780\":\"255#dev-dsf-fhir-db-url\",\"1781\":\"255#dev-dsf-fhir-db-user-group\",\"1782\":\"255#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file\",\"1783\":\"255#dev-dsf-fhir-db-user-permanent-delete-group\",\"1784\":\"255#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file\",\"1785\":\"255#dev-dsf-fhir-db-user-permanent-delete-username\",\"1786\":\"255#dev-dsf-fhir-db-user-username\",\"1787\":\"255#dev-dsf-fhir-server-base-url\",\"1788\":\"255#dev-dsf-fhir-server-init-bundle\",\"1789\":\"255#dev-dsf-fhir-server-organization-identifier-value\",\"1790\":\"255#dev-dsf-fhir-server-organization-thumbprint\",\"1791\":\"255#dev-dsf-fhir-server-page-count\",\"1792\":\"255#dev-dsf-fhir-server-roleconfig\",\"1793\":\"255#dev-dsf-fhir-server-static-resource-cache\",\"1794\":\"255#dev-dsf-proxy-noproxy\",\"1795\":\"255#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1796\":\"255#dev-dsf-proxy-url\",\"1797\":\"255#dev-dsf-proxy-username\",\"1798\":\"255#dev-dsf-server-api-host\",\"1799\":\"255#dev-dsf-server-api-port\",\"1800\":\"255#dev-dsf-server-auth-client-certificate-header\",\"1801\":\"255#dev-dsf-server-auth-oidc-authorization-code-flow\",\"1802\":\"255#dev-dsf-server-auth-oidc-back-channel-logout\",\"1803\":\"255#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"1804\":\"255#dev-dsf-server-auth-oidc-bearer-token\",\"1805\":\"255#dev-dsf-server-auth-oidc-client-id\",\"1806\":\"255#dev-dsf-server-auth-oidc-client-secret\",\"1807\":\"255#dev-dsf-server-auth-oidc-provider-client-certificate\",\"1808\":\"255#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"1809\":\"255#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"1810\":\"255#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"1811\":\"255#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"1812\":\"255#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"1813\":\"255#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"1814\":\"255#dev-dsf-server-auth-trust-client-certificate-cas\",\"1815\":\"255#dev-dsf-server-certificate\",\"1816\":\"255#dev-dsf-server-certificate-chain\",\"1817\":\"255#dev-dsf-server-certificate-key\",\"1818\":\"255#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"1819\":\"255#dev-dsf-server-context-path\",\"1820\":\"255#dev-dsf-server-status-host\",\"1821\":\"255#dev-dsf-server-status-port\",\"1822\":\"256\",\"1823\":\"256#overview\",\"1824\":\"256#authorization-code-flow\",\"1825\":\"256#bearer-token-authentication\",\"1826\":\"256#additional-odic-configuration-parameter\",\"1827\":\"256#example\",\"1828\":\"257\",\"1829\":\"257#overview\",\"1830\":\"258\",\"1831\":\"258#app-server-ip\",\"1832\":\"258#https-server-name-port\",\"1833\":\"258#proxy-pass-connection-timeout-http\",\"1834\":\"258#proxy-pass-connection-timeout-ws\",\"1835\":\"258#proxy-pass-timeout-http\",\"1836\":\"258#proxy-pass-timeout-ws\",\"1837\":\"258#server-context-path\",\"1838\":\"258#ssl-ca-certificate-file\",\"1839\":\"258#ssl-ca-dn-request-file\",\"1840\":\"258#ssl-certificate-chain-file\",\"1841\":\"258#ssl-certificate-file\",\"1842\":\"258#ssl-certificate-key-file\",\"1843\":\"258#ssl-verify-client\",\"1844\":\"259\",\"1845\":\"259#overview\",\"1846\":\"260\",\"1847\":\"260#dev-dsf-server-api-host\",\"1848\":\"260#dev-dsf-server-api-port\",\"1849\":\"260#dev-dsf-server-auth-client-certificate-header\",\"1850\":\"260#dev-dsf-server-auth-oidc-authorization-code-flow\",\"1851\":\"260#dev-dsf-server-auth-oidc-back-channel-logout\",\"1852\":\"260#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"1853\":\"260#dev-dsf-server-auth-oidc-bearer-token\",\"1854\":\"260#dev-dsf-server-auth-oidc-client-id\",\"1855\":\"260#dev-dsf-server-auth-oidc-client-secret\",\"1856\":\"260#dev-dsf-server-auth-oidc-provider-client-certificate\",\"1857\":\"260#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"1858\":\"260#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"1859\":\"260#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"1860\":\"260#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"1861\":\"260#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"1862\":\"260#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"1863\":\"260#dev-dsf-server-auth-trust-client-certificate-cas\",\"1864\":\"260#dev-dsf-server-certificate\",\"1865\":\"260#dev-dsf-server-certificate-chain\",\"1866\":\"260#dev-dsf-server-certificate-key\",\"1867\":\"260#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"1868\":\"260#dev-dsf-server-context-path\",\"1869\":\"260#dev-dsf-server-status-host\",\"1870\":\"260#dev-dsf-server-status-port\",\"1871\":\"260#dev-dsf-bpe-db-liquibase-forceunlock\",\"1872\":\"260#dev-dsf-bpe-db-liquibase-lockwaittime\",\"1873\":\"260#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file\",\"1874\":\"260#dev-dsf-bpe-db-liquibase-username\",\"1875\":\"260#dev-dsf-bpe-db-url\",\"1876\":\"260#dev-dsf-bpe-db-user-camunda-group\",\"1877\":\"260#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file\",\"1878\":\"260#dev-dsf-bpe-db-user-camunda-username\",\"1879\":\"260#dev-dsf-bpe-db-user-group\",\"1880\":\"260#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file\",\"1881\":\"260#dev-dsf-bpe-db-user-username\",\"1882\":\"260#dev-dsf-bpe-debug-log-message-onactivityend\",\"1883\":\"260#dev-dsf-bpe-debug-log-message-onactivitystart\",\"1884\":\"260#dev-dsf-bpe-debug-log-message-variables\",\"1885\":\"260#dev-dsf-bpe-debug-log-message-variableslocal\",\"1886\":\"260#dev-dsf-bpe-fhir-client-certificate\",\"1887\":\"260#dev-dsf-bpe-fhir-client-certificate-private-key\",\"1888\":\"260#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"1889\":\"260#dev-dsf-bpe-fhir-client-local-timeout-connect\",\"1890\":\"260#dev-dsf-bpe-fhir-client-local-timeout-read\",\"1891\":\"260#dev-dsf-bpe-fhir-client-local-verbose\",\"1892\":\"260#dev-dsf-bpe-fhir-client-remote-timeout-connect\",\"1893\":\"260#dev-dsf-bpe-fhir-client-remote-timeout-read\",\"1894\":\"260#dev-dsf-bpe-fhir-client-remote-verbose\",\"1895\":\"260#dev-dsf-bpe-fhir-client-trust-server-certificate-cas\",\"1896\":\"260#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"1897\":\"260#dev-dsf-bpe-fhir-server-base-url\",\"1898\":\"260#dev-dsf-bpe-fhir-task-subscription-retry-max\",\"1899\":\"260#dev-dsf-bpe-fhir-task-subscription-retry-sleep\",\"1900\":\"260#dev-dsf-bpe-fhir-task-subscription-search-parameter\",\"1901\":\"260#dev-dsf-bpe-mail-client-certificate\",\"1902\":\"260#dev-dsf-bpe-mail-client-certificate-private-key\",\"1903\":\"260#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file\",\"1904\":\"260#dev-dsf-bpe-mail-fromaddress\",\"1905\":\"260#dev-dsf-bpe-mail-host\",\"1906\":\"260#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"1907\":\"260#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"1908\":\"260#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file\",\"1909\":\"260#dev-dsf-bpe-mail-port\",\"1910\":\"260#dev-dsf-bpe-mail-replytoaddresses\",\"1911\":\"260#dev-dsf-bpe-mail-sendmailonerrorlogevent\",\"1912\":\"260#dev-dsf-bpe-mail-sendtestmailonstartup\",\"1913\":\"260#dev-dsf-bpe-mail-smime-p12keystore\",\"1914\":\"260#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file\",\"1915\":\"260#dev-dsf-bpe-mail-toaddresses\",\"1916\":\"260#dev-dsf-bpe-mail-toaddressescc\",\"1917\":\"260#dev-dsf-bpe-mail-trust-server-certificate-cas\",\"1918\":\"260#dev-dsf-bpe-mail-username\",\"1919\":\"260#dev-dsf-bpe-mail-usesmtps\",\"1920\":\"260#dev-dsf-bpe-process-engine-corepoolsize\",\"1921\":\"260#dev-dsf-bpe-process-engine-maxpoolsize\",\"1922\":\"260#dev-dsf-bpe-process-engine-queuesize\",\"1923\":\"260#dev-dsf-bpe-process-excluded\",\"1924\":\"260#dev-dsf-bpe-process-fhir-server-retry-max\",\"1925\":\"260#dev-dsf-bpe-process-fhir-server-retry-sleep\",\"1926\":\"260#dev-dsf-bpe-process-plugin-directroy\",\"1927\":\"260#dev-dsf-bpe-process-retired\",\"1928\":\"260#dev-dsf-bpe-process-threads\",\"1929\":\"260#dev-dsf-proxy-noproxy\",\"1930\":\"260#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1931\":\"260#dev-dsf-proxy-url\",\"1932\":\"260#dev-dsf-proxy-username\",\"1933\":\"261\",\"1934\":\"261#overview\",\"1935\":\"262\",\"1936\":\"262#overview\",\"1937\":\"262#matching-users\",\"1938\":\"262#thumbprint\",\"1939\":\"262#email\",\"1940\":\"262#token-role-and-token-group\",\"1941\":\"262#dsf-and-practitioner-roles\",\"1942\":\"262#dsf-role\",\"1943\":\"262#practitioner-role\",\"1944\":\"262#examples\",\"1945\":\"263\",\"1946\":\"263#dev-dsf-fhir-client-certificate\",\"1947\":\"263#dev-dsf-fhir-client-certificate-private-key\",\"1948\":\"263#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file\",\"1949\":\"263#dev-dsf-fhir-client-timeout-connect\",\"1950\":\"263#dev-dsf-fhir-client-timeout-read\",\"1951\":\"263#dev-dsf-fhir-client-trust-server-certificate-cas\",\"1952\":\"263#dev-dsf-fhir-client-verbose\",\"1953\":\"263#dev-dsf-fhir-db-liquibase-forceunlock\",\"1954\":\"263#dev-dsf-fhir-db-liquibase-lockwaittime\",\"1955\":\"263#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file\",\"1956\":\"263#dev-dsf-fhir-db-liquibase-username\",\"1957\":\"263#dev-dsf-fhir-db-url\",\"1958\":\"263#dev-dsf-fhir-db-user-group\",\"1959\":\"263#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file\",\"1960\":\"263#dev-dsf-fhir-db-user-permanent-delete-group\",\"1961\":\"263#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file\",\"1962\":\"263#dev-dsf-fhir-db-user-permanent-delete-username\",\"1963\":\"263#dev-dsf-fhir-db-user-username\",\"1964\":\"263#dev-dsf-fhir-server-base-url\",\"1965\":\"263#dev-dsf-fhir-server-init-bundle\",\"1966\":\"263#dev-dsf-fhir-server-organization-identifier-value\",\"1967\":\"263#dev-dsf-fhir-server-organization-thumbprint\",\"1968\":\"263#dev-dsf-fhir-server-page-count\",\"1969\":\"263#dev-dsf-fhir-server-roleconfig\",\"1970\":\"263#dev-dsf-fhir-server-static-resource-cache\",\"1971\":\"263#dev-dsf-proxy-noproxy\",\"1972\":\"263#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"1973\":\"263#dev-dsf-proxy-url\",\"1974\":\"263#dev-dsf-proxy-username\",\"1975\":\"263#dev-dsf-server-api-host\",\"1976\":\"263#dev-dsf-server-api-port\",\"1977\":\"263#dev-dsf-server-auth-client-certificate-header\",\"1978\":\"263#dev-dsf-server-auth-oidc-authorization-code-flow\",\"1979\":\"263#dev-dsf-server-auth-oidc-back-channel-logout\",\"1980\":\"263#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"1981\":\"263#dev-dsf-server-auth-oidc-bearer-token\",\"1982\":\"263#dev-dsf-server-auth-oidc-client-id\",\"1983\":\"263#dev-dsf-server-auth-oidc-client-secret\",\"1984\":\"263#dev-dsf-server-auth-oidc-provider-client-certificate\",\"1985\":\"263#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"1986\":\"263#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"1987\":\"263#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"1988\":\"263#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"1989\":\"263#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"1990\":\"263#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"1991\":\"263#dev-dsf-server-auth-trust-client-certificate-cas\",\"1992\":\"263#dev-dsf-server-certificate\",\"1993\":\"263#dev-dsf-server-certificate-chain\",\"1994\":\"263#dev-dsf-server-certificate-key\",\"1995\":\"263#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"1996\":\"263#dev-dsf-server-context-path\",\"1997\":\"263#dev-dsf-server-status-host\",\"1998\":\"263#dev-dsf-server-status-port\",\"1999\":\"264\",\"2000\":\"264#overview\",\"2001\":\"264#authorization-code-flow\",\"2002\":\"264#bearer-token-authentication\",\"2003\":\"264#additional-odic-configuration-parameter\",\"2004\":\"264#example\",\"2005\":\"265\",\"2006\":\"265#overview\",\"2007\":\"266\",\"2008\":\"266#app-server-ip\",\"2009\":\"266#https-server-name-port\",\"2010\":\"266#proxy-pass-connection-timeout-http\",\"2011\":\"266#proxy-pass-connection-timeout-ws\",\"2012\":\"266#proxy-pass-timeout-http\",\"2013\":\"266#proxy-pass-timeout-ws\",\"2014\":\"266#server-context-path\",\"2015\":\"266#ssl-ca-certificate-file\",\"2016\":\"266#ssl-ca-dn-request-file\",\"2017\":\"266#ssl-certificate-chain-file\",\"2018\":\"266#ssl-certificate-file\",\"2019\":\"266#ssl-certificate-key-file\",\"2020\":\"266#ssl-verify-client\",\"2021\":\"267\",\"2022\":\"267#overview\",\"2023\":\"268\",\"2024\":\"268#dev-dsf-server-api-host\",\"2025\":\"268#dev-dsf-server-api-port\",\"2026\":\"268#dev-dsf-server-auth-client-certificate-header\",\"2027\":\"268#dev-dsf-server-auth-oidc-authorization-code-flow\",\"2028\":\"268#dev-dsf-server-auth-oidc-back-channel-logout\",\"2029\":\"268#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"2030\":\"268#dev-dsf-server-auth-oidc-bearer-token\",\"2031\":\"268#dev-dsf-server-auth-oidc-client-id\",\"2032\":\"268#dev-dsf-server-auth-oidc-client-secret\",\"2033\":\"268#dev-dsf-server-auth-oidc-provider-client-certificate\",\"2034\":\"268#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"2035\":\"268#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"2036\":\"268#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"2037\":\"268#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"2038\":\"268#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"2039\":\"268#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"2040\":\"268#dev-dsf-server-auth-trust-client-certificate-cas\",\"2041\":\"268#dev-dsf-server-certificate\",\"2042\":\"268#dev-dsf-server-certificate-chain\",\"2043\":\"268#dev-dsf-server-certificate-key\",\"2044\":\"268#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"2045\":\"268#dev-dsf-server-context-path\",\"2046\":\"268#dev-dsf-server-status-host\",\"2047\":\"268#dev-dsf-server-status-port\",\"2048\":\"268#dev-dsf-bpe-db-liquibase-forceunlock\",\"2049\":\"268#dev-dsf-bpe-db-liquibase-lockwaittime\",\"2050\":\"268#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file\",\"2051\":\"268#dev-dsf-bpe-db-liquibase-username\",\"2052\":\"268#dev-dsf-bpe-db-url\",\"2053\":\"268#dev-dsf-bpe-db-user-camunda-group\",\"2054\":\"268#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file\",\"2055\":\"268#dev-dsf-bpe-db-user-camunda-username\",\"2056\":\"268#dev-dsf-bpe-db-user-group\",\"2057\":\"268#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file\",\"2058\":\"268#dev-dsf-bpe-db-user-username\",\"2059\":\"268#dev-dsf-bpe-debug-log-message-onactivityend\",\"2060\":\"268#dev-dsf-bpe-debug-log-message-onactivitystart\",\"2061\":\"268#dev-dsf-bpe-debug-log-message-variables\",\"2062\":\"268#dev-dsf-bpe-debug-log-message-variableslocal\",\"2063\":\"268#dev-dsf-bpe-fhir-client-certificate\",\"2064\":\"268#dev-dsf-bpe-fhir-client-certificate-private-key\",\"2065\":\"268#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"2066\":\"268#dev-dsf-bpe-fhir-client-local-timeout-connect\",\"2067\":\"268#dev-dsf-bpe-fhir-client-local-timeout-read\",\"2068\":\"268#dev-dsf-bpe-fhir-client-local-verbose\",\"2069\":\"268#dev-dsf-bpe-fhir-client-remote-timeout-connect\",\"2070\":\"268#dev-dsf-bpe-fhir-client-remote-timeout-read\",\"2071\":\"268#dev-dsf-bpe-fhir-client-remote-verbose\",\"2072\":\"268#dev-dsf-bpe-fhir-client-trust-server-certificate-cas\",\"2073\":\"268#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"2074\":\"268#dev-dsf-bpe-fhir-server-base-url\",\"2075\":\"268#dev-dsf-bpe-fhir-task-subscription-retry-max\",\"2076\":\"268#dev-dsf-bpe-fhir-task-subscription-retry-sleep\",\"2077\":\"268#dev-dsf-bpe-fhir-task-subscription-search-parameter\",\"2078\":\"268#dev-dsf-bpe-mail-client-certificate\",\"2079\":\"268#dev-dsf-bpe-mail-client-certificate-private-key\",\"2080\":\"268#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file\",\"2081\":\"268#dev-dsf-bpe-mail-fromaddress\",\"2082\":\"268#dev-dsf-bpe-mail-host\",\"2083\":\"268#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"2084\":\"268#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"2085\":\"268#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file\",\"2086\":\"268#dev-dsf-bpe-mail-port\",\"2087\":\"268#dev-dsf-bpe-mail-replytoaddresses\",\"2088\":\"268#dev-dsf-bpe-mail-sendmailonerrorlogevent\",\"2089\":\"268#dev-dsf-bpe-mail-sendtestmailonstartup\",\"2090\":\"268#dev-dsf-bpe-mail-smime-p12keystore\",\"2091\":\"268#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file\",\"2092\":\"268#dev-dsf-bpe-mail-toaddresses\",\"2093\":\"268#dev-dsf-bpe-mail-toaddressescc\",\"2094\":\"268#dev-dsf-bpe-mail-trust-server-certificate-cas\",\"2095\":\"268#dev-dsf-bpe-mail-username\",\"2096\":\"268#dev-dsf-bpe-mail-usesmtps\",\"2097\":\"268#dev-dsf-bpe-process-engine-corepoolsize\",\"2098\":\"268#dev-dsf-bpe-process-engine-maxpoolsize\",\"2099\":\"268#dev-dsf-bpe-process-engine-queuesize\",\"2100\":\"268#dev-dsf-bpe-process-excluded\",\"2101\":\"268#dev-dsf-bpe-process-fhir-server-retry-max\",\"2102\":\"268#dev-dsf-bpe-process-fhir-server-retry-sleep\",\"2103\":\"268#dev-dsf-bpe-process-plugin-directroy\",\"2104\":\"268#dev-dsf-bpe-process-retired\",\"2105\":\"268#dev-dsf-bpe-process-threads\",\"2106\":\"268#dev-dsf-proxy-noproxy\",\"2107\":\"268#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"2108\":\"268#dev-dsf-proxy-url\",\"2109\":\"268#dev-dsf-proxy-username\",\"2110\":\"269\",\"2111\":\"269#overview\",\"2112\":\"270\",\"2113\":\"270#overview\",\"2114\":\"270#matching-users\",\"2115\":\"270#thumbprint\",\"2116\":\"270#email\",\"2117\":\"270#token-role-and-token-group\",\"2118\":\"270#dsf-and-practitioner-roles\",\"2119\":\"270#dsf-role\",\"2120\":\"270#practitioner-role\",\"2121\":\"270#examples\",\"2122\":\"271\",\"2123\":\"271#dev-dsf-fhir-client-certificate\",\"2124\":\"271#dev-dsf-fhir-client-certificate-private-key\",\"2125\":\"271#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file\",\"2126\":\"271#dev-dsf-fhir-client-timeout-connect\",\"2127\":\"271#dev-dsf-fhir-client-timeout-read\",\"2128\":\"271#dev-dsf-fhir-client-trust-server-certificate-cas\",\"2129\":\"271#dev-dsf-fhir-client-verbose\",\"2130\":\"271#dev-dsf-fhir-db-liquibase-forceunlock\",\"2131\":\"271#dev-dsf-fhir-db-liquibase-lockwaittime\",\"2132\":\"271#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file\",\"2133\":\"271#dev-dsf-fhir-db-liquibase-username\",\"2134\":\"271#dev-dsf-fhir-db-url\",\"2135\":\"271#dev-dsf-fhir-db-user-group\",\"2136\":\"271#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file\",\"2137\":\"271#dev-dsf-fhir-db-user-permanent-delete-group\",\"2138\":\"271#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file\",\"2139\":\"271#dev-dsf-fhir-db-user-permanent-delete-username\",\"2140\":\"271#dev-dsf-fhir-db-user-username\",\"2141\":\"271#dev-dsf-fhir-server-base-url\",\"2142\":\"271#dev-dsf-fhir-server-init-bundle\",\"2143\":\"271#dev-dsf-fhir-server-organization-identifier-value\",\"2144\":\"271#dev-dsf-fhir-server-organization-thumbprint\",\"2145\":\"271#dev-dsf-fhir-server-page-count\",\"2146\":\"271#dev-dsf-fhir-server-roleconfig\",\"2147\":\"271#dev-dsf-fhir-server-static-resource-cache\",\"2148\":\"271#dev-dsf-proxy-noproxy\",\"2149\":\"271#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"2150\":\"271#dev-dsf-proxy-url\",\"2151\":\"271#dev-dsf-proxy-username\",\"2152\":\"271#dev-dsf-server-api-host\",\"2153\":\"271#dev-dsf-server-api-port\",\"2154\":\"271#dev-dsf-server-auth-client-certificate-header\",\"2155\":\"271#dev-dsf-server-auth-oidc-authorization-code-flow\",\"2156\":\"271#dev-dsf-server-auth-oidc-back-channel-logout\",\"2157\":\"271#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"2158\":\"271#dev-dsf-server-auth-oidc-bearer-token\",\"2159\":\"271#dev-dsf-server-auth-oidc-client-id\",\"2160\":\"271#dev-dsf-server-auth-oidc-client-secret\",\"2161\":\"271#dev-dsf-server-auth-oidc-provider-client-certificate\",\"2162\":\"271#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"2163\":\"271#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"2164\":\"271#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"2165\":\"271#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"2166\":\"271#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"2167\":\"271#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"2168\":\"271#dev-dsf-server-auth-trust-client-certificate-cas\",\"2169\":\"271#dev-dsf-server-certificate\",\"2170\":\"271#dev-dsf-server-certificate-chain\",\"2171\":\"271#dev-dsf-server-certificate-key\",\"2172\":\"271#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"2173\":\"271#dev-dsf-server-context-path\",\"2174\":\"271#dev-dsf-server-status-host\",\"2175\":\"271#dev-dsf-server-status-port\",\"2176\":\"272\",\"2177\":\"272#overview\",\"2178\":\"272#authorization-code-flow\",\"2179\":\"272#bearer-token-authentication\",\"2180\":\"272#additional-odic-configuration-parameter\",\"2181\":\"272#example\",\"2182\":\"273\",\"2183\":\"273#overview\",\"2184\":\"274\",\"2185\":\"274#app-server-ip\",\"2186\":\"274#https-server-name-port\",\"2187\":\"274#proxy-pass-connection-timeout-http\",\"2188\":\"274#proxy-pass-connection-timeout-ws\",\"2189\":\"274#proxy-pass-timeout-http\",\"2190\":\"274#proxy-pass-timeout-ws\",\"2191\":\"274#server-context-path\",\"2192\":\"274#ssl-ca-certificate-file\",\"2193\":\"274#ssl-ca-dn-request-file\",\"2194\":\"274#ssl-certificate-chain-file\",\"2195\":\"274#ssl-certificate-file\",\"2196\":\"274#ssl-certificate-key-file\",\"2197\":\"274#ssl-verify-client\",\"2198\":\"275\",\"2199\":\"275#overview\",\"2200\":\"276\",\"2201\":\"276#overview\",\"2202\":\"276#matching-users\",\"2203\":\"276#thumbprint\",\"2204\":\"276#email\",\"2205\":\"276#token-role-and-token-group\",\"2206\":\"276#dsf-and-practitioner-roles\",\"2207\":\"276#dsf-role\",\"2208\":\"276#practitioner-role\",\"2209\":\"276#examples\",\"2210\":\"277\",\"2211\":\"277#dev-dsf-server-api-host\",\"2212\":\"277#dev-dsf-server-api-port\",\"2213\":\"277#dev-dsf-server-auth-client-certificate-header\",\"2214\":\"277#dev-dsf-server-auth-oidc-authorization-code-flow\",\"2215\":\"277#dev-dsf-server-auth-oidc-back-channel-logout\",\"2216\":\"277#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"2217\":\"277#dev-dsf-server-auth-oidc-bearer-token\",\"2218\":\"277#dev-dsf-server-auth-oidc-client-id\",\"2219\":\"277#dev-dsf-server-auth-oidc-client-secret\",\"2220\":\"277#dev-dsf-server-auth-oidc-provider-client-certificate\",\"2221\":\"277#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"2222\":\"277#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"2223\":\"277#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"2224\":\"277#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"2225\":\"277#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"2226\":\"277#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"2227\":\"277#dev-dsf-server-auth-trust-client-certificate-cas\",\"2228\":\"277#dev-dsf-server-certificate\",\"2229\":\"277#dev-dsf-server-certificate-chain\",\"2230\":\"277#dev-dsf-server-certificate-key\",\"2231\":\"277#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"2232\":\"277#dev-dsf-server-context-path\",\"2233\":\"277#dev-dsf-server-status-host\",\"2234\":\"277#dev-dsf-server-status-port\",\"2235\":\"277#dev-dsf-bpe-db-liquibase-forceunlock\",\"2236\":\"277#dev-dsf-bpe-db-liquibase-lockwaittime\",\"2237\":\"277#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file\",\"2238\":\"277#dev-dsf-bpe-db-liquibase-username\",\"2239\":\"277#dev-dsf-bpe-db-url\",\"2240\":\"277#dev-dsf-bpe-db-user-camunda-group\",\"2241\":\"277#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file\",\"2242\":\"277#dev-dsf-bpe-db-user-camunda-username\",\"2243\":\"277#dev-dsf-bpe-db-user-group\",\"2244\":\"277#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file\",\"2245\":\"277#dev-dsf-bpe-db-user-username\",\"2246\":\"277#dev-dsf-bpe-debug-log-message-currentuser\",\"2247\":\"277#dev-dsf-bpe-debug-log-message-dbstatement\",\"2248\":\"277#dev-dsf-bpe-debug-log-message-onactivityend\",\"2249\":\"277#dev-dsf-bpe-debug-log-message-onactivitystart\",\"2250\":\"277#dev-dsf-bpe-debug-log-message-variables\",\"2251\":\"277#dev-dsf-bpe-debug-log-message-variableslocal\",\"2252\":\"277#dev-dsf-bpe-debug-log-message-webservicerequest\",\"2253\":\"277#dev-dsf-bpe-fhir-client-certificate\",\"2254\":\"277#dev-dsf-bpe-fhir-client-certificate-private-key\",\"2255\":\"277#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"2256\":\"277#dev-dsf-bpe-fhir-client-local-timeout-connect\",\"2257\":\"277#dev-dsf-bpe-fhir-client-local-timeout-read\",\"2258\":\"277#dev-dsf-bpe-fhir-client-local-verbose\",\"2259\":\"277#dev-dsf-bpe-fhir-client-remote-timeout-connect\",\"2260\":\"277#dev-dsf-bpe-fhir-client-remote-timeout-read\",\"2261\":\"277#dev-dsf-bpe-fhir-client-remote-verbose\",\"2262\":\"277#dev-dsf-bpe-fhir-client-trust-server-certificate-cas\",\"2263\":\"277#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"2264\":\"277#dev-dsf-bpe-fhir-server-base-url\",\"2265\":\"277#dev-dsf-bpe-fhir-task-subscription-retry-max\",\"2266\":\"277#dev-dsf-bpe-fhir-task-subscription-retry-sleep\",\"2267\":\"277#dev-dsf-bpe-fhir-task-subscription-search-parameter\",\"2268\":\"277#dev-dsf-bpe-mail-client-certificate\",\"2269\":\"277#dev-dsf-bpe-mail-client-certificate-private-key\",\"2270\":\"277#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file\",\"2271\":\"277#dev-dsf-bpe-mail-fromaddress\",\"2272\":\"277#dev-dsf-bpe-mail-host\",\"2273\":\"277#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"2274\":\"277#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"2275\":\"277#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file\",\"2276\":\"277#dev-dsf-bpe-mail-port\",\"2277\":\"277#dev-dsf-bpe-mail-replytoaddresses\",\"2278\":\"277#dev-dsf-bpe-mail-sendmailonerrorlogevent\",\"2279\":\"277#dev-dsf-bpe-mail-sendtestmailonstartup\",\"2280\":\"277#dev-dsf-bpe-mail-smime-p12keystore\",\"2281\":\"277#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file\",\"2282\":\"277#dev-dsf-bpe-mail-toaddresses\",\"2283\":\"277#dev-dsf-bpe-mail-toaddressescc\",\"2284\":\"277#dev-dsf-bpe-mail-trust-server-certificate-cas\",\"2285\":\"277#dev-dsf-bpe-mail-username\",\"2286\":\"277#dev-dsf-bpe-mail-usesmtps\",\"2287\":\"277#dev-dsf-bpe-process-engine-corepoolsize\",\"2288\":\"277#dev-dsf-bpe-process-engine-maxpoolsize\",\"2289\":\"277#dev-dsf-bpe-process-engine-queuesize\",\"2290\":\"277#dev-dsf-bpe-process-excluded\",\"2291\":\"277#dev-dsf-bpe-process-fhir-server-retry-max\",\"2292\":\"277#dev-dsf-bpe-process-fhir-server-retry-sleep\",\"2293\":\"277#dev-dsf-bpe-process-plugin-directroy\",\"2294\":\"277#dev-dsf-bpe-process-retired\",\"2295\":\"277#dev-dsf-bpe-process-threads\",\"2296\":\"277#dev-dsf-bpe-server-base-url\",\"2297\":\"277#dev-dsf-bpe-server-roleconfig\",\"2298\":\"277#dev-dsf-bpe-server-static-resource-cache\",\"2299\":\"277#dev-dsf-bpe-server-ui-theme\",\"2300\":\"277#dev-dsf-proxy-noproxy\",\"2301\":\"277#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"2302\":\"277#dev-dsf-proxy-url\",\"2303\":\"277#dev-dsf-proxy-username\",\"2304\":\"278\",\"2305\":\"278#overview\",\"2306\":\"278#authorization-code-flow\",\"2307\":\"278#additional-odic-configuration-parameter\",\"2308\":\"278#example\",\"2309\":\"279\",\"2310\":\"279#overview\",\"2311\":\"280\",\"2312\":\"280#app-server-ip\",\"2313\":\"280#https-server-name-port\",\"2314\":\"280#proxy-pass-connection-timeout-http\",\"2315\":\"280#proxy-pass-connection-timeout-ws\",\"2316\":\"280#proxy-pass-timeout-http\",\"2317\":\"280#proxy-pass-timeout-ws\",\"2318\":\"280#server-context-path\",\"2319\":\"280#ssl-ca-certificate-file\",\"2320\":\"280#ssl-ca-dn-request-file\",\"2321\":\"280#ssl-certificate-chain-file\",\"2322\":\"280#ssl-certificate-file\",\"2323\":\"280#ssl-certificate-key-file\",\"2324\":\"280#ssl-verify-client\",\"2325\":\"281\",\"2326\":\"281#overview\",\"2327\":\"282\",\"2328\":\"282#overview\",\"2329\":\"282#matching-users\",\"2330\":\"282#thumbprint\",\"2331\":\"282#email\",\"2332\":\"282#token-role-and-token-group\",\"2333\":\"282#dsf-and-practitioner-roles\",\"2334\":\"282#dsf-role\",\"2335\":\"282#practitioner-role\",\"2336\":\"282#examples\",\"2337\":\"283\",\"2338\":\"283#dev-dsf-fhir-client-certificate\",\"2339\":\"283#dev-dsf-fhir-client-certificate-private-key\",\"2340\":\"283#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file\",\"2341\":\"283#dev-dsf-fhir-client-timeout-connect\",\"2342\":\"283#dev-dsf-fhir-client-timeout-read\",\"2343\":\"283#dev-dsf-fhir-client-trust-server-certificate-cas\",\"2344\":\"283#dev-dsf-fhir-client-verbose\",\"2345\":\"283#dev-dsf-fhir-db-liquibase-forceunlock\",\"2346\":\"283#dev-dsf-fhir-db-liquibase-lockwaittime\",\"2347\":\"283#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file\",\"2348\":\"283#dev-dsf-fhir-db-liquibase-username\",\"2349\":\"283#dev-dsf-fhir-db-url\",\"2350\":\"283#dev-dsf-fhir-db-user-group\",\"2351\":\"283#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file\",\"2352\":\"283#dev-dsf-fhir-db-user-permanent-delete-group\",\"2353\":\"283#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file\",\"2354\":\"283#dev-dsf-fhir-db-user-permanent-delete-username\",\"2355\":\"283#dev-dsf-fhir-db-user-username\",\"2356\":\"283#dev-dsf-fhir-debug-log-message-currentuser\",\"2357\":\"283#dev-dsf-fhir-debug-log-message-dbstatement\",\"2358\":\"283#dev-dsf-fhir-debug-log-message-webservicerequest\",\"2359\":\"283#dev-dsf-fhir-server-base-url\",\"2360\":\"283#dev-dsf-fhir-server-init-bundle\",\"2361\":\"283#dev-dsf-fhir-server-organization-identifier-value\",\"2362\":\"283#dev-dsf-fhir-server-organization-thumbprint\",\"2363\":\"283#dev-dsf-fhir-server-page-count\",\"2364\":\"283#dev-dsf-fhir-server-roleconfig\",\"2365\":\"283#dev-dsf-fhir-server-static-resource-cache\",\"2366\":\"283#dev-dsf-fhir-server-ui-theme\",\"2367\":\"283#dev-dsf-proxy-noproxy\",\"2368\":\"283#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"2369\":\"283#dev-dsf-proxy-url\",\"2370\":\"283#dev-dsf-proxy-username\",\"2371\":\"283#dev-dsf-server-api-host\",\"2372\":\"283#dev-dsf-server-api-port\",\"2373\":\"283#dev-dsf-server-auth-client-certificate-header\",\"2374\":\"283#dev-dsf-server-auth-oidc-authorization-code-flow\",\"2375\":\"283#dev-dsf-server-auth-oidc-back-channel-logout\",\"2376\":\"283#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"2377\":\"283#dev-dsf-server-auth-oidc-bearer-token\",\"2378\":\"283#dev-dsf-server-auth-oidc-client-id\",\"2379\":\"283#dev-dsf-server-auth-oidc-client-secret\",\"2380\":\"283#dev-dsf-server-auth-oidc-provider-client-certificate\",\"2381\":\"283#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"2382\":\"283#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"2383\":\"283#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"2384\":\"283#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"2385\":\"283#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"2386\":\"283#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"2387\":\"283#dev-dsf-server-auth-trust-client-certificate-cas\",\"2388\":\"283#dev-dsf-server-certificate\",\"2389\":\"283#dev-dsf-server-certificate-chain\",\"2390\":\"283#dev-dsf-server-certificate-key\",\"2391\":\"283#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"2392\":\"283#dev-dsf-server-context-path\",\"2393\":\"283#dev-dsf-server-status-host\",\"2394\":\"283#dev-dsf-server-status-port\",\"2395\":\"284\",\"2396\":\"284#overview\",\"2397\":\"284#authorization-code-flow\",\"2398\":\"284#bearer-token-authentication\",\"2399\":\"284#additional-odic-configuration-parameter\",\"2400\":\"284#example\",\"2401\":\"285\",\"2402\":\"285#overview\",\"2403\":\"286\",\"2404\":\"286#app-server-ip\",\"2405\":\"286#https-server-name-port\",\"2406\":\"286#proxy-pass-connection-timeout-http\",\"2407\":\"286#proxy-pass-connection-timeout-ws\",\"2408\":\"286#proxy-pass-timeout-http\",\"2409\":\"286#proxy-pass-timeout-ws\",\"2410\":\"286#server-context-path\",\"2411\":\"286#ssl-ca-certificate-file\",\"2412\":\"286#ssl-ca-dn-request-file\",\"2413\":\"286#ssl-certificate-chain-file\",\"2414\":\"286#ssl-certificate-file\",\"2415\":\"286#ssl-certificate-key-file\",\"2416\":\"286#ssl-verify-client\",\"2417\":\"287\",\"2418\":\"287#overview\",\"2419\":\"288\",\"2420\":\"288#overview\",\"2421\":\"288#matching-users\",\"2422\":\"288#thumbprint\",\"2423\":\"288#email\",\"2424\":\"288#token-role-and-token-group\",\"2425\":\"288#dsf-and-practitioner-roles\",\"2426\":\"288#dsf-role\",\"2427\":\"288#practitioner-role\",\"2428\":\"288#examples\",\"2429\":\"289\",\"2430\":\"289#dev-dsf-server-api-host\",\"2431\":\"289#dev-dsf-server-api-port\",\"2432\":\"289#dev-dsf-server-auth-client-certificate-header\",\"2433\":\"289#dev-dsf-server-auth-oidc-authorization-code-flow\",\"2434\":\"289#dev-dsf-server-auth-oidc-back-channel-logout\",\"2435\":\"289#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"2436\":\"289#dev-dsf-server-auth-oidc-bearer-token\",\"2437\":\"289#dev-dsf-server-auth-oidc-client-id\",\"2438\":\"289#dev-dsf-server-auth-oidc-client-secret\",\"2439\":\"289#dev-dsf-server-auth-oidc-provider-client-certificate\",\"2440\":\"289#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"2441\":\"289#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"2442\":\"289#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"2443\":\"289#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"2444\":\"289#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"2445\":\"289#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"2446\":\"289#dev-dsf-server-auth-trust-client-certificate-cas\",\"2447\":\"289#dev-dsf-server-certificate\",\"2448\":\"289#dev-dsf-server-certificate-chain\",\"2449\":\"289#dev-dsf-server-certificate-key\",\"2450\":\"289#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"2451\":\"289#dev-dsf-server-context-path\",\"2452\":\"289#dev-dsf-server-status-host\",\"2453\":\"289#dev-dsf-server-status-port\",\"2454\":\"289#dev-dsf-bpe-db-liquibase-forceunlock\",\"2455\":\"289#dev-dsf-bpe-db-liquibase-lockwaittime\",\"2456\":\"289#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file\",\"2457\":\"289#dev-dsf-bpe-db-liquibase-username\",\"2458\":\"289#dev-dsf-bpe-db-url\",\"2459\":\"289#dev-dsf-bpe-db-user-camunda-group\",\"2460\":\"289#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file\",\"2461\":\"289#dev-dsf-bpe-db-user-camunda-username\",\"2462\":\"289#dev-dsf-bpe-db-user-group\",\"2463\":\"289#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file\",\"2464\":\"289#dev-dsf-bpe-db-user-username\",\"2465\":\"289#dev-dsf-bpe-debug-log-message-currentuser\",\"2466\":\"289#dev-dsf-bpe-debug-log-message-dbstatement\",\"2467\":\"289#dev-dsf-bpe-debug-log-message-onactivityend\",\"2468\":\"289#dev-dsf-bpe-debug-log-message-onactivitystart\",\"2469\":\"289#dev-dsf-bpe-debug-log-message-variables\",\"2470\":\"289#dev-dsf-bpe-debug-log-message-variableslocal\",\"2471\":\"289#dev-dsf-bpe-debug-log-message-webservicerequest\",\"2472\":\"289#dev-dsf-bpe-fhir-client-certificate\",\"2473\":\"289#dev-dsf-bpe-fhir-client-certificate-private-key\",\"2474\":\"289#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"2475\":\"289#dev-dsf-bpe-fhir-client-local-timeout-connect\",\"2476\":\"289#dev-dsf-bpe-fhir-client-local-timeout-read\",\"2477\":\"289#dev-dsf-bpe-fhir-client-local-verbose\",\"2478\":\"289#dev-dsf-bpe-fhir-client-remote-timeout-connect\",\"2479\":\"289#dev-dsf-bpe-fhir-client-remote-timeout-read\",\"2480\":\"289#dev-dsf-bpe-fhir-client-remote-verbose\",\"2481\":\"289#dev-dsf-bpe-fhir-client-trust-server-certificate-cas\",\"2482\":\"289#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"2483\":\"289#dev-dsf-bpe-fhir-server-base-url\",\"2484\":\"289#dev-dsf-bpe-fhir-task-subscription-retry-max\",\"2485\":\"289#dev-dsf-bpe-fhir-task-subscription-retry-sleep\",\"2486\":\"289#dev-dsf-bpe-fhir-task-subscription-search-parameter\",\"2487\":\"289#dev-dsf-bpe-mail-client-certificate\",\"2488\":\"289#dev-dsf-bpe-mail-client-certificate-private-key\",\"2489\":\"289#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file\",\"2490\":\"289#dev-dsf-bpe-mail-fromaddress\",\"2491\":\"289#dev-dsf-bpe-mail-host\",\"2492\":\"289#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"2493\":\"289#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"2494\":\"289#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file\",\"2495\":\"289#dev-dsf-bpe-mail-port\",\"2496\":\"289#dev-dsf-bpe-mail-replytoaddresses\",\"2497\":\"289#dev-dsf-bpe-mail-sendmailonerrorlogevent\",\"2498\":\"289#dev-dsf-bpe-mail-sendtestmailonstartup\",\"2499\":\"289#dev-dsf-bpe-mail-smime-p12keystore\",\"2500\":\"289#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file\",\"2501\":\"289#dev-dsf-bpe-mail-toaddresses\",\"2502\":\"289#dev-dsf-bpe-mail-toaddressescc\",\"2503\":\"289#dev-dsf-bpe-mail-trust-server-certificate-cas\",\"2504\":\"289#dev-dsf-bpe-mail-username\",\"2505\":\"289#dev-dsf-bpe-mail-usesmtps\",\"2506\":\"289#dev-dsf-bpe-process-engine-corepoolsize\",\"2507\":\"289#dev-dsf-bpe-process-engine-maxpoolsize\",\"2508\":\"289#dev-dsf-bpe-process-engine-queuesize\",\"2509\":\"289#dev-dsf-bpe-process-excluded\",\"2510\":\"289#dev-dsf-bpe-process-fhir-server-retry-max\",\"2511\":\"289#dev-dsf-bpe-process-fhir-server-retry-sleep\",\"2512\":\"289#dev-dsf-bpe-process-plugin-directroy\",\"2513\":\"289#dev-dsf-bpe-process-retired\",\"2514\":\"289#dev-dsf-bpe-process-threads\",\"2515\":\"289#dev-dsf-bpe-server-base-url\",\"2516\":\"289#dev-dsf-bpe-server-roleconfig\",\"2517\":\"289#dev-dsf-bpe-server-static-resource-cache\",\"2518\":\"289#dev-dsf-bpe-server-ui-theme\",\"2519\":\"289#dev-dsf-proxy-noproxy\",\"2520\":\"289#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"2521\":\"289#dev-dsf-proxy-url\",\"2522\":\"289#dev-dsf-proxy-username\",\"2523\":\"290\",\"2524\":\"290#overview\",\"2525\":\"290#authorization-code-flow\",\"2526\":\"290#additional-odic-configuration-parameter\",\"2527\":\"290#example\",\"2528\":\"291\",\"2529\":\"291#overview\",\"2530\":\"292\",\"2531\":\"292#app-server-ip\",\"2532\":\"292#https-server-name-port\",\"2533\":\"292#proxy-pass-connection-timeout-http\",\"2534\":\"292#proxy-pass-connection-timeout-ws\",\"2535\":\"292#proxy-pass-timeout-http\",\"2536\":\"292#proxy-pass-timeout-ws\",\"2537\":\"292#server-context-path\",\"2538\":\"292#ssl-ca-certificate-file\",\"2539\":\"292#ssl-ca-dn-request-file\",\"2540\":\"292#ssl-certificate-chain-file\",\"2541\":\"292#ssl-certificate-file\",\"2542\":\"292#ssl-certificate-key-file\",\"2543\":\"292#ssl-verify-client\",\"2544\":\"293\",\"2545\":\"293#overview\",\"2546\":\"294\",\"2547\":\"294#overview\",\"2548\":\"294#matching-users\",\"2549\":\"294#thumbprint\",\"2550\":\"294#email\",\"2551\":\"294#token-role-and-token-group\",\"2552\":\"294#dsf-and-practitioner-roles\",\"2553\":\"294#dsf-role\",\"2554\":\"294#practitioner-role\",\"2555\":\"294#examples\",\"2556\":\"295\",\"2557\":\"295#dev-dsf-fhir-client-certificate\",\"2558\":\"295#dev-dsf-fhir-client-certificate-private-key\",\"2559\":\"295#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file\",\"2560\":\"295#dev-dsf-fhir-client-timeout-connect\",\"2561\":\"295#dev-dsf-fhir-client-timeout-read\",\"2562\":\"295#dev-dsf-fhir-client-trust-server-certificate-cas\",\"2563\":\"295#dev-dsf-fhir-client-verbose\",\"2564\":\"295#dev-dsf-fhir-db-liquibase-forceunlock\",\"2565\":\"295#dev-dsf-fhir-db-liquibase-lockwaittime\",\"2566\":\"295#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file\",\"2567\":\"295#dev-dsf-fhir-db-liquibase-username\",\"2568\":\"295#dev-dsf-fhir-db-url\",\"2569\":\"295#dev-dsf-fhir-db-user-group\",\"2570\":\"295#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file\",\"2571\":\"295#dev-dsf-fhir-db-user-permanent-delete-group\",\"2572\":\"295#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file\",\"2573\":\"295#dev-dsf-fhir-db-user-permanent-delete-username\",\"2574\":\"295#dev-dsf-fhir-db-user-username\",\"2575\":\"295#dev-dsf-fhir-debug-log-message-currentuser\",\"2576\":\"295#dev-dsf-fhir-debug-log-message-dbstatement\",\"2577\":\"295#dev-dsf-fhir-debug-log-message-webservicerequest\",\"2578\":\"295#dev-dsf-fhir-server-base-url\",\"2579\":\"295#dev-dsf-fhir-server-init-bundle\",\"2580\":\"295#dev-dsf-fhir-server-organization-identifier-value\",\"2581\":\"295#dev-dsf-fhir-server-organization-thumbprint\",\"2582\":\"295#dev-dsf-fhir-server-page-count\",\"2583\":\"295#dev-dsf-fhir-server-roleconfig\",\"2584\":\"295#dev-dsf-fhir-server-static-resource-cache\",\"2585\":\"295#dev-dsf-fhir-server-ui-theme\",\"2586\":\"295#dev-dsf-proxy-noproxy\",\"2587\":\"295#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"2588\":\"295#dev-dsf-proxy-url\",\"2589\":\"295#dev-dsf-proxy-username\",\"2590\":\"295#dev-dsf-server-api-host\",\"2591\":\"295#dev-dsf-server-api-port\",\"2592\":\"295#dev-dsf-server-auth-client-certificate-header\",\"2593\":\"295#dev-dsf-server-auth-oidc-authorization-code-flow\",\"2594\":\"295#dev-dsf-server-auth-oidc-back-channel-logout\",\"2595\":\"295#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"2596\":\"295#dev-dsf-server-auth-oidc-bearer-token\",\"2597\":\"295#dev-dsf-server-auth-oidc-client-id\",\"2598\":\"295#dev-dsf-server-auth-oidc-client-secret\",\"2599\":\"295#dev-dsf-server-auth-oidc-provider-client-certificate\",\"2600\":\"295#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"2601\":\"295#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"2602\":\"295#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"2603\":\"295#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"2604\":\"295#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"2605\":\"295#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"2606\":\"295#dev-dsf-server-auth-trust-client-certificate-cas\",\"2607\":\"295#dev-dsf-server-certificate\",\"2608\":\"295#dev-dsf-server-certificate-chain\",\"2609\":\"295#dev-dsf-server-certificate-key\",\"2610\":\"295#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"2611\":\"295#dev-dsf-server-context-path\",\"2612\":\"295#dev-dsf-server-status-host\",\"2613\":\"295#dev-dsf-server-status-port\",\"2614\":\"296\",\"2615\":\"296#overview\",\"2616\":\"296#authorization-code-flow\",\"2617\":\"296#bearer-token-authentication\",\"2618\":\"296#additional-odic-configuration-parameter\",\"2619\":\"296#example\",\"2620\":\"297\",\"2621\":\"297#overview\",\"2622\":\"298\",\"2623\":\"298#app-server-ip\",\"2624\":\"298#https-server-name-port\",\"2625\":\"298#proxy-pass-connection-timeout-http\",\"2626\":\"298#proxy-pass-connection-timeout-ws\",\"2627\":\"298#proxy-pass-timeout-http\",\"2628\":\"298#proxy-pass-timeout-ws\",\"2629\":\"298#server-context-path\",\"2630\":\"298#ssl-ca-certificate-file\",\"2631\":\"298#ssl-ca-dn-request-file\",\"2632\":\"298#ssl-certificate-chain-file\",\"2633\":\"298#ssl-certificate-file\",\"2634\":\"298#ssl-certificate-key-file\",\"2635\":\"298#ssl-verify-client\",\"2636\":\"299\",\"2637\":\"299#overview\",\"2638\":\"300\",\"2639\":\"300#overview\",\"2640\":\"300#matching-users\",\"2641\":\"300#thumbprint\",\"2642\":\"300#email\",\"2643\":\"300#token-role-and-token-group\",\"2644\":\"300#dsf-and-practitioner-roles\",\"2645\":\"300#dsf-role\",\"2646\":\"300#practitioner-role\",\"2647\":\"300#examples\",\"2648\":\"301\",\"2649\":\"301#dev-dsf-server-api-host\",\"2650\":\"301#dev-dsf-server-api-port\",\"2651\":\"301#dev-dsf-server-auth-client-certificate-header\",\"2652\":\"301#dev-dsf-server-auth-oidc-authorization-code-flow\",\"2653\":\"301#dev-dsf-server-auth-oidc-back-channel-logout\",\"2654\":\"301#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"2655\":\"301#dev-dsf-server-auth-oidc-bearer-token\",\"2656\":\"301#dev-dsf-server-auth-oidc-client-id\",\"2657\":\"301#dev-dsf-server-auth-oidc-client-secret\",\"2658\":\"301#dev-dsf-server-auth-oidc-provider-client-certificate\",\"2659\":\"301#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"2660\":\"301#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"2661\":\"301#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"2662\":\"301#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"2663\":\"301#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"2664\":\"301#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"2665\":\"301#dev-dsf-server-auth-trust-client-certificate-cas\",\"2666\":\"301#dev-dsf-server-certificate\",\"2667\":\"301#dev-dsf-server-certificate-chain\",\"2668\":\"301#dev-dsf-server-certificate-key\",\"2669\":\"301#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"2670\":\"301#dev-dsf-server-context-path\",\"2671\":\"301#dev-dsf-server-status-host\",\"2672\":\"301#dev-dsf-server-status-port\",\"2673\":\"301#dev-dsf-bpe-db-liquibase-forceunlock\",\"2674\":\"301#dev-dsf-bpe-db-liquibase-lockwaittime\",\"2675\":\"301#dev-dsf-bpe-db-liquibase-password-or-dev-dsf-bpe-db-liquibase-password-file\",\"2676\":\"301#dev-dsf-bpe-db-liquibase-username\",\"2677\":\"301#dev-dsf-bpe-db-url\",\"2678\":\"301#dev-dsf-bpe-db-user-camunda-group\",\"2679\":\"301#dev-dsf-bpe-db-user-camunda-password-or-dev-dsf-bpe-db-user-camunda-password-file\",\"2680\":\"301#dev-dsf-bpe-db-user-camunda-username\",\"2681\":\"301#dev-dsf-bpe-db-user-group\",\"2682\":\"301#dev-dsf-bpe-db-user-password-or-dev-dsf-bpe-db-user-password-file\",\"2683\":\"301#dev-dsf-bpe-db-user-username\",\"2684\":\"301#dev-dsf-bpe-debug-log-message-currentuser\",\"2685\":\"301#dev-dsf-bpe-debug-log-message-dbstatement\",\"2686\":\"301#dev-dsf-bpe-debug-log-message-onactivityend\",\"2687\":\"301#dev-dsf-bpe-debug-log-message-onactivitystart\",\"2688\":\"301#dev-dsf-bpe-debug-log-message-variables\",\"2689\":\"301#dev-dsf-bpe-debug-log-message-variableslocal\",\"2690\":\"301#dev-dsf-bpe-debug-log-message-webservicerequest\",\"2691\":\"301#dev-dsf-bpe-fhir-client-certificate\",\"2692\":\"301#dev-dsf-bpe-fhir-client-certificate-private-key\",\"2693\":\"301#dev-dsf-bpe-fhir-client-certificate-private-key-password-or-dev-dsf-bpe-fhir-client-certificate-private-key-password-file\",\"2694\":\"301#dev-dsf-bpe-fhir-client-local-timeout-connect\",\"2695\":\"301#dev-dsf-bpe-fhir-client-local-timeout-read\",\"2696\":\"301#dev-dsf-bpe-fhir-client-local-verbose\",\"2697\":\"301#dev-dsf-bpe-fhir-client-remote-timeout-connect\",\"2698\":\"301#dev-dsf-bpe-fhir-client-remote-timeout-read\",\"2699\":\"301#dev-dsf-bpe-fhir-client-remote-verbose\",\"2700\":\"301#dev-dsf-bpe-fhir-client-trust-server-certificate-cas\",\"2701\":\"301#dev-dsf-bpe-fhir-questionnaire-response-subscription-search-parameter\",\"2702\":\"301#dev-dsf-bpe-fhir-server-base-url\",\"2703\":\"301#dev-dsf-bpe-fhir-task-subscription-retry-max\",\"2704\":\"301#dev-dsf-bpe-fhir-task-subscription-retry-sleep\",\"2705\":\"301#dev-dsf-bpe-fhir-task-subscription-search-parameter\",\"2706\":\"301#dev-dsf-bpe-mail-client-certificate\",\"2707\":\"301#dev-dsf-bpe-mail-client-certificate-private-key\",\"2708\":\"301#dev-dsf-bpe-mail-client-certificate-private-key-password-or-dev-dsf-bpe-mail-client-certificate-private-key-password-file\",\"2709\":\"301#dev-dsf-bpe-mail-fromaddress\",\"2710\":\"301#dev-dsf-bpe-mail-host\",\"2711\":\"301#dev-dsf-bpe-mail-mailonerrorlogeventbuffersize\",\"2712\":\"301#dev-dsf-bpe-mail-mailonerrorlogeventdebugloglocation\",\"2713\":\"301#dev-dsf-bpe-mail-password-or-dev-dsf-bpe-mail-password-file\",\"2714\":\"301#dev-dsf-bpe-mail-port\",\"2715\":\"301#dev-dsf-bpe-mail-replytoaddresses\",\"2716\":\"301#dev-dsf-bpe-mail-sendmailonerrorlogevent\",\"2717\":\"301#dev-dsf-bpe-mail-sendtestmailonstartup\",\"2718\":\"301#dev-dsf-bpe-mail-smime-p12keystore\",\"2719\":\"301#dev-dsf-bpe-mail-smime-p12keystore-password-or-dev-dsf-bpe-mail-smime-p12keystore-password-file\",\"2720\":\"301#dev-dsf-bpe-mail-toaddresses\",\"2721\":\"301#dev-dsf-bpe-mail-toaddressescc\",\"2722\":\"301#dev-dsf-bpe-mail-trust-server-certificate-cas\",\"2723\":\"301#dev-dsf-bpe-mail-username\",\"2724\":\"301#dev-dsf-bpe-mail-usesmtps\",\"2725\":\"301#dev-dsf-bpe-process-engine-corepoolsize\",\"2726\":\"301#dev-dsf-bpe-process-engine-maxpoolsize\",\"2727\":\"301#dev-dsf-bpe-process-engine-queuesize\",\"2728\":\"301#dev-dsf-bpe-process-excluded\",\"2729\":\"301#dev-dsf-bpe-process-fhir-server-retry-max\",\"2730\":\"301#dev-dsf-bpe-process-fhir-server-retry-sleep\",\"2731\":\"301#dev-dsf-bpe-process-plugin-directroy\",\"2732\":\"301#dev-dsf-bpe-process-retired\",\"2733\":\"301#dev-dsf-bpe-process-threads\",\"2734\":\"301#dev-dsf-bpe-server-base-url\",\"2735\":\"301#dev-dsf-bpe-server-roleconfig\",\"2736\":\"301#dev-dsf-bpe-server-static-resource-cache\",\"2737\":\"301#dev-dsf-bpe-server-ui-theme\",\"2738\":\"301#dev-dsf-proxy-noproxy\",\"2739\":\"301#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"2740\":\"301#dev-dsf-proxy-url\",\"2741\":\"301#dev-dsf-proxy-username\",\"2742\":\"302\",\"2743\":\"302#overview\",\"2744\":\"302#authorization-code-flow\",\"2745\":\"302#additional-odic-configuration-parameter\",\"2746\":\"302#example\",\"2747\":\"303\",\"2748\":\"303#overview\",\"2749\":\"304\",\"2750\":\"304#app-server-ip\",\"2751\":\"304#https-server-name-port\",\"2752\":\"304#proxy-pass-connection-timeout-http\",\"2753\":\"304#proxy-pass-connection-timeout-ws\",\"2754\":\"304#proxy-pass-timeout-http\",\"2755\":\"304#proxy-pass-timeout-ws\",\"2756\":\"304#server-context-path\",\"2757\":\"304#ssl-ca-certificate-file\",\"2758\":\"304#ssl-ca-dn-request-file\",\"2759\":\"304#ssl-certificate-chain-file\",\"2760\":\"304#ssl-certificate-file\",\"2761\":\"304#ssl-certificate-key-file\",\"2762\":\"304#ssl-verify-client\",\"2763\":\"305\",\"2764\":\"305#overview\",\"2765\":\"306\",\"2766\":\"306#overview\",\"2767\":\"306#matching-users\",\"2768\":\"306#thumbprint\",\"2769\":\"306#email\",\"2770\":\"306#token-role-and-token-group\",\"2771\":\"306#dsf-and-practitioner-roles\",\"2772\":\"306#dsf-role\",\"2773\":\"306#practitioner-role\",\"2774\":\"306#examples\",\"2775\":\"307\",\"2776\":\"307#dev-dsf-fhir-client-certificate\",\"2777\":\"307#dev-dsf-fhir-client-certificate-private-key\",\"2778\":\"307#dev-dsf-fhir-client-certificate-private-key-password-or-dev-dsf-fhir-client-certificate-private-key-password-file\",\"2779\":\"307#dev-dsf-fhir-client-timeout-connect\",\"2780\":\"307#dev-dsf-fhir-client-timeout-read\",\"2781\":\"307#dev-dsf-fhir-client-trust-server-certificate-cas\",\"2782\":\"307#dev-dsf-fhir-client-verbose\",\"2783\":\"307#dev-dsf-fhir-db-liquibase-forceunlock\",\"2784\":\"307#dev-dsf-fhir-db-liquibase-lockwaittime\",\"2785\":\"307#dev-dsf-fhir-db-liquibase-password-or-dev-dsf-fhir-db-liquibase-password-file\",\"2786\":\"307#dev-dsf-fhir-db-liquibase-username\",\"2787\":\"307#dev-dsf-fhir-db-url\",\"2788\":\"307#dev-dsf-fhir-db-user-group\",\"2789\":\"307#dev-dsf-fhir-db-user-password-or-dev-dsf-fhir-db-user-password-file\",\"2790\":\"307#dev-dsf-fhir-db-user-permanent-delete-group\",\"2791\":\"307#dev-dsf-fhir-db-user-permanent-delete-password-or-dev-dsf-fhir-db-user-permanent-delete-password-file\",\"2792\":\"307#dev-dsf-fhir-db-user-permanent-delete-username\",\"2793\":\"307#dev-dsf-fhir-db-user-username\",\"2794\":\"307#dev-dsf-fhir-debug-log-message-currentuser\",\"2795\":\"307#dev-dsf-fhir-debug-log-message-dbstatement\",\"2796\":\"307#dev-dsf-fhir-debug-log-message-webservicerequest\",\"2797\":\"307#dev-dsf-fhir-server-base-url\",\"2798\":\"307#dev-dsf-fhir-server-init-bundle\",\"2799\":\"307#dev-dsf-fhir-server-organization-identifier-value\",\"2800\":\"307#dev-dsf-fhir-server-organization-thumbprint\",\"2801\":\"307#dev-dsf-fhir-server-page-count\",\"2802\":\"307#dev-dsf-fhir-server-roleconfig\",\"2803\":\"307#dev-dsf-fhir-server-static-resource-cache\",\"2804\":\"307#dev-dsf-fhir-server-ui-theme\",\"2805\":\"307#dev-dsf-proxy-noproxy\",\"2806\":\"307#dev-dsf-proxy-password-or-dev-dsf-proxy-password-file\",\"2807\":\"307#dev-dsf-proxy-url\",\"2808\":\"307#dev-dsf-proxy-username\",\"2809\":\"307#dev-dsf-server-api-host\",\"2810\":\"307#dev-dsf-server-api-port\",\"2811\":\"307#dev-dsf-server-auth-client-certificate-header\",\"2812\":\"307#dev-dsf-server-auth-oidc-authorization-code-flow\",\"2813\":\"307#dev-dsf-server-auth-oidc-back-channel-logout\",\"2814\":\"307#dev-dsf-server-auth-oidc-back-channel-logout-path\",\"2815\":\"307#dev-dsf-server-auth-oidc-bearer-token\",\"2816\":\"307#dev-dsf-server-auth-oidc-client-id\",\"2817\":\"307#dev-dsf-server-auth-oidc-client-secret\",\"2818\":\"307#dev-dsf-server-auth-oidc-provider-client-certificate\",\"2819\":\"307#dev-dsf-server-auth-oidc-provider-client-certificate-private-key\",\"2820\":\"307#dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-or-dev-dsf-server-auth-oidc-provider-client-certificate-private-key-password-file\",\"2821\":\"307#dev-dsf-server-auth-oidc-provider-client-connecttimeout\",\"2822\":\"307#dev-dsf-server-auth-oidc-provider-client-idletimeout\",\"2823\":\"307#dev-dsf-server-auth-oidc-provider-client-trust-server-certificate-cas\",\"2824\":\"307#dev-dsf-server-auth-oidc-provider-realm-base-url\",\"2825\":\"307#dev-dsf-server-auth-trust-client-certificate-cas\",\"2826\":\"307#dev-dsf-server-certificate\",\"2827\":\"307#dev-dsf-server-certificate-chain\",\"2828\":\"307#dev-dsf-server-certificate-key\",\"2829\":\"307#dev-dsf-server-certificate-key-password-or-dev-dsf-server-certificate-key-password-file\",\"2830\":\"307#dev-dsf-server-context-path\",\"2831\":\"307#dev-dsf-server-status-host\",\"2832\":\"307#dev-dsf-server-status-port\",\"2833\":\"308\",\"2834\":\"308#overview\",\"2835\":\"308#authorization-code-flow\",\"2836\":\"308#bearer-token-authentication\",\"2837\":\"308#additional-odic-configuration-parameter\",\"2838\":\"308#example\",\"2839\":\"309\",\"2840\":\"309#overview\",\"2841\":\"310\",\"2842\":\"310#app-server-ip\",\"2843\":\"310#https-server-name-port\",\"2844\":\"310#proxy-pass-connection-timeout-http\",\"2845\":\"310#proxy-pass-connection-timeout-ws\",\"2846\":\"310#proxy-pass-timeout-http\",\"2847\":\"310#proxy-pass-timeout-ws\",\"2848\":\"310#server-context-path\",\"2849\":\"310#ssl-ca-certificate-file\",\"2850\":\"310#ssl-ca-dn-request-file\",\"2851\":\"310#ssl-certificate-chain-file\",\"2852\":\"310#ssl-certificate-file\",\"2853\":\"310#ssl-certificate-key-file\",\"2854\":\"310#ssl-verify-client\",\"2855\":\"311\",\"2856\":\"312\"},\"fieldIds\":{\"h\":0,\"t\":1,\"c\":2},\"fieldLength\":{\"0\":[3,106],\"1\":[1,69],\"2\":[12],\"3\":[1],\"4\":[1,7],\"5\":[4,72],\"6\":[3,58],\"7\":[4],\"8\":[4,35],\"9\":[4,37],\"10\":[4,30],\"11\":[4,24],\"12\":[5,65],\"13\":[6,27],\"14\":[1,114],\"15\":[1,32],\"16\":[1,87],\"17\":[2,70],\"18\":[1],\"19\":[1,3],\"20\":[1,26],\"21\":[2,6],\"22\":[3,44],\"23\":[1],\"24\":[1,2],\"25\":[3],\"26\":[1,131],\"27\":[2],\"28\":[3,14],\"29\":[3,25],\"30\":[4,22],\"31\":[6],\"32\":[1,83],\"33\":[1,76],\"34\":[4],\"35\":[4,36],\"36\":[2,35],\"37\":[5,105],\"38\":[2,63],\"39\":[2,30],\"40\":[2,42],\"41\":[1,25],\"42\":[4,48],\"43\":[2,45],\"44\":[3,46],\"45\":[2,39],\"46\":[3,46],\"47\":[2,45],\"48\":[4,47],\"49\":[2,45],\"50\":[4,47],\"51\":[2,45],\"52\":[3,47],\"53\":[2,45],\"54\":[4,48],\"55\":[2,45],\"56\":[4,49],\"57\":[2,45],\"58\":[4,48],\"59\":[2,45],\"60\":[3,47],\"61\":[2,45],\"62\":[4,48],\"63\":[2,45],\"64\":[2],\"65\":[1],\"66\":[2],\"67\":[1,25],\"68\":[2,15],\"69\":[4,19],\"70\":[2,30],\"71\":[5,26],\"72\":[1,11],\"73\":[8,43],\"74\":[7,36],\"75\":[6,22],\"76\":[2],\"77\":[11,110],\"78\":[15,68],\"79\":[1,31],\"80\":[2],\"81\":[1,84],\"82\":[3,16],\"83\":[12],\"84\":[1,91],\"85\":[4,55],\"86\":[5,93],\"87\":[2,78],\"88\":[8,10],\"89\":[3,42],\"90\":[1,106],\"91\":[3,96],\"92\":[1,62],\"93\":[8,147],\"94\":[1,169],\"95\":[5,180],\"96\":[6,47],\"97\":[2],\"98\":[1,82],\"99\":[2,48],\"100\":[3,37],\"101\":[3,32],\"102\":[2,41],\"103\":[2,33],\"104\":[3],\"105\":[2,97],\"106\":[1,76],\"107\":[3],\"108\":[2,58],\"109\":[4,59],\"110\":[3,3],\"111\":[3],\"112\":[1,113],\"113\":[1,167],\"114\":[2,32],\"115\":[3,15],\"116\":[4,62],\"117\":[1],\"118\":[2,3],\"119\":[2],\"120\":[1,4],\"121\":[1],\"122\":[1,71],\"123\":[3,101],\"124\":[2,56],\"125\":[3,63],\"126\":[4,55],\"127\":[3],\"128\":[3],\"129\":[2,10],\"130\":[6,120],\"131\":[7,108],\"132\":[1,41],\"133\":[11,28],\"134\":[3,66],\"135\":[3,55],\"136\":[4],\"137\":[5,78],\"138\":[5,65],\"139\":[1],\"140\":[3,14],\"141\":[1,45],\"142\":[3,33],\"143\":[1,71],\"144\":[5,18],\"145\":[1,36],\"146\":[1,45],\"147\":[1,21],\"148\":[3,109],\"149\":[3,100],\"150\":[7,87],\"151\":[2],\"152\":[2,39],\"153\":[2,48],\"154\":[3,12],\"155\":[4,236],\"156\":[4,108],\"157\":[6],\"158\":[4,119],\"159\":[3,63],\"160\":[2],\"161\":[1,68],\"162\":[2],\"163\":[2,56],\"164\":[4,57],\"165\":[5,180],\"166\":[6,91],\"167\":[3,2],\"168\":[1],\"169\":[8,14],\"170\":[8,46],\"171\":[9,39],\"172\":[7,25],\"173\":[6,44],\"174\":[8,27],\"175\":[10,40],\"176\":[8,36],\"177\":[7,24],\"178\":[9,36],\"179\":[7,22],\"180\":[8,36],\"181\":[8,36],\"182\":[8,52],\"183\":[7,35],\"184\":[9,47],\"185\":[12,43],\"186\":[11,47],\"187\":[9,34],\"188\":[9,32],\"189\":[9,36],\"190\":[9,37],\"191\":[8,29],\"192\":[12,51],\"193\":[10,36],\"194\":[10,34],\"195\":[11,45],\"196\":[9,31],\"197\":[9,29],\"198\":[9,35],\"199\":[9,36],\"200\":[8,28],\"201\":[8,43],\"202\":[10,33],\"203\":[8,27],\"204\":[9,33],\"205\":[9,33],\"206\":[9,29],\"207\":[9,32],\"208\":[7,44],\"209\":[9,55],\"210\":[12,44],\"211\":[6,16],\"212\":[6,16],\"213\":[6,35],\"214\":[6,41],\"215\":[8,38],\"216\":[6,16],\"217\":[6,26],\"218\":[6,29],\"219\":[6,31],\"220\":[7,37],\"221\":[10,41],\"222\":[6,29],\"223\":[6,27],\"224\":[7,49],\"225\":[6,29],\"226\":[6,21],\"227\":[8,47],\"228\":[8,45],\"229\":[6,47],\"230\":[9,34],\"231\":[9,30],\"232\":[7,43],\"233\":[6,43],\"234\":[8,45],\"235\":[1],\"236\":[8,18],\"237\":[6,33],\"238\":[8,45],\"239\":[11,41],\"240\":[9,41],\"241\":[7,29],\"242\":[7,27],\"243\":[7,36],\"244\":[7,35],\"245\":[7,40],\"246\":[6,27],\"247\":[9,39],\"248\":[7,25],\"249\":[6,44],\"250\":[7,24],\"251\":[9,36],\"252\":[9,28],\"253\":[11,42],\"254\":[9,36],\"255\":[7,22],\"256\":[7,25],\"257\":[7,47],\"258\":[7,48],\"259\":[8,32],\"260\":[7,24],\"261\":[7,50],\"262\":[9,53],\"263\":[1],\"264\":[9],\"265\":[3,23],\"266\":[4,18],\"267\":[5,22],\"268\":[5,22],\"269\":[4,20],\"270\":[4,20],\"271\":[4,36],\"272\":[5,51],\"273\":[4,53],\"274\":[3,25],\"275\":[4,28],\"276\":[1,31],\"277\":[1],\"278\":[2,11],\"279\":[2,79],\"280\":[3,42],\"281\":[3,69],\"282\":[4,42],\"283\":[1],\"284\":[2,31],\"285\":[3,279],\"286\":[3,306],\"287\":[1,28],\"288\":[1],\"289\":[2,11],\"290\":[2,79],\"291\":[3,42],\"292\":[3,69],\"293\":[4,42],\"294\":[1],\"295\":[2,31],\"296\":[3,281],\"297\":[3,288],\"298\":[6,34],\"299\":[5,113],\"300\":[5,222],\"301\":[6,34],\"302\":[5,73],\"303\":[5,202],\"304\":[6,28],\"305\":[5,73],\"306\":[5,163],\"307\":[5,37],\"308\":[5,75],\"309\":[5,116],\"310\":[5,38],\"311\":[5,75],\"312\":[5,116],\"313\":[4],\"314\":[7,66],\"315\":[1,47],\"316\":[4,29],\"317\":[4,24],\"318\":[4,29],\"319\":[4,30],\"320\":[4,32],\"321\":[8,31],\"322\":[4,2],\"323\":[3,179],\"324\":[4,4],\"325\":[4,41],\"326\":[1],\"327\":[8,81],\"328\":[4,113],\"329\":[6,70],\"330\":[3,59],\"331\":[2,48],\"332\":[2],\"333\":[5,27],\"334\":[5,191],\"335\":[4,4],\"336\":[4,20],\"337\":[1,84],\"338\":[2,65],\"339\":[4,4],\"340\":[4,38],\"341\":[1,37],\"342\":[2,96],\"343\":[3,97],\"344\":[5,126],\"345\":[2,92],\"346\":[2],\"347\":[5,27],\"348\":[5,126],\"349\":[4,4],\"350\":[4,60],\"351\":[1],\"352\":[6,117],\"353\":[12,79],\"354\":[4,48],\"355\":[4,28],\"356\":[4,20],\"357\":[3,52],\"358\":[3,65],\"359\":[3,65],\"360\":[2,89],\"361\":[2],\"362\":[5,27],\"363\":[5,141],\"364\":[4,4],\"365\":[4,32],\"366\":[1],\"367\":[2,42],\"368\":[2,46],\"369\":[4,45],\"370\":[2,54],\"371\":[2],\"372\":[5,27],\"373\":[5,102],\"374\":[8,4],\"375\":[8,39],\"376\":[1],\"377\":[5,92],\"378\":[2,24],\"379\":[6,71],\"380\":[4,48],\"381\":[4,28],\"382\":[4,20],\"383\":[3,52],\"384\":[3,65],\"385\":[3,66],\"386\":[2,98],\"387\":[2],\"388\":[5,27],\"389\":[5,169],\"390\":[1,43],\"391\":[1,41],\"392\":[2,27],\"393\":[3,35],\"394\":[2,83],\"395\":[4,46],\"396\":[5,46],\"397\":[2,23],\"398\":[2,24],\"399\":[1,23],\"400\":[2,35],\"401\":[4,39],\"402\":[1],\"403\":[2,55],\"404\":[2,41],\"405\":[2,15],\"406\":[4,15],\"407\":[1,17],\"408\":[1,16],\"409\":[1,46],\"410\":[1,54],\"411\":[3,118],\"412\":[5,66],\"413\":[2,134],\"414\":[1,44],\"415\":[1,210],\"416\":[3],\"417\":[1,11],\"418\":[5,44],\"419\":[6,40],\"420\":[4],\"421\":[1,24],\"422\":[3,11],\"423\":[1,71],\"424\":[1,53],\"425\":[2,81],\"426\":[2,19],\"427\":[1,65],\"428\":[1,17],\"429\":[1,57],\"430\":[5,58],\"431\":[1],\"432\":[2,11],\"433\":[2,75],\"434\":[3,59],\"435\":[3,74],\"436\":[1],\"437\":[2,31],\"438\":[3,259],\"439\":[3,220],\"440\":[1,85],\"441\":[2,40],\"442\":[6,142],\"443\":[5,28],\"444\":[5,59],\"445\":[5,97],\"446\":[3],\"447\":[1,11],\"448\":[5,40],\"449\":[6,40],\"450\":[4],\"451\":[1,11],\"452\":[3,27],\"453\":[1,87],\"454\":[1,46],\"455\":[2,63],\"456\":[4,72],\"457\":[1],\"458\":[2,11],\"459\":[2,75],\"460\":[3,59],\"461\":[3,74],\"462\":[1],\"463\":[2,31],\"464\":[3,266],\"465\":[3,229],\"466\":[1,92],\"467\":[2,40],\"468\":[6,69],\"469\":[3],\"470\":[1,11],\"471\":[5,40],\"472\":[6,40],\"473\":[4],\"474\":[1,22],\"475\":[3,27],\"476\":[1,87],\"477\":[1,47],\"478\":[2,63],\"479\":[4,72],\"480\":[1],\"481\":[2,11],\"482\":[2,75],\"483\":[3,59],\"484\":[3,74],\"485\":[1],\"486\":[2,31],\"487\":[3,257],\"488\":[3,231],\"489\":[1,92],\"490\":[2,40],\"491\":[6,69],\"492\":[5,28],\"493\":[5,58],\"494\":[5,96],\"495\":[3],\"496\":[1,11],\"497\":[5,40],\"498\":[6,40],\"499\":[4],\"500\":[1,23],\"501\":[3,27],\"502\":[1,87],\"503\":[1,47],\"504\":[2,63],\"505\":[5,72],\"506\":[1],\"507\":[2,11],\"508\":[2,75],\"509\":[3,59],\"510\":[3,74],\"511\":[1],\"512\":[2,31],\"513\":[3,259],\"514\":[3,232],\"515\":[1,92],\"516\":[2,40],\"517\":[6,69],\"518\":[5,29],\"519\":[5,122],\"520\":[5,142],\"521\":[3],\"522\":[1,11],\"523\":[5,40],\"524\":[6,40],\"525\":[4],\"526\":[1,23],\"527\":[3,11],\"528\":[1,77],\"529\":[1,52],\"530\":[2,80],\"531\":[2,11],\"532\":[2,15],\"533\":[2,14],\"534\":[2,10],\"535\":[5,58],\"536\":[1],\"537\":[2,11],\"538\":[2,75],\"539\":[3,59],\"540\":[3,74],\"541\":[1],\"542\":[2,31],\"543\":[3,259],\"544\":[3,232],\"545\":[1,92],\"546\":[2,40],\"547\":[6,142],\"548\":[6,38],\"549\":[5,59],\"550\":[5,97],\"551\":[3],\"552\":[1,11],\"553\":[5,40],\"554\":[6,40],\"555\":[4],\"556\":[1,23],\"557\":[3,11],\"558\":[1,71],\"559\":[1,53],\"560\":[2,81],\"561\":[2,11],\"562\":[2,15],\"563\":[2,14],\"564\":[2,10],\"565\":[4,58],\"566\":[1],\"567\":[2,11],\"568\":[2,75],\"569\":[3,59],\"570\":[3,74],\"571\":[1],\"572\":[2,31],\"573\":[3,258],\"574\":[3,219],\"575\":[1,92],\"576\":[2,40],\"577\":[6,142],\"578\":[6,28],\"579\":[5,58],\"580\":[5,96],\"581\":[3],\"582\":[1,11],\"583\":[5,40],\"584\":[6,40],\"585\":[4],\"586\":[1,23],\"587\":[3,11],\"588\":[1,71],\"589\":[1,53],\"590\":[2,81],\"591\":[2,11],\"592\":[2,15],\"593\":[2,19],\"594\":[2,10],\"595\":[5,58],\"596\":[1],\"597\":[2,11],\"598\":[2,75],\"599\":[3,59],\"600\":[3,74],\"601\":[1],\"602\":[2,31],\"603\":[3,259],\"604\":[3,220],\"605\":[1,92],\"606\":[2,40],\"607\":[6,142],\"608\":[5,28],\"609\":[5,58],\"610\":[5,96],\"611\":[2,35],\"612\":[4,39],\"613\":[1],\"614\":[2,55],\"615\":[2,41],\"616\":[2,15],\"617\":[4,15],\"618\":[1,17],\"619\":[1,16],\"620\":[1,46],\"621\":[1,54],\"622\":[3,118],\"623\":[5,66],\"624\":[2,134],\"625\":[1,44],\"626\":[1,210],\"627\":[3],\"628\":[1,11],\"629\":[5,44],\"630\":[6,40],\"631\":[4],\"632\":[1,23],\"633\":[3,11],\"634\":[1,71],\"635\":[1,53],\"636\":[2,81],\"637\":[2,11],\"638\":[2,15],\"639\":[2,18],\"640\":[2,10],\"641\":[5,58],\"642\":[1],\"643\":[2,11],\"644\":[2,75],\"645\":[3,59],\"646\":[3,74],\"647\":[1],\"648\":[2,31],\"649\":[3,259],\"650\":[3,220],\"651\":[1,92],\"652\":[2,40],\"653\":[6,142],\"654\":[6,29],\"655\":[5,60],\"656\":[5,98],\"657\":[2,35],\"658\":[4,39],\"659\":[1],\"660\":[2,55],\"661\":[2,41],\"662\":[2,15],\"663\":[4,15],\"664\":[1,17],\"665\":[1,16],\"666\":[1,46],\"667\":[1,54],\"668\":[3,118],\"669\":[5,66],\"670\":[2,134],\"671\":[1,44],\"672\":[1,210],\"673\":[3],\"674\":[1,11],\"675\":[5,44],\"676\":[6,40],\"677\":[4],\"678\":[1,23],\"679\":[3,11],\"680\":[1,71],\"681\":[1,53],\"682\":[2,81],\"683\":[2,11],\"684\":[2,15],\"685\":[2,18],\"686\":[2,10],\"687\":[5,58],\"688\":[1],\"689\":[2,11],\"690\":[2,75],\"691\":[3,59],\"692\":[3,74],\"693\":[1],\"694\":[2,31],\"695\":[3,259],\"696\":[3,220],\"697\":[1,92],\"698\":[2,40],\"699\":[6,142],\"700\":[6,29],\"701\":[5,60],\"702\":[5,98],\"703\":[2,35],\"704\":[4,39],\"705\":[1],\"706\":[2,55],\"707\":[2,41],\"708\":[2,15],\"709\":[4,15],\"710\":[1,17],\"711\":[1,16],\"712\":[1,46],\"713\":[1,54],\"714\":[3,118],\"715\":[5,66],\"716\":[2,134],\"717\":[1,44],\"718\":[1,210],\"719\":[3],\"720\":[1,11],\"721\":[5,44],\"722\":[6,40],\"723\":[4],\"724\":[1,23],\"725\":[3,11],\"726\":[1,71],\"727\":[1,53],\"728\":[2,81],\"729\":[2,11],\"730\":[2,15],\"731\":[2,20],\"732\":[2,10],\"733\":[4,58],\"734\":[1],\"735\":[2,11],\"736\":[2,75],\"737\":[3,59],\"738\":[3,74],\"739\":[1],\"740\":[2,31],\"741\":[3,258],\"742\":[3,219],\"743\":[1,85],\"744\":[2,40],\"745\":[6,142],\"746\":[6,28],\"747\":[5,59],\"748\":[5,97],\"749\":[2,35],\"750\":[4,39],\"751\":[1],\"752\":[2,55],\"753\":[2,41],\"754\":[2,15],\"755\":[4,15],\"756\":[1,17],\"757\":[1,16],\"758\":[1,46],\"759\":[1,54],\"760\":[3,118],\"761\":[5,66],\"762\":[2,134],\"763\":[1,44],\"764\":[1,210],\"765\":[3],\"766\":[1,11],\"767\":[5,44],\"768\":[6,40],\"769\":[4],\"770\":[1,24],\"771\":[3,11],\"772\":[1,71],\"773\":[1,53],\"774\":[2,81],\"775\":[2,19],\"776\":[1,65],\"777\":[1,17],\"778\":[1,57],\"779\":[5,58],\"780\":[1],\"781\":[2,11],\"782\":[2,75],\"783\":[3,59],\"784\":[3,74],\"785\":[1],\"786\":[2,31],\"787\":[3,259],\"788\":[3,220],\"789\":[1,85],\"790\":[2,40],\"791\":[6,142],\"792\":[5,28],\"793\":[5,59],\"794\":[5,97],\"795\":[2],\"796\":[1,6],\"797\":[2],\"798\":[1,126],\"799\":[2,25],\"800\":[1,28],\"801\":[1,51],\"802\":[4,22],\"803\":[4,11],\"804\":[2,19],\"805\":[2,11],\"806\":[1,61],\"807\":[2],\"808\":[5,19],\"809\":[5,16],\"810\":[7,21],\"811\":[8,35],\"812\":[8,39],\"813\":[9,22],\"814\":[7,31],\"815\":[7,26],\"816\":[7,26],\"817\":[8,31],\"818\":[10,48],\"819\":[13,44],\"820\":[8,19],\"821\":[8,19],\"822\":[10,40],\"823\":[9,23],\"824\":[8,42],\"825\":[4,21],\"826\":[5,22],\"827\":[5,23],\"828\":[8,24],\"829\":[5,22],\"830\":[5,15],\"831\":[5,16],\"832\":[6,31],\"833\":[6,20],\"834\":[8,37],\"835\":[6,24],\"836\":[5,42],\"837\":[7,26],\"838\":[9,38],\"839\":[7,33],\"840\":[6,23],\"841\":[8,34],\"842\":[6,20],\"843\":[7,39],\"844\":[7,38],\"845\":[7,35],\"846\":[7,35],\"847\":[7,50],\"848\":[7,52],\"849\":[7,38],\"850\":[6,34],\"851\":[8,45],\"852\":[11,41],\"853\":[8,35],\"854\":[8,36],\"855\":[7,28],\"856\":[8,34],\"857\":[8,35],\"858\":[7,27],\"859\":[9,44],\"860\":[9,32],\"861\":[7,26],\"862\":[8,32],\"863\":[8,28],\"864\":[8,31],\"865\":[6,42],\"866\":[8,53],\"867\":[11,42],\"868\":[5,15],\"869\":[5,15],\"870\":[5,34],\"871\":[5,40],\"872\":[7,36],\"873\":[5,15],\"874\":[5,25],\"875\":[5,28],\"876\":[5,30],\"877\":[6,36],\"878\":[9,39],\"879\":[5,28],\"880\":[5,26],\"881\":[8,48],\"882\":[5,27],\"883\":[5,20],\"884\":[6,18],\"885\":[6,28],\"886\":[6,28],\"887\":[5,53],\"888\":[8,33],\"889\":[8,29],\"890\":[6,42],\"891\":[5,46],\"892\":[5,31],\"893\":[6,25],\"894\":[5,20],\"895\":[7,23],\"896\":[6,27],\"897\":[4,42],\"898\":[6,27],\"899\":[4,29],\"900\":[4,14],\"901\":[2],\"902\":[1,61],\"903\":[3,57],\"904\":[4,50],\"905\":[1,51],\"906\":[3],\"907\":[1,2],\"908\":[2],\"909\":[3,23],\"910\":[4,18],\"911\":[5,22],\"912\":[5,22],\"913\":[4,20],\"914\":[4,20],\"915\":[3,26],\"916\":[4,36],\"917\":[5,51],\"918\":[4,53],\"919\":[3,25],\"920\":[4,28],\"921\":[3,21],\"922\":[2],\"923\":[1,6],\"924\":[2],\"925\":[1,138],\"926\":[2,25],\"927\":[1,28],\"928\":[1,51],\"929\":[4,22],\"930\":[4,11],\"931\":[2,29],\"932\":[2,80],\"933\":[1,74],\"934\":[2],\"935\":[5,32],\"936\":[7,43],\"937\":[10,39],\"938\":[6,35],\"939\":[6,34],\"940\":[8,41],\"941\":[5,26],\"942\":[6,31],\"943\":[6,20],\"944\":[8,37],\"945\":[6,24],\"946\":[5,42],\"947\":[6,23],\"948\":[8,34],\"949\":[8,27],\"950\":[10,40],\"951\":[8,33],\"952\":[6,20],\"953\":[7,39],\"954\":[7,38],\"955\":[7,38],\"956\":[6,24],\"957\":[6,47],\"958\":[7,31],\"959\":[6,28],\"960\":[6,23],\"961\":[5,20],\"962\":[7,23],\"963\":[6,27],\"964\":[4,42],\"965\":[6,27],\"966\":[4,29],\"967\":[4,14],\"968\":[5,19],\"969\":[5,16],\"970\":[7,21],\"971\":[8,35],\"972\":[8,39],\"973\":[9,22],\"974\":[7,31],\"975\":[7,26],\"976\":[7,26],\"977\":[8,31],\"978\":[10,48],\"979\":[13,44],\"980\":[8,19],\"981\":[8,19],\"982\":[10,40],\"983\":[9,23],\"984\":[8,42],\"985\":[4,21],\"986\":[5,22],\"987\":[5,23],\"988\":[8,24],\"989\":[5,22],\"990\":[5,15],\"991\":[5,16],\"992\":[2],\"993\":[1,69],\"994\":[3,57],\"995\":[3,25],\"996\":[4,50],\"997\":[1,51],\"998\":[3],\"999\":[1,2],\"1000\":[2],\"1001\":[3,23],\"1002\":[4,18],\"1003\":[5,22],\"1004\":[5,22],\"1005\":[4,20],\"1006\":[4,20],\"1007\":[3,26],\"1008\":[4,36],\"1009\":[5,51],\"1010\":[4,53],\"1011\":[3,25],\"1012\":[4,28],\"1013\":[3,21],\"1014\":[2],\"1015\":[1,7],\"1016\":[3,10],\"1017\":[6,31],\"1018\":[6,20],\"1019\":[8,37],\"1020\":[6,24],\"1021\":[5,43],\"1022\":[7,26],\"1023\":[9,38],\"1024\":[7,34],\"1025\":[6,23],\"1026\":[8,34],\"1027\":[6,21],\"1028\":[7,35],\"1029\":[7,35],\"1030\":[7,51],\"1031\":[6,34],\"1032\":[8,45],\"1033\":[11,41],\"1034\":[8,35],\"1035\":[8,36],\"1036\":[7,28],\"1037\":[8,34],\"1038\":[8,35],\"1039\":[7,27],\"1040\":[9,44],\"1041\":[9,32],\"1042\":[7,26],\"1043\":[8,32],\"1044\":[8,32],\"1045\":[8,28],\"1046\":[8,31],\"1047\":[6,42],\"1048\":[8,53],\"1049\":[11,42],\"1050\":[5,15],\"1051\":[5,15],\"1052\":[5,34],\"1053\":[5,40],\"1054\":[7,36],\"1055\":[5,15],\"1056\":[5,25],\"1057\":[5,28],\"1058\":[5,30],\"1059\":[6,36],\"1060\":[9,39],\"1061\":[5,28],\"1062\":[5,26],\"1063\":[8,48],\"1064\":[5,27],\"1065\":[5,20],\"1066\":[5,46],\"1067\":[8,33],\"1068\":[8,29],\"1069\":[6,42],\"1070\":[5,42],\"1071\":[4,42],\"1072\":[6,27],\"1073\":[4,29],\"1074\":[4,14],\"1075\":[2],\"1076\":[5,19],\"1077\":[5,16],\"1078\":[7,21],\"1079\":[8,35],\"1080\":[8,39],\"1081\":[9,22],\"1082\":[7,31],\"1083\":[7,26],\"1084\":[7,26],\"1085\":[8,31],\"1086\":[10,48],\"1087\":[13,44],\"1088\":[8,19],\"1089\":[8,19],\"1090\":[10,40],\"1091\":[9,23],\"1092\":[8,42],\"1093\":[4,21],\"1094\":[5,22],\"1095\":[5,23],\"1096\":[8,24],\"1097\":[5,22],\"1098\":[5,15],\"1099\":[5,16],\"1100\":[3,10],\"1101\":[5,32],\"1102\":[7,43],\"1103\":[10,39],\"1104\":[6,35],\"1105\":[6,34],\"1106\":[8,41],\"1107\":[5,26],\"1108\":[6,31],\"1109\":[6,20],\"1110\":[8,37],\"1111\":[6,24],\"1112\":[5,43],\"1113\":[6,23],\"1114\":[8,34],\"1115\":[8,27],\"1116\":[10,40],\"1117\":[8,34],\"1118\":[6,21],\"1119\":[6,24],\"1120\":[6,47],\"1121\":[7,31],\"1122\":[6,23],\"1123\":[5,12],\"1124\":[7,23],\"1125\":[4,42],\"1126\":[6,27],\"1127\":[4,29],\"1128\":[4,14],\"1129\":[4],\"1130\":[3,23],\"1131\":[4,18],\"1132\":[5,22],\"1133\":[5,22],\"1134\":[4,20],\"1135\":[4,20],\"1136\":[4,36],\"1137\":[5,51],\"1138\":[4,53],\"1139\":[3,25],\"1140\":[4,28],\"1141\":[2],\"1142\":[1,2],\"1143\":[2],\"1144\":[5,19],\"1145\":[5,16],\"1146\":[7,21],\"1147\":[8,35],\"1148\":[8,39],\"1149\":[9,22],\"1150\":[7,31],\"1151\":[7,26],\"1152\":[7,26],\"1153\":[8,31],\"1154\":[10,48],\"1155\":[13,44],\"1156\":[8,19],\"1157\":[8,19],\"1158\":[10,40],\"1159\":[9,23],\"1160\":[8,42],\"1161\":[4,21],\"1162\":[5,22],\"1163\":[5,23],\"1164\":[8,24],\"1165\":[5,22],\"1166\":[5,15],\"1167\":[5,16],\"1168\":[6,31],\"1169\":[6,20],\"1170\":[8,37],\"1171\":[6,24],\"1172\":[5,43],\"1173\":[7,26],\"1174\":[9,38],\"1175\":[7,34],\"1176\":[6,23],\"1177\":[8,34],\"1178\":[6,21],\"1179\":[7,35],\"1180\":[7,35],\"1181\":[7,51],\"1182\":[6,34],\"1183\":[8,45],\"1184\":[11,41],\"1185\":[8,35],\"1186\":[8,36],\"1187\":[7,28],\"1188\":[8,34],\"1189\":[8,35],\"1190\":[7,27],\"1191\":[9,44],\"1192\":[9,32],\"1193\":[7,26],\"1194\":[8,32],\"1195\":[8,32],\"1196\":[8,28],\"1197\":[8,31],\"1198\":[6,42],\"1199\":[8,53],\"1200\":[11,42],\"1201\":[5,15],\"1202\":[5,15],\"1203\":[5,34],\"1204\":[5,40],\"1205\":[7,36],\"1206\":[5,15],\"1207\":[5,25],\"1208\":[5,28],\"1209\":[5,30],\"1210\":[6,36],\"1211\":[9,39],\"1212\":[5,28],\"1213\":[5,26],\"1214\":[8,48],\"1215\":[5,27],\"1216\":[5,20],\"1217\":[5,46],\"1218\":[8,33],\"1219\":[8,29],\"1220\":[6,42],\"1221\":[5,42],\"1222\":[4,42],\"1223\":[6,27],\"1224\":[4,29],\"1225\":[4,14],\"1226\":[2],\"1227\":[1,6],\"1228\":[2],\"1229\":[1,133],\"1230\":[2,25],\"1231\":[1,28],\"1232\":[1,51],\"1233\":[4,22],\"1234\":[4,11],\"1235\":[2,29],\"1236\":[2,80],\"1237\":[1,74],\"1238\":[2],\"1239\":[5,32],\"1240\":[7,43],\"1241\":[10,39],\"1242\":[6,35],\"1243\":[6,34],\"1244\":[8,41],\"1245\":[5,26],\"1246\":[6,31],\"1247\":[6,20],\"1248\":[8,37],\"1249\":[6,24],\"1250\":[5,43],\"1251\":[6,23],\"1252\":[8,34],\"1253\":[8,27],\"1254\":[10,40],\"1255\":[8,34],\"1256\":[6,21],\"1257\":[6,24],\"1258\":[6,47],\"1259\":[7,31],\"1260\":[6,28],\"1261\":[6,23],\"1262\":[5,37],\"1263\":[7,23],\"1264\":[4,42],\"1265\":[6,27],\"1266\":[4,29],\"1267\":[4,14],\"1268\":[5,19],\"1269\":[5,16],\"1270\":[7,21],\"1271\":[8,35],\"1272\":[8,39],\"1273\":[9,22],\"1274\":[7,31],\"1275\":[7,26],\"1276\":[7,26],\"1277\":[8,31],\"1278\":[10,48],\"1279\":[13,44],\"1280\":[8,19],\"1281\":[8,19],\"1282\":[10,40],\"1283\":[9,23],\"1284\":[8,42],\"1285\":[4,21],\"1286\":[5,22],\"1287\":[5,23],\"1288\":[8,24],\"1289\":[5,22],\"1290\":[5,15],\"1291\":[5,16],\"1292\":[2],\"1293\":[1,68],\"1294\":[3,57],\"1295\":[3,25],\"1296\":[4,50],\"1297\":[1,50],\"1298\":[3],\"1299\":[1,2],\"1300\":[2],\"1301\":[3,23],\"1302\":[4,18],\"1303\":[5,22],\"1304\":[5,22],\"1305\":[4,20],\"1306\":[4,20],\"1307\":[4,36],\"1308\":[5,51],\"1309\":[4,53],\"1310\":[3,25],\"1311\":[4,28],\"1312\":[3,21],\"1313\":[2],\"1314\":[1,2],\"1315\":[2],\"1316\":[5,19],\"1317\":[5,16],\"1318\":[7,21],\"1319\":[8,35],\"1320\":[8,39],\"1321\":[9,22],\"1322\":[7,31],\"1323\":[7,26],\"1324\":[7,26],\"1325\":[8,31],\"1326\":[10,48],\"1327\":[13,44],\"1328\":[8,19],\"1329\":[8,19],\"1330\":[10,40],\"1331\":[9,23],\"1332\":[8,42],\"1333\":[4,21],\"1334\":[5,22],\"1335\":[5,23],\"1336\":[8,24],\"1337\":[5,22],\"1338\":[5,15],\"1339\":[5,16],\"1340\":[6,31],\"1341\":[6,20],\"1342\":[8,37],\"1343\":[6,24],\"1344\":[5,43],\"1345\":[7,26],\"1346\":[9,38],\"1347\":[7,34],\"1348\":[6,23],\"1349\":[8,34],\"1350\":[6,21],\"1351\":[7,35],\"1352\":[7,35],\"1353\":[7,50],\"1354\":[7,52],\"1355\":[6,34],\"1356\":[8,45],\"1357\":[11,41],\"1358\":[8,35],\"1359\":[8,36],\"1360\":[7,28],\"1361\":[8,34],\"1362\":[8,35],\"1363\":[7,27],\"1364\":[9,44],\"1365\":[9,32],\"1366\":[7,26],\"1367\":[8,32],\"1368\":[8,28],\"1369\":[8,31],\"1370\":[6,42],\"1371\":[8,53],\"1372\":[11,42],\"1373\":[5,15],\"1374\":[5,15],\"1375\":[5,34],\"1376\":[5,40],\"1377\":[7,36],\"1378\":[5,15],\"1379\":[5,25],\"1380\":[5,28],\"1381\":[5,30],\"1382\":[6,36],\"1383\":[9,39],\"1384\":[5,28],\"1385\":[5,26],\"1386\":[8,48],\"1387\":[5,27],\"1388\":[5,20],\"1389\":[6,18],\"1390\":[6,28],\"1391\":[6,28],\"1392\":[5,53],\"1393\":[8,33],\"1394\":[8,29],\"1395\":[6,42],\"1396\":[5,46],\"1397\":[5,31],\"1398\":[4,42],\"1399\":[6,27],\"1400\":[4,29],\"1401\":[4,14],\"1402\":[2],\"1403\":[1,6],\"1404\":[2],\"1405\":[1,133],\"1406\":[2,25],\"1407\":[1,28],\"1408\":[1,51],\"1409\":[4,22],\"1410\":[4,11],\"1411\":[2,29],\"1412\":[2,80],\"1413\":[1,74],\"1414\":[2],\"1415\":[5,32],\"1416\":[7,43],\"1417\":[10,39],\"1418\":[6,35],\"1419\":[6,34],\"1420\":[8,41],\"1421\":[5,26],\"1422\":[6,31],\"1423\":[6,20],\"1424\":[8,37],\"1425\":[6,24],\"1426\":[5,43],\"1427\":[6,23],\"1428\":[8,34],\"1429\":[8,27],\"1430\":[10,40],\"1431\":[8,34],\"1432\":[6,21],\"1433\":[6,24],\"1434\":[6,47],\"1435\":[7,31],\"1436\":[6,28],\"1437\":[6,23],\"1438\":[5,20],\"1439\":[7,23],\"1440\":[4,42],\"1441\":[6,27],\"1442\":[4,29],\"1443\":[4,14],\"1444\":[5,19],\"1445\":[5,16],\"1446\":[7,21],\"1447\":[8,35],\"1448\":[8,39],\"1449\":[9,22],\"1450\":[7,31],\"1451\":[7,26],\"1452\":[7,26],\"1453\":[8,31],\"1454\":[10,48],\"1455\":[13,44],\"1456\":[8,19],\"1457\":[8,19],\"1458\":[10,40],\"1459\":[9,23],\"1460\":[8,42],\"1461\":[4,21],\"1462\":[5,22],\"1463\":[5,23],\"1464\":[8,24],\"1465\":[5,22],\"1466\":[5,15],\"1467\":[5,16],\"1468\":[2],\"1469\":[1,68],\"1470\":[3,57],\"1471\":[3,25],\"1472\":[4,50],\"1473\":[1,51],\"1474\":[3],\"1475\":[1,2],\"1476\":[2],\"1477\":[3,23],\"1478\":[4,18],\"1479\":[5,22],\"1480\":[5,22],\"1481\":[4,20],\"1482\":[4,20],\"1483\":[3,26],\"1484\":[4,36],\"1485\":[5,51],\"1486\":[4,53],\"1487\":[3,25],\"1488\":[4,28],\"1489\":[3,21],\"1490\":[2],\"1491\":[1,2],\"1492\":[2],\"1493\":[5,19],\"1494\":[5,16],\"1495\":[7,21],\"1496\":[8,35],\"1497\":[8,39],\"1498\":[9,22],\"1499\":[7,31],\"1500\":[7,26],\"1501\":[7,26],\"1502\":[8,31],\"1503\":[10,48],\"1504\":[13,44],\"1505\":[8,19],\"1506\":[8,19],\"1507\":[10,40],\"1508\":[9,23],\"1509\":[8,42],\"1510\":[4,21],\"1511\":[5,22],\"1512\":[5,23],\"1513\":[8,24],\"1514\":[5,22],\"1515\":[5,15],\"1516\":[5,16],\"1517\":[6,31],\"1518\":[6,20],\"1519\":[8,37],\"1520\":[6,24],\"1521\":[5,43],\"1522\":[7,26],\"1523\":[9,38],\"1524\":[7,34],\"1525\":[6,23],\"1526\":[8,34],\"1527\":[6,21],\"1528\":[7,35],\"1529\":[7,35],\"1530\":[7,50],\"1531\":[7,52],\"1532\":[6,34],\"1533\":[8,45],\"1534\":[11,41],\"1535\":[8,35],\"1536\":[8,36],\"1537\":[7,28],\"1538\":[8,34],\"1539\":[8,35],\"1540\":[7,27],\"1541\":[9,44],\"1542\":[9,32],\"1543\":[7,26],\"1544\":[8,32],\"1545\":[8,28],\"1546\":[8,31],\"1547\":[6,42],\"1548\":[8,53],\"1549\":[11,42],\"1550\":[5,15],\"1551\":[5,15],\"1552\":[5,34],\"1553\":[5,40],\"1554\":[7,36],\"1555\":[5,15],\"1556\":[5,25],\"1557\":[5,28],\"1558\":[5,30],\"1559\":[6,36],\"1560\":[9,39],\"1561\":[5,28],\"1562\":[5,26],\"1563\":[8,48],\"1564\":[5,27],\"1565\":[5,20],\"1566\":[6,18],\"1567\":[6,28],\"1568\":[6,28],\"1569\":[5,53],\"1570\":[8,33],\"1571\":[8,29],\"1572\":[6,42],\"1573\":[5,46],\"1574\":[5,31],\"1575\":[4,42],\"1576\":[6,27],\"1577\":[4,29],\"1578\":[4,14],\"1579\":[2],\"1580\":[1,6],\"1581\":[2],\"1582\":[1,133],\"1583\":[2,25],\"1584\":[1,28],\"1585\":[1,51],\"1586\":[4,22],\"1587\":[4,11],\"1588\":[2,29],\"1589\":[2,80],\"1590\":[1,74],\"1591\":[2],\"1592\":[5,32],\"1593\":[7,43],\"1594\":[10,39],\"1595\":[6,35],\"1596\":[6,34],\"1597\":[8,41],\"1598\":[5,26],\"1599\":[6,31],\"1600\":[6,20],\"1601\":[8,37],\"1602\":[6,24],\"1603\":[5,43],\"1604\":[6,23],\"1605\":[8,34],\"1606\":[8,27],\"1607\":[10,40],\"1608\":[8,34],\"1609\":[6,21],\"1610\":[6,24],\"1611\":[6,47],\"1612\":[7,31],\"1613\":[6,28],\"1614\":[6,23],\"1615\":[5,20],\"1616\":[7,23],\"1617\":[4,42],\"1618\":[6,27],\"1619\":[4,29],\"1620\":[4,14],\"1621\":[5,19],\"1622\":[5,16],\"1623\":[7,21],\"1624\":[8,35],\"1625\":[8,39],\"1626\":[9,22],\"1627\":[7,31],\"1628\":[7,26],\"1629\":[7,26],\"1630\":[8,31],\"1631\":[10,48],\"1632\":[13,44],\"1633\":[8,19],\"1634\":[8,19],\"1635\":[10,40],\"1636\":[9,23],\"1637\":[8,42],\"1638\":[4,21],\"1639\":[5,22],\"1640\":[5,23],\"1641\":[8,24],\"1642\":[5,22],\"1643\":[5,15],\"1644\":[5,16],\"1645\":[2],\"1646\":[1,68],\"1647\":[3,57],\"1648\":[3,25],\"1649\":[4,50],\"1650\":[1,51],\"1651\":[3],\"1652\":[1,2],\"1653\":[2],\"1654\":[3,23],\"1655\":[4,18],\"1656\":[5,22],\"1657\":[5,22],\"1658\":[4,20],\"1659\":[4,20],\"1660\":[3,26],\"1661\":[4,36],\"1662\":[5,51],\"1663\":[4,53],\"1664\":[3,25],\"1665\":[4,28],\"1666\":[3,21],\"1667\":[2],\"1668\":[1,2],\"1669\":[2],\"1670\":[5,19],\"1671\":[5,16],\"1672\":[7,21],\"1673\":[8,35],\"1674\":[8,39],\"1675\":[9,22],\"1676\":[7,31],\"1677\":[7,26],\"1678\":[7,26],\"1679\":[8,31],\"1680\":[10,48],\"1681\":[13,44],\"1682\":[8,19],\"1683\":[8,19],\"1684\":[10,40],\"1685\":[9,23],\"1686\":[8,42],\"1687\":[4,21],\"1688\":[5,22],\"1689\":[5,23],\"1690\":[8,24],\"1691\":[5,22],\"1692\":[5,15],\"1693\":[5,16],\"1694\":[6,31],\"1695\":[6,20],\"1696\":[8,37],\"1697\":[6,24],\"1698\":[5,43],\"1699\":[7,26],\"1700\":[9,38],\"1701\":[7,34],\"1702\":[6,23],\"1703\":[8,34],\"1704\":[6,21],\"1705\":[7,35],\"1706\":[7,35],\"1707\":[7,50],\"1708\":[7,52],\"1709\":[6,34],\"1710\":[8,45],\"1711\":[11,41],\"1712\":[8,35],\"1713\":[8,36],\"1714\":[7,28],\"1715\":[8,34],\"1716\":[8,35],\"1717\":[7,27],\"1718\":[9,44],\"1719\":[9,32],\"1720\":[7,26],\"1721\":[8,32],\"1722\":[8,28],\"1723\":[8,31],\"1724\":[6,42],\"1725\":[8,53],\"1726\":[11,42],\"1727\":[5,15],\"1728\":[5,15],\"1729\":[5,34],\"1730\":[5,40],\"1731\":[7,36],\"1732\":[5,15],\"1733\":[5,25],\"1734\":[5,28],\"1735\":[5,30],\"1736\":[6,36],\"1737\":[9,39],\"1738\":[5,28],\"1739\":[5,26],\"1740\":[8,48],\"1741\":[5,27],\"1742\":[5,20],\"1743\":[6,18],\"1744\":[6,28],\"1745\":[6,28],\"1746\":[5,53],\"1747\":[8,33],\"1748\":[8,29],\"1749\":[6,42],\"1750\":[5,46],\"1751\":[5,31],\"1752\":[4,42],\"1753\":[6,27],\"1754\":[4,29],\"1755\":[4,14],\"1756\":[2],\"1757\":[1,6],\"1758\":[2],\"1759\":[1,133],\"1760\":[2,25],\"1761\":[1,28],\"1762\":[1,51],\"1763\":[4,22],\"1764\":[4,11],\"1765\":[2,29],\"1766\":[2,80],\"1767\":[1,74],\"1768\":[2],\"1769\":[5,32],\"1770\":[7,43],\"1771\":[10,39],\"1772\":[6,35],\"1773\":[6,34],\"1774\":[8,41],\"1775\":[5,26],\"1776\":[6,31],\"1777\":[6,20],\"1778\":[8,37],\"1779\":[6,24],\"1780\":[5,43],\"1781\":[6,23],\"1782\":[8,34],\"1783\":[8,27],\"1784\":[10,40],\"1785\":[8,34],\"1786\":[6,21],\"1787\":[6,24],\"1788\":[6,47],\"1789\":[7,31],\"1790\":[6,28],\"1791\":[6,23],\"1792\":[5,20],\"1793\":[7,23],\"1794\":[4,42],\"1795\":[6,27],\"1796\":[4,29],\"1797\":[4,14],\"1798\":[5,19],\"1799\":[5,16],\"1800\":[7,21],\"1801\":[8,35],\"1802\":[8,39],\"1803\":[9,22],\"1804\":[7,31],\"1805\":[7,26],\"1806\":[7,26],\"1807\":[8,31],\"1808\":[10,48],\"1809\":[13,44],\"1810\":[8,19],\"1811\":[8,19],\"1812\":[10,40],\"1813\":[9,23],\"1814\":[8,42],\"1815\":[4,21],\"1816\":[5,22],\"1817\":[5,23],\"1818\":[8,24],\"1819\":[5,22],\"1820\":[5,15],\"1821\":[5,16],\"1822\":[2],\"1823\":[1,68],\"1824\":[3,57],\"1825\":[3,25],\"1826\":[4,50],\"1827\":[1,50],\"1828\":[3],\"1829\":[1,2],\"1830\":[2],\"1831\":[3,23],\"1832\":[4,18],\"1833\":[5,22],\"1834\":[5,22],\"1835\":[4,20],\"1836\":[4,20],\"1837\":[3,26],\"1838\":[4,36],\"1839\":[5,51],\"1840\":[4,53],\"1841\":[3,25],\"1842\":[4,28],\"1843\":[3,21],\"1844\":[2],\"1845\":[1,2],\"1846\":[2],\"1847\":[5,19],\"1848\":[5,16],\"1849\":[7,21],\"1850\":[8,35],\"1851\":[8,39],\"1852\":[9,22],\"1853\":[7,31],\"1854\":[7,26],\"1855\":[7,26],\"1856\":[8,31],\"1857\":[10,48],\"1858\":[13,44],\"1859\":[8,19],\"1860\":[8,19],\"1861\":[10,40],\"1862\":[9,23],\"1863\":[8,42],\"1864\":[4,21],\"1865\":[5,22],\"1866\":[5,23],\"1867\":[8,24],\"1868\":[5,22],\"1869\":[5,15],\"1870\":[5,16],\"1871\":[6,31],\"1872\":[6,20],\"1873\":[8,37],\"1874\":[6,24],\"1875\":[5,43],\"1876\":[7,26],\"1877\":[9,38],\"1878\":[7,34],\"1879\":[6,23],\"1880\":[8,34],\"1881\":[6,21],\"1882\":[7,35],\"1883\":[7,35],\"1884\":[7,50],\"1885\":[7,52],\"1886\":[6,34],\"1887\":[8,45],\"1888\":[11,41],\"1889\":[8,35],\"1890\":[8,36],\"1891\":[7,28],\"1892\":[8,34],\"1893\":[8,35],\"1894\":[7,27],\"1895\":[9,44],\"1896\":[9,32],\"1897\":[7,26],\"1898\":[8,32],\"1899\":[8,28],\"1900\":[8,31],\"1901\":[6,42],\"1902\":[8,53],\"1903\":[11,42],\"1904\":[5,15],\"1905\":[5,15],\"1906\":[5,34],\"1907\":[5,40],\"1908\":[7,36],\"1909\":[5,15],\"1910\":[5,25],\"1911\":[5,28],\"1912\":[5,30],\"1913\":[6,36],\"1914\":[9,39],\"1915\":[5,28],\"1916\":[5,26],\"1917\":[8,48],\"1918\":[5,27],\"1919\":[5,20],\"1920\":[6,18],\"1921\":[6,28],\"1922\":[6,28],\"1923\":[5,53],\"1924\":[8,33],\"1925\":[8,29],\"1926\":[6,42],\"1927\":[5,46],\"1928\":[5,31],\"1929\":[4,42],\"1930\":[6,27],\"1931\":[4,29],\"1932\":[4,14],\"1933\":[2],\"1934\":[1,6],\"1935\":[2],\"1936\":[1,133],\"1937\":[2,25],\"1938\":[1,28],\"1939\":[1,51],\"1940\":[4,22],\"1941\":[4,11],\"1942\":[2,29],\"1943\":[2,80],\"1944\":[1,74],\"1945\":[2],\"1946\":[5,32],\"1947\":[7,43],\"1948\":[10,39],\"1949\":[6,35],\"1950\":[6,34],\"1951\":[8,41],\"1952\":[5,26],\"1953\":[6,31],\"1954\":[6,20],\"1955\":[8,37],\"1956\":[6,24],\"1957\":[5,43],\"1958\":[6,23],\"1959\":[8,34],\"1960\":[8,27],\"1961\":[10,40],\"1962\":[8,34],\"1963\":[6,21],\"1964\":[6,24],\"1965\":[6,47],\"1966\":[7,31],\"1967\":[6,28],\"1968\":[6,23],\"1969\":[5,20],\"1970\":[7,23],\"1971\":[4,42],\"1972\":[6,27],\"1973\":[4,29],\"1974\":[4,14],\"1975\":[5,19],\"1976\":[5,16],\"1977\":[7,21],\"1978\":[8,35],\"1979\":[8,39],\"1980\":[9,22],\"1981\":[7,31],\"1982\":[7,26],\"1983\":[7,26],\"1984\":[8,31],\"1985\":[10,48],\"1986\":[13,44],\"1987\":[8,19],\"1988\":[8,19],\"1989\":[10,40],\"1990\":[9,23],\"1991\":[8,42],\"1992\":[4,21],\"1993\":[5,22],\"1994\":[5,23],\"1995\":[8,24],\"1996\":[5,22],\"1997\":[5,15],\"1998\":[5,16],\"1999\":[2],\"2000\":[1,68],\"2001\":[3,57],\"2002\":[3,25],\"2003\":[4,50],\"2004\":[1,51],\"2005\":[3],\"2006\":[1,2],\"2007\":[2],\"2008\":[3,23],\"2009\":[4,18],\"2010\":[5,22],\"2011\":[5,22],\"2012\":[4,20],\"2013\":[4,20],\"2014\":[3,26],\"2015\":[4,36],\"2016\":[5,51],\"2017\":[4,53],\"2018\":[3,25],\"2019\":[4,28],\"2020\":[3,21],\"2021\":[2],\"2022\":[1,2],\"2023\":[2],\"2024\":[5,19],\"2025\":[5,16],\"2026\":[7,21],\"2027\":[8,35],\"2028\":[8,39],\"2029\":[9,22],\"2030\":[7,31],\"2031\":[7,26],\"2032\":[7,26],\"2033\":[8,31],\"2034\":[10,48],\"2035\":[13,44],\"2036\":[8,19],\"2037\":[8,19],\"2038\":[10,40],\"2039\":[9,23],\"2040\":[8,42],\"2041\":[4,21],\"2042\":[5,22],\"2043\":[5,23],\"2044\":[8,24],\"2045\":[5,22],\"2046\":[5,15],\"2047\":[5,16],\"2048\":[6,31],\"2049\":[6,20],\"2050\":[8,37],\"2051\":[6,24],\"2052\":[5,43],\"2053\":[7,26],\"2054\":[9,38],\"2055\":[7,34],\"2056\":[6,23],\"2057\":[8,34],\"2058\":[6,21],\"2059\":[7,35],\"2060\":[7,35],\"2061\":[7,50],\"2062\":[7,52],\"2063\":[6,34],\"2064\":[8,45],\"2065\":[11,41],\"2066\":[8,35],\"2067\":[8,36],\"2068\":[7,28],\"2069\":[8,34],\"2070\":[8,35],\"2071\":[7,27],\"2072\":[9,44],\"2073\":[9,32],\"2074\":[7,26],\"2075\":[8,32],\"2076\":[8,28],\"2077\":[8,31],\"2078\":[6,42],\"2079\":[8,53],\"2080\":[11,42],\"2081\":[5,15],\"2082\":[5,15],\"2083\":[5,34],\"2084\":[5,40],\"2085\":[7,36],\"2086\":[5,15],\"2087\":[5,25],\"2088\":[5,28],\"2089\":[5,30],\"2090\":[6,36],\"2091\":[9,39],\"2092\":[5,28],\"2093\":[5,26],\"2094\":[8,48],\"2095\":[5,27],\"2096\":[5,20],\"2097\":[6,18],\"2098\":[6,28],\"2099\":[6,28],\"2100\":[5,53],\"2101\":[8,33],\"2102\":[8,29],\"2103\":[6,42],\"2104\":[5,46],\"2105\":[5,31],\"2106\":[4,42],\"2107\":[6,27],\"2108\":[4,29],\"2109\":[4,14],\"2110\":[2],\"2111\":[1,6],\"2112\":[2],\"2113\":[1,133],\"2114\":[2,25],\"2115\":[1,28],\"2116\":[1,51],\"2117\":[4,22],\"2118\":[4,11],\"2119\":[2,29],\"2120\":[2,80],\"2121\":[1,74],\"2122\":[2],\"2123\":[5,32],\"2124\":[7,43],\"2125\":[10,39],\"2126\":[6,35],\"2127\":[6,34],\"2128\":[8,41],\"2129\":[5,26],\"2130\":[6,31],\"2131\":[6,20],\"2132\":[8,37],\"2133\":[6,24],\"2134\":[5,43],\"2135\":[6,23],\"2136\":[8,34],\"2137\":[8,27],\"2138\":[10,40],\"2139\":[8,34],\"2140\":[6,21],\"2141\":[6,24],\"2142\":[6,47],\"2143\":[7,31],\"2144\":[6,28],\"2145\":[6,23],\"2146\":[5,20],\"2147\":[7,23],\"2148\":[4,42],\"2149\":[6,27],\"2150\":[4,29],\"2151\":[4,14],\"2152\":[5,19],\"2153\":[5,16],\"2154\":[7,21],\"2155\":[8,35],\"2156\":[8,39],\"2157\":[9,22],\"2158\":[7,31],\"2159\":[7,26],\"2160\":[7,26],\"2161\":[8,31],\"2162\":[10,48],\"2163\":[13,44],\"2164\":[8,19],\"2165\":[8,19],\"2166\":[10,40],\"2167\":[9,23],\"2168\":[8,42],\"2169\":[4,21],\"2170\":[5,22],\"2171\":[5,23],\"2172\":[8,24],\"2173\":[5,22],\"2174\":[5,15],\"2175\":[5,16],\"2176\":[2],\"2177\":[1,68],\"2178\":[3,57],\"2179\":[3,25],\"2180\":[4,50],\"2181\":[1,51],\"2182\":[3],\"2183\":[1,2],\"2184\":[2],\"2185\":[3,23],\"2186\":[4,18],\"2187\":[5,22],\"2188\":[5,22],\"2189\":[4,20],\"2190\":[4,20],\"2191\":[3,26],\"2192\":[4,36],\"2193\":[5,51],\"2194\":[4,53],\"2195\":[3,25],\"2196\":[4,28],\"2197\":[3,21],\"2198\":[2],\"2199\":[1,6],\"2200\":[2],\"2201\":[1,126],\"2202\":[2,25],\"2203\":[1,28],\"2204\":[1,51],\"2205\":[4,22],\"2206\":[4,11],\"2207\":[2,19],\"2208\":[2,11],\"2209\":[1,61],\"2210\":[2],\"2211\":[5,19],\"2212\":[5,16],\"2213\":[7,21],\"2214\":[8,35],\"2215\":[8,39],\"2216\":[9,22],\"2217\":[7,31],\"2218\":[7,26],\"2219\":[7,26],\"2220\":[8,31],\"2221\":[10,48],\"2222\":[13,44],\"2223\":[8,19],\"2224\":[8,19],\"2225\":[10,40],\"2226\":[9,23],\"2227\":[8,42],\"2228\":[4,21],\"2229\":[5,22],\"2230\":[5,23],\"2231\":[8,24],\"2232\":[5,22],\"2233\":[5,15],\"2234\":[5,16],\"2235\":[6,31],\"2236\":[6,20],\"2237\":[8,37],\"2238\":[6,24],\"2239\":[5,42],\"2240\":[7,26],\"2241\":[9,38],\"2242\":[7,33],\"2243\":[6,23],\"2244\":[8,34],\"2245\":[6,20],\"2246\":[7,39],\"2247\":[7,38],\"2248\":[7,35],\"2249\":[7,35],\"2250\":[7,50],\"2251\":[7,52],\"2252\":[7,38],\"2253\":[6,34],\"2254\":[8,45],\"2255\":[11,41],\"2256\":[8,35],\"2257\":[8,36],\"2258\":[7,28],\"2259\":[8,34],\"2260\":[8,35],\"2261\":[7,27],\"2262\":[9,44],\"2263\":[9,32],\"2264\":[7,26],\"2265\":[8,32],\"2266\":[8,28],\"2267\":[8,31],\"2268\":[6,42],\"2269\":[8,53],\"2270\":[11,42],\"2271\":[5,15],\"2272\":[5,15],\"2273\":[5,34],\"2274\":[5,40],\"2275\":[7,36],\"2276\":[5,15],\"2277\":[5,25],\"2278\":[5,28],\"2279\":[5,30],\"2280\":[6,36],\"2281\":[9,39],\"2282\":[5,28],\"2283\":[5,26],\"2284\":[8,48],\"2285\":[5,27],\"2286\":[5,20],\"2287\":[6,18],\"2288\":[6,28],\"2289\":[6,28],\"2290\":[5,53],\"2291\":[8,33],\"2292\":[8,29],\"2293\":[6,42],\"2294\":[5,46],\"2295\":[5,31],\"2296\":[6,25],\"2297\":[5,20],\"2298\":[7,23],\"2299\":[6,27],\"2300\":[4,42],\"2301\":[6,27],\"2302\":[4,29],\"2303\":[4,14],\"2304\":[2],\"2305\":[1,61],\"2306\":[3,57],\"2307\":[4,50],\"2308\":[1,51],\"2309\":[3],\"2310\":[1,2],\"2311\":[2],\"2312\":[3,23],\"2313\":[4,18],\"2314\":[5,22],\"2315\":[5,22],\"2316\":[4,20],\"2317\":[4,20],\"2318\":[3,26],\"2319\":[4,36],\"2320\":[5,51],\"2321\":[4,53],\"2322\":[3,25],\"2323\":[4,28],\"2324\":[3,21],\"2325\":[2],\"2326\":[1,6],\"2327\":[2],\"2328\":[1,138],\"2329\":[2,25],\"2330\":[1,28],\"2331\":[1,51],\"2332\":[4,22],\"2333\":[4,11],\"2334\":[2,29],\"2335\":[2,80],\"2336\":[1,74],\"2337\":[2],\"2338\":[5,32],\"2339\":[7,43],\"2340\":[10,39],\"2341\":[6,35],\"2342\":[6,34],\"2343\":[8,41],\"2344\":[5,26],\"2345\":[6,31],\"2346\":[6,20],\"2347\":[8,37],\"2348\":[6,24],\"2349\":[5,42],\"2350\":[6,23],\"2351\":[8,34],\"2352\":[8,27],\"2353\":[10,40],\"2354\":[8,33],\"2355\":[6,20],\"2356\":[7,39],\"2357\":[7,38],\"2358\":[7,38],\"2359\":[6,24],\"2360\":[6,47],\"2361\":[7,31],\"2362\":[6,28],\"2363\":[6,23],\"2364\":[5,20],\"2365\":[7,23],\"2366\":[6,27],\"2367\":[4,42],\"2368\":[6,27],\"2369\":[4,29],\"2370\":[4,14],\"2371\":[5,19],\"2372\":[5,16],\"2373\":[7,21],\"2374\":[8,35],\"2375\":[8,39],\"2376\":[9,22],\"2377\":[7,31],\"2378\":[7,26],\"2379\":[7,26],\"2380\":[8,31],\"2381\":[10,48],\"2382\":[13,44],\"2383\":[8,19],\"2384\":[8,19],\"2385\":[10,40],\"2386\":[9,23],\"2387\":[8,42],\"2388\":[4,21],\"2389\":[5,22],\"2390\":[5,23],\"2391\":[8,24],\"2392\":[5,22],\"2393\":[5,15],\"2394\":[5,16],\"2395\":[2],\"2396\":[1,69],\"2397\":[3,57],\"2398\":[3,25],\"2399\":[4,50],\"2400\":[1,51],\"2401\":[3],\"2402\":[1,2],\"2403\":[2],\"2404\":[3,23],\"2405\":[4,18],\"2406\":[5,22],\"2407\":[5,22],\"2408\":[4,20],\"2409\":[4,20],\"2410\":[3,26],\"2411\":[4,36],\"2412\":[5,51],\"2413\":[4,53],\"2414\":[3,25],\"2415\":[4,28],\"2416\":[3,21],\"2417\":[2],\"2418\":[1,6],\"2419\":[2],\"2420\":[1,126],\"2421\":[2,25],\"2422\":[1,28],\"2423\":[1,51],\"2424\":[4,22],\"2425\":[4,11],\"2426\":[2,19],\"2427\":[2,11],\"2428\":[1,61],\"2429\":[2],\"2430\":[5,19],\"2431\":[5,16],\"2432\":[7,21],\"2433\":[8,35],\"2434\":[8,39],\"2435\":[9,22],\"2436\":[7,31],\"2437\":[7,26],\"2438\":[7,26],\"2439\":[8,31],\"2440\":[10,48],\"2441\":[13,44],\"2442\":[8,19],\"2443\":[8,19],\"2444\":[10,40],\"2445\":[9,23],\"2446\":[8,42],\"2447\":[4,21],\"2448\":[5,22],\"2449\":[5,23],\"2450\":[8,24],\"2451\":[5,22],\"2452\":[5,15],\"2453\":[5,16],\"2454\":[6,31],\"2455\":[6,20],\"2456\":[8,37],\"2457\":[6,24],\"2458\":[5,42],\"2459\":[7,26],\"2460\":[9,38],\"2461\":[7,33],\"2462\":[6,23],\"2463\":[8,34],\"2464\":[6,20],\"2465\":[7,39],\"2466\":[7,38],\"2467\":[7,35],\"2468\":[7,35],\"2469\":[7,50],\"2470\":[7,52],\"2471\":[7,38],\"2472\":[6,34],\"2473\":[8,45],\"2474\":[11,41],\"2475\":[8,35],\"2476\":[8,36],\"2477\":[7,28],\"2478\":[8,34],\"2479\":[8,35],\"2480\":[7,27],\"2481\":[9,44],\"2482\":[9,32],\"2483\":[7,26],\"2484\":[8,32],\"2485\":[8,28],\"2486\":[8,31],\"2487\":[6,42],\"2488\":[8,53],\"2489\":[11,42],\"2490\":[5,15],\"2491\":[5,15],\"2492\":[5,34],\"2493\":[5,40],\"2494\":[7,36],\"2495\":[5,15],\"2496\":[5,25],\"2497\":[5,28],\"2498\":[5,30],\"2499\":[6,36],\"2500\":[9,39],\"2501\":[5,28],\"2502\":[5,26],\"2503\":[8,48],\"2504\":[5,27],\"2505\":[5,20],\"2506\":[6,18],\"2507\":[6,28],\"2508\":[6,28],\"2509\":[5,53],\"2510\":[8,33],\"2511\":[8,29],\"2512\":[6,42],\"2513\":[5,46],\"2514\":[5,31],\"2515\":[6,25],\"2516\":[5,20],\"2517\":[7,23],\"2518\":[6,27],\"2519\":[4,42],\"2520\":[6,27],\"2521\":[4,29],\"2522\":[4,14],\"2523\":[2],\"2524\":[1,61],\"2525\":[3,57],\"2526\":[4,50],\"2527\":[1,50],\"2528\":[3],\"2529\":[1,2],\"2530\":[2],\"2531\":[3,23],\"2532\":[4,18],\"2533\":[5,22],\"2534\":[5,22],\"2535\":[4,20],\"2536\":[4,20],\"2537\":[3,26],\"2538\":[4,36],\"2539\":[5,51],\"2540\":[4,53],\"2541\":[3,25],\"2542\":[4,28],\"2543\":[3,21],\"2544\":[2],\"2545\":[1,6],\"2546\":[2],\"2547\":[1,138],\"2548\":[2,25],\"2549\":[1,28],\"2550\":[1,51],\"2551\":[4,22],\"2552\":[4,11],\"2553\":[2,29],\"2554\":[2,80],\"2555\":[1,74],\"2556\":[2],\"2557\":[5,32],\"2558\":[7,43],\"2559\":[10,39],\"2560\":[6,35],\"2561\":[6,34],\"2562\":[8,41],\"2563\":[5,26],\"2564\":[6,31],\"2565\":[6,20],\"2566\":[8,37],\"2567\":[6,24],\"2568\":[5,42],\"2569\":[6,23],\"2570\":[8,34],\"2571\":[8,27],\"2572\":[10,40],\"2573\":[8,33],\"2574\":[6,20],\"2575\":[7,39],\"2576\":[7,38],\"2577\":[7,38],\"2578\":[6,24],\"2579\":[6,47],\"2580\":[7,31],\"2581\":[6,28],\"2582\":[6,23],\"2583\":[5,20],\"2584\":[7,23],\"2585\":[6,27],\"2586\":[4,42],\"2587\":[6,27],\"2588\":[4,29],\"2589\":[4,14],\"2590\":[5,19],\"2591\":[5,16],\"2592\":[7,21],\"2593\":[8,35],\"2594\":[8,39],\"2595\":[9,22],\"2596\":[7,31],\"2597\":[7,26],\"2598\":[7,26],\"2599\":[8,31],\"2600\":[10,48],\"2601\":[13,44],\"2602\":[8,19],\"2603\":[8,19],\"2604\":[10,40],\"2605\":[9,23],\"2606\":[8,42],\"2607\":[4,21],\"2608\":[5,22],\"2609\":[5,23],\"2610\":[8,24],\"2611\":[5,22],\"2612\":[5,15],\"2613\":[5,16],\"2614\":[2],\"2615\":[1,69],\"2616\":[3,57],\"2617\":[3,25],\"2618\":[4,50],\"2619\":[1,50],\"2620\":[3],\"2621\":[1,2],\"2622\":[2],\"2623\":[3,23],\"2624\":[4,18],\"2625\":[5,22],\"2626\":[5,22],\"2627\":[4,20],\"2628\":[4,20],\"2629\":[3,26],\"2630\":[4,36],\"2631\":[5,51],\"2632\":[4,53],\"2633\":[3,25],\"2634\":[4,28],\"2635\":[3,21],\"2636\":[2],\"2637\":[1,6],\"2638\":[2],\"2639\":[1,126],\"2640\":[2,25],\"2641\":[1,28],\"2642\":[1,51],\"2643\":[4,22],\"2644\":[4,11],\"2645\":[2,19],\"2646\":[2,11],\"2647\":[1,61],\"2648\":[2],\"2649\":[5,19],\"2650\":[5,16],\"2651\":[7,21],\"2652\":[8,35],\"2653\":[8,39],\"2654\":[9,22],\"2655\":[7,31],\"2656\":[7,26],\"2657\":[7,26],\"2658\":[8,31],\"2659\":[10,48],\"2660\":[13,44],\"2661\":[8,19],\"2662\":[8,19],\"2663\":[10,40],\"2664\":[9,23],\"2665\":[8,42],\"2666\":[4,21],\"2667\":[5,22],\"2668\":[5,23],\"2669\":[8,24],\"2670\":[5,22],\"2671\":[5,15],\"2672\":[5,16],\"2673\":[6,31],\"2674\":[6,20],\"2675\":[8,37],\"2676\":[6,24],\"2677\":[5,42],\"2678\":[7,26],\"2679\":[9,38],\"2680\":[7,33],\"2681\":[6,23],\"2682\":[8,34],\"2683\":[6,20],\"2684\":[7,39],\"2685\":[7,38],\"2686\":[7,35],\"2687\":[7,35],\"2688\":[7,50],\"2689\":[7,52],\"2690\":[7,38],\"2691\":[6,34],\"2692\":[8,45],\"2693\":[11,41],\"2694\":[8,35],\"2695\":[8,36],\"2696\":[7,28],\"2697\":[8,34],\"2698\":[8,35],\"2699\":[7,27],\"2700\":[9,44],\"2701\":[9,32],\"2702\":[7,26],\"2703\":[8,32],\"2704\":[8,28],\"2705\":[8,31],\"2706\":[6,42],\"2707\":[8,53],\"2708\":[11,42],\"2709\":[5,15],\"2710\":[5,15],\"2711\":[5,34],\"2712\":[5,40],\"2713\":[7,36],\"2714\":[5,15],\"2715\":[5,25],\"2716\":[5,28],\"2717\":[5,30],\"2718\":[6,36],\"2719\":[9,39],\"2720\":[5,28],\"2721\":[5,26],\"2722\":[8,48],\"2723\":[5,27],\"2724\":[5,20],\"2725\":[6,18],\"2726\":[6,28],\"2727\":[6,28],\"2728\":[5,53],\"2729\":[8,33],\"2730\":[8,29],\"2731\":[6,42],\"2732\":[5,46],\"2733\":[5,31],\"2734\":[6,25],\"2735\":[5,20],\"2736\":[7,23],\"2737\":[6,27],\"2738\":[4,42],\"2739\":[6,27],\"2740\":[4,29],\"2741\":[4,14],\"2742\":[2],\"2743\":[1,61],\"2744\":[3,57],\"2745\":[4,50],\"2746\":[1,51],\"2747\":[3],\"2748\":[1,2],\"2749\":[2],\"2750\":[3,23],\"2751\":[4,18],\"2752\":[5,22],\"2753\":[5,22],\"2754\":[4,20],\"2755\":[4,20],\"2756\":[3,26],\"2757\":[4,36],\"2758\":[5,51],\"2759\":[4,53],\"2760\":[3,25],\"2761\":[4,28],\"2762\":[3,21],\"2763\":[2],\"2764\":[1,6],\"2765\":[2],\"2766\":[1,138],\"2767\":[2,25],\"2768\":[1,28],\"2769\":[1,51],\"2770\":[4,22],\"2771\":[4,11],\"2772\":[2,29],\"2773\":[2,80],\"2774\":[1,74],\"2775\":[2],\"2776\":[5,32],\"2777\":[7,43],\"2778\":[10,39],\"2779\":[6,35],\"2780\":[6,34],\"2781\":[8,41],\"2782\":[5,26],\"2783\":[6,31],\"2784\":[6,20],\"2785\":[8,37],\"2786\":[6,24],\"2787\":[5,42],\"2788\":[6,23],\"2789\":[8,34],\"2790\":[8,27],\"2791\":[10,40],\"2792\":[8,33],\"2793\":[6,20],\"2794\":[7,39],\"2795\":[7,38],\"2796\":[7,38],\"2797\":[6,24],\"2798\":[6,47],\"2799\":[7,31],\"2800\":[6,28],\"2801\":[6,23],\"2802\":[5,20],\"2803\":[7,23],\"2804\":[6,27],\"2805\":[4,42],\"2806\":[6,27],\"2807\":[4,29],\"2808\":[4,14],\"2809\":[5,19],\"2810\":[5,16],\"2811\":[7,21],\"2812\":[8,35],\"2813\":[8,39],\"2814\":[9,22],\"2815\":[7,31],\"2816\":[7,26],\"2817\":[7,26],\"2818\":[8,31],\"2819\":[10,48],\"2820\":[13,44],\"2821\":[8,19],\"2822\":[8,19],\"2823\":[10,40],\"2824\":[9,23],\"2825\":[8,42],\"2826\":[4,21],\"2827\":[5,22],\"2828\":[5,23],\"2829\":[8,24],\"2830\":[5,22],\"2831\":[5,15],\"2832\":[5,16],\"2833\":[2],\"2834\":[1,69],\"2835\":[3,57],\"2836\":[3,25],\"2837\":[4,50],\"2838\":[1,51],\"2839\":[3],\"2840\":[1,2],\"2841\":[2],\"2842\":[3,23],\"2843\":[4,18],\"2844\":[5,22],\"2845\":[5,22],\"2846\":[4,20],\"2847\":[4,20],\"2848\":[3,26],\"2849\":[4,36],\"2850\":[5,51],\"2851\":[4,53],\"2852\":[3,25],\"2853\":[4,28],\"2854\":[3,21],\"2855\":[1,3],\"2856\":[1]},\"averageFieldLength\":[5.134406720336022,39.44864635230549],\"storedFields\":{\"0\":{\"h\":\"Data Sharing Framework\",\"t\":[\"The Data Sharing Framework (DSF) is a concept for a secure middleware to distribute data sharing processes based on the BPMN 2.0 and FHIR R4 standards. The DSF is used to support biomedical research with routine data, aiming to extract, merge, pseudonymize and provide data stored in multiple distributed organizations. Every participating site runs a FHIR endpoint accessible by other sites and a business process engine in the local secured network. The process engines execute BPMN processes in order to coordinate local and remote steps necessary to enable cross-site data sharing or feasibility analyses. This includes access to local data repositories, use-and-access-committee decision support, consent filtering, and privacy preserving record-linkage and pseudonymization. The aim is to enable secure and syntactically-, semantically- and process-interoperable data exchange across organizational boundaries. The secure communication infrastructure is funded by the German Federal Ministry of Education and Research within the Medical Informatics structure as DSF Community.\",\"DSF concept\"]},\"1\":{\"h\":\"\",\"t\":[\"We are very pleased to have won the Rolf Hansen Memorial Award at EFMI MIE 2023 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 \"]},\"2\":{\"h\":\"and we will take care of your request as soon as possible.\"},\"3\":{\"h\":\"About\"},\"4\":{\"h\":\"Overview\",\"t\":[\"Contact & Community Guide\",\"Contributors\",\"Partners\",\"Public Funding\"]},\"5\":{\"h\":\"DSF for your project\",\"t\":[\"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.\"]},\"6\":{\"h\":\"Overview of DSF\",\"t\":[\"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.\"]},\"7\":{\"h\":\"Key features and benefits\"},\"8\":{\"h\":\"Distributed data sharing processes\",\"t\":[\"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.\"]},\"9\":{\"h\":\"Flexibility with data standards\",\"t\":[\"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.\"]},\"10\":{\"h\":\"Security and access control\",\"t\":[\"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.\"]},\"11\":{\"h\":\"Deployment in clinical environments\",\"t\":[\"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.\"]},\"12\":{\"h\":\"Getting started with the DSF\",\"t\":[\"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 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 committed to advancing biomedical research through secure, interoperable data sharing.\"]},\"13\":{\"h\":\"How to implement your use-case\",\"t\":[\"Work in progress\",\"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:\"]},\"14\":{\"h\":\"Hackathon\",\"t\":[\"Gemeinsame technische Sprechstunde der DSF-Community und des FDPG+\",\"Montags, 13:00-14:00 Uhr\",\"Ort: https://dsf.dev/sprechstunde\",\"Zusammenfassung\",\"Konferenz: https://audimax.heiconf.uni-heidelberg.de/jxh4-jxx2-tm6c-d37q\",\"Vorbereitung\",\"Installationshinweise\",\"Wir laden Sie herzlich zu unserem kommenden Hackathon am 18.06. von 10:00 Uhr bis 15:30 Uhr ein. Diese Veranstaltung bietet die Gelegenheit, sich mit den neuesten Updates und Funktionen unserer Komponenten vertraut zu machen.\",\"Agenda:\",\"Einführung in Neuerungen (10:00 - 11:00 Uhr): \",\"Begrüßung und Einführung in die neuen Funktionen und Verbesserungen des DSFs\",\"Präsentation der Änderungen der MII DSF-Prozessplugins, sowie von Blaze und Flare\",\"Updates MII-Komponenten (ab 11:00 Uhr bis verlängerter Pause, um NUM-DIZ-Meeting besuchen zu können): \",\"DSF\",\"Feasibility\",\"Data Sharing\",\"Data Transfer\",\"KDS Report\",\"Blaze\",\"Flare mit neuer KDS Ontologie\",\"Testen des Prozessplugins \\\"Data Sharing\\\" (ab 14:15 Uhr): \",\"Praktische Anwendung des \\\"Data Sharing\\\"-Prozessplugins auf unserer Testinfrastruktur.\",\"Ziel der Veranstaltung ist es die Test- und Produktivsysteme möglichst aller Standorte auf den neusten Stand zu patchen.\"]},\"15\":{\"h\":\"Vorbereitung\",\"t\":[\"In diesem Hackathon ist das Aktualisieren der Systeme ein aktiver Bestandteil und bedarf keiner speziellen Vorbereitung. Für das Testen der Data Sharing Prozesse sollten jedoch einige Voraussetzungen bereits vor dem Termin erfüllt sein.\"]},\"16\":{\"h\":\"Netzwerkfreigaben\",\"t\":[\"Für den Hackathon werden wir primär die Test-DMS aus Heilbronn verwenden, dafür muss neben der Freigabe zur FDPG auch die Freigabe zum und vom MII-Test-System der HHN vorhanden sein (mii-test.gecko.hs-heilbronn.de).\",\"In diesem Kontext bietet es sich an, auch die Freigaben für weitere Test-DMSen zu beantragen. Weitere Details dazu befinden sich in der Liste der Firewallregeln im Test-Allowlist-Management-Tool (allowlist-test.gecko.hs-heilbronn.de) unter dem Punkt “Download Allowlist”. Wir planen während des Termins auch mit ausgewählten DIZen erste Funktionstests der Test-DMSen durchzuführen.\",\"Wir empfehlen auch sicherzustellen, dass Sie Zugriff auf die Weboberfläche Ihres DSF-FHIR-Servers haben.\"]},\"17\":{\"h\":\"FHIR-Store\",\"t\":[\"Zur Datenausleitung im Kontext des Data Sharing Prozesses werden wir FHIR Bundles mit Testdaten zur Verfügung stellen, die in Form eines FHIR Bundles auf einem FHIR Store gespeichert werden müssen. Dabei kann ein beliebiger FHIR Server (z.B. HAPI FHIR oder Blaze) verwendet werden. Es kann auch der FHIR Server verwendet werden, der z.B. für Feasibility im Testsystem genutzt wird.\",\"Weitere Details zum Data Sharing Prozess sind hier zu finden:\",\"https://github.com/medizininformatik-initiative/mii-process-data-sharing/wiki\",\"Eine Installation kann vor oder während des Hackathons durchgeführt werden.\"]},\"18\":{\"h\":\"Installationshinweise\"},\"19\":{\"h\":\"DSF\",\"t\":[\"Installation oder Update\"]},\"20\":{\"h\":\"Prozessplugins\",\"t\":[\"DSF Ping Pong 1.0.1.0 Release Notes\",\"DSF Allowlist Plugin 1.0.0.1 Release Notes\",\"MII Feasibility 1.0.0.5 Instructions\",\"MII Process Report 1.1.0.0 for Test Infrastructure Instructions. Please use 1.0.x.x for Prod for now Instructions\",\"MII Process Data Transfer 1.0.1.0 Instructions\",\"MII Process Data Sharing 1.0.0.1 Instructions\"]},\"21\":{\"h\":\"Weitere Anwendungen\",\"t\":[\"Flare Instructions\",\"Blaze 0.27.1 Instructions\"]},\"22\":{\"h\":\"Data Sharing Demodaten\",\"t\":[\"https://github.com/medizininformatik-initiative/mii-process-data-sharing/blob/develop/src/test/resources/fhir/Bundle/Dic1FhirStore_Demo_Bundle.xml\",\"Falls Sie Fragen zum Hackathon oder der Installation des DSF haben, melden Sie sich gerne über den DSF-Community Zulip-Channel oder dsf-gecko@hs-heilbronn.de.\"]},\"23\":{\"h\":\"Documentation\"},\"24\":{\"h\":\"Overview\",\"t\":[\"Documentation \"]},\"25\":{\"h\":\"Publications and Talks\"},\"26\":{\"h\":\"Publications\",\"t\":[\"H. Hund, R. Wettstein, C.M. Heidt, C. Fegeler, Executing Distributed Healthcare and Research Processes – The HiGHmed Data Sharing Framework, Stud Health Technol Inform, 278 (2021) 126-133, doi:10.3233/SHTI210060\",\"R. Wettstein, H. Hund, I. Kobylinski, C. Fegeler, O. Heinze, Feasibility Queries in Distributed Architectures – Concept and Implementation in HiGHmed, Stud Health Technol Inform, 278 (2021) 134-141, doi:10.3233/SHTI210061\",\"C.M. Heidt, H. Hund, C. Fegeler, A Federated Record Linkage Algorithm for Secure Medical Data Sharing, Stud Health Technol Inform, 278 (2021) 142-149, doi:10.3233/SHTI210062\",\"R. Wettstein, H. Hund, C. Fegeler, O. Heinze, Data Sharing in Distributed Architectures – Concept and Implementation in HiGHmed, Stud Health Technol Inform, 283 (2021) 111-118, doi:10.3233/SHTI210548\",\"H.-U. Prokosch, T. Bahls, M. Bialke, J. Eils, C. Fegeler, J. Gruendner, B. Haarbrandt, C. Hampf, W. Hoffmann, H. Hund, et al. The COVID-19 Data Exchange Platform of the German University Medicine, Stud Health Technol Inform, 294 (2022) 674-678, doi:10.3233/SHTI220554\",\"R. Wettstein, T. Kussel, H. Hund, C. Fegeler, M. Dugas, K. Hamacher, Secure Multi-Party Computation Based Distributed Feasibility Queries – A HiGHmed Use Case, Stud Health Technol Inform, 296 (2022) 41-49, doi:10.3233/SHTI220802\",\"C. Zilske, M. Kurscheidt, S.T. Schweizer, H. Hund, S. Mödinger, C. Fegeler, Monitoring Distributed Business Processes in Biomedical Research, Stud Health Technol Inform, 302 (2023) 252-256, doi:10.3233/SHTI230113\",\"H. Hund, R. Wettstein, C. Hampf, M. Bialke, M. Kurscheidt, S.T. Schweizer, C. Zilske, S. Mödinger, C. Fegeler, No Transfer Without Validation: A Data Sharing Framework Use Case, Stud Health Technol Inform, 302 (2023) 68-72, doi:10.3233/SHTI230066\",\"H. Hund, R. Wettstein, M. Kurscheidt, S.T. Schweizer, C. Zilske, C. Fegeler, Interoperability Is a Process- The Data Sharing Framework, Stud Health Technol Inform, 310 (2024) 28-32, doi:10.3233/SHTI230921\"]},\"27\":{\"h\":\"Recorded Talks\"},\"28\":{\"h\":\"GMDS Conference 2022\",\"t\":[\"Hands On! - Introduction to the Data Sharing Framework from a User Perspective \",\"Tutorial: \"]},\"29\":{\"h\":\"GMDS Conference 2020\",\"t\":[\"Executing Distributed Healthcare and Research Processes – the HiGHmed Data Sharing Framework\",\"Feasibility Queries in Distributed Architectures – Concept and Implementation in HiGHmed\",\"A Federated Record Linkage Algorithm for Secure Medical Data Sharing\"]},\"30\":{\"h\":\"Version 0.9.x\",\"t\":[\"Data Sharing Framework 0.9.x is an old version of the Data Sharing Framework. Click to find more information about the DSF in general.\"]},\"31\":{\"h\":\"Overview (v 0.9.x)\"},\"32\":{\"h\":\"Introduction\",\"t\":[\"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.\",\"DSF Architecture\"]},\"33\":{\"h\":\"Security\",\"t\":[\"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, Security and 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 the latest version of the DSF or to upgrade 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.\"]},\"34\":{\"h\":\"Security vulnerability disclosure policy\"},\"35\":{\"h\":\"Our commitment to security\",\"t\":[\"We as the DSF development team take security of our software, services and data very seriously. We understand that despite our best efforts, vulnerabilities can exist. To address this, we encourage responsible reporting of any security vulnerabilities discovered in our software and systems.\"]},\"36\":{\"h\":\"Responsible disclosure\",\"t\":[\"We kindly ask security researchers and the general public to follow the principles of Coordinated Vulnerability Disclosure (CVD) or Responsible Disclosure when reporting vulnerabilities to us. This approach helps us to mitigate potential risks and protect our users' data effectively.\"]},\"37\":{\"h\":\"How to Report a Vulnerability\",\"t\":[\"If you believe you have found a security vulnerability in our system, please email us at dsf-security@hs-heilbronn.de. If you want to use end-to-end-encryption, you can send us mails using s-mime with the certificate chain provided here. We kindly request the following:\",\"Provide a detailed description of the vulnerability, including if possible the potential impact and how it can be exploited.\",\"Include steps to reproduce the vulnerability or proof-of-concept code, if possible.\",\"Avoid accessing or modifying user data without permission, and do not exploit a security issue for any reason other than testing.\",\"Maintain confidentiality and do not publicly disclose the vulnerability, until we have had the opportunity to investigate and address it.\",\"Please do not file an issue on a security-related topic and use the e-mail address provided. You can verify the address both in the application repository and at the homepage (this page).\"]},\"38\":{\"h\":\"Our promise\",\"t\":[\"Acknowledgement: We usually will acknowledge receipt of your vulnerability report within 48 hours.\",\"Investigation: Our security team will investigate the issue and work diligently to verify and reproduce the vulnerability.\",\"Communication: We will keep you informed of our progress as we work to resolve the issue.\",\"Resolution: We will strive to resolve security issues in a timely manner and release updates, patches, or remediations as needed.\",\"Recognition: We value your effort in making our systems more secure and will recognize your contribution, if desired, once the vulnerability is resolved.\"]},\"39\":{\"h\":\"Legal Protection\",\"t\":[\"We promise not to initiate legal action against individuals who report vulnerabilities responsibly in accordance with this policy. This includes not suing for accidental access to data or reporting in good faith.\"]},\"40\":{\"h\":\"Questions?\",\"t\":[\"If you have any questions about this policy or security of the Data Sharing Framework, the services and tools we provide, please contact us at dsf-security@hs-heilbronn.de. You can send us encrypted e-mails using s-mime. You can find the certificate chain here.\"]},\"41\":{\"h\":\"Sprechstunde\",\"t\":[\"Gemeinsame technische Sprechstunde der DSF-Community und des FDPG+\",\"Montags, 13:00-14:00 Uhr\",\"Ort: https://dsf.dev/sprechstunde\",\"Klicken Sie hier, um der Sprechstunde beizutreten.\"]},\"42\":{\"h\":\"DSF 1.5.2\",\"t\":[\"Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click to find more information about the DSF in general.\",\"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.\",\"Upgrade from DSF 0.9.x.\",\"Upgrade from DSF 1.5.1\",\"Install DSF 1.5.2\",\"Create a new process plugin\",\"Upgrade from DSF 0.9.x.\"]},\"43\":{\"h\":\"New features\",\"t\":[\"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\"]},\"44\":{\"h\":\"DSF 1.0.0\",\"t\":[\"Data Sharing Framework 1.0.0 is the new major release of the Data Sharing Framework. Click to find more information about the DSF in general.\",\"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.\",\"Upgrade from DSF 0.9.x.\",\"Install DSF 1.0.0\",\"Create a new process plugin\",\"Upgrade from DSF 0.9.x.\"]},\"45\":{\"h\":\"New features\",\"t\":[\"Improved versioning to support up- and downwards-compatibility\",\"Enhanced web ui to start processes in the web browser\",\"Allow user authenitication and authorization with OpenID Connect\",\"New process plugin API\",\"Removed mostly unused features to simplify instance configuration\",\"Unified proxy setup\",\"Many more features\"]},\"46\":{\"h\":\"DSF 1.1.0\",\"t\":[\"Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click to find more information about the DSF in general.\",\"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.\",\"Upgrade from DSF 0.9.x.\",\"Upgrade from DSF 1.x.\",\"Install DSF 1.1.0\",\"Create a new process plugin\",\"Upgrade from DSF 0.9.x.\"]},\"47\":{\"h\":\"New features\",\"t\":[\"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\"]},\"48\":{\"h\":\"DSF 1.2.0\",\"t\":[\"Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click to find more information about the DSF in general.\",\"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.\",\"Upgrade from DSF 0.9.x.\",\"Upgrade from DSF 1.x.\",\"Install DSF 1.2.0\",\"Create a new process plugin\",\"Upgrade from DSF 0.9.x.\"]},\"49\":{\"h\":\"New features\",\"t\":[\"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\"]},\"50\":{\"h\":\"DSF 1.3.0\",\"t\":[\"Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click to find more information about the DSF in general.\",\"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.\",\"Upgrade from DSF 0.9.x.\",\"Upgrade from DSF 1.x.\",\"Install DSF 1.3.0\",\"Create a new process plugin\",\"Upgrade from DSF 0.9.x.\"]},\"51\":{\"h\":\"New features\",\"t\":[\"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\"]},\"52\":{\"h\":\"DSF 1.3.1\",\"t\":[\"Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click to find more information about the DSF in general.\",\"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.\",\"Upgrade from DSF 0.9.x.\",\"Upgrade from DSF 1.3.0\",\"Install DSF 1.3.1\",\"Create a new process plugin\",\"Upgrade from DSF 0.9.x.\"]},\"53\":{\"h\":\"New features\",\"t\":[\"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\"]},\"54\":{\"h\":\"DSF 1.3.2\",\"t\":[\"Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click to find more information about the DSF in general.\",\"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.\",\"Upgrade from DSF 0.9.x.\",\"Upgrade from DSF 1.3.0\",\"Install DSF 1.3.2\",\"Create a new process plugin\",\"Upgrade from DSF 0.9.x.\"]},\"55\":{\"h\":\"New features\",\"t\":[\"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\"]},\"56\":{\"h\":\"DSF 1.4.0\",\"t\":[\"Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click to find more information about the DSF in general.\",\"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.\",\"Upgrade from DSF 0.9.x.\",\"Upgrade from DSF 1.3.2\",\"Install DSF 1.4.0\",\"Create a new process plugin\",\"Upgrade from DSF 0.9.x.\"]},\"57\":{\"h\":\"New features\",\"t\":[\"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\"]},\"58\":{\"h\":\"DSF 1.5.0\",\"t\":[\"Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click to find more information about the DSF in general.\",\"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.\",\"Upgrade from DSF 0.9.x.\",\"Upgrade from DSF 1.4.0\",\"Install DSF 1.5.0\",\"Create a new process plugin\",\"Upgrade from DSF 0.9.x.\"]},\"59\":{\"h\":\"New features\",\"t\":[\"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\"]},\"60\":{\"h\":\"DSF 1.5.1\",\"t\":[\"Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click to find more information about the DSF in general.\",\"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.\",\"Upgrade from DSF 0.9.x.\",\"Upgrade from DSF 1.5.0\",\"Install DSF 1.5.1\",\"Create a new process plugin\",\"Upgrade from DSF 0.9.x.\"]},\"61\":{\"h\":\"New features\",\"t\":[\"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\"]},\"62\":{\"h\":\"DSF 1.5.2\",\"t\":[\"Data Sharing Framework 1.x is the new major release of the Data Sharing Framework. Click to find more information about the DSF in general.\",\"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.\",\"Upgrade from DSF 0.9.x.\",\"Upgrade from DSF 1.5.1\",\"Install DSF 1.5.2\",\"Create a new process plugin\",\"Upgrade from DSF 0.9.x.\"]},\"63\":{\"h\":\"New features\",\"t\":[\"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\"]},\"64\":{\"h\":\"Learn more\"},\"65\":{\"h\":\"Overview\"},\"66\":{\"h\":\"Contact & Community\"},\"67\":{\"h\":\"\",\"t\":[\"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.\"]},\"68\":{\"h\":\"👥 COMMUNITY\",\"t\":[\"DSF's community is growing and we welcome anyone who would like to join! 🚀\"]},\"69\":{\"h\":\"Stay up to Date\",\"t\":[\"GitHub\",\"Follow our on GitHub\",\"Zulip Chat - MII (If you would like access, please write us an E-MAIL)\"]},\"70\":{\"h\":\"Contribute Code\",\"t\":[\"You can get familiar with the DSF code on GitHub. Branching follows the git-flow model, for the latest development version see branch develop. Additionally, you can find more information in the documentation.\"]},\"71\":{\"h\":\"Share your Experience & Get support\",\"t\":[\"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 are for.\"]},\"72\":{\"h\":\"Partners\",\"t\":[\"Funded for further development of the Data Sharing Framework are:\"]},\"73\":{\"h\":\"Heilbronn University of Applied Sciences | Gecko Institute\",\"t\":[\"The GECKO Institute is a research institution of Heilbronn University of Applied Sciences 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.\"]},\"74\":{\"h\":\"University of Heidelberg | Institute of Medical Informatics\",\"t\":[\"The Institute of Medical Informatics 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.\"]},\"75\":{\"h\":\"University of Leipzig | LIFE Institute\",\"t\":[\"The LIFE Institute of the University of Leipzig manages collaborative and follow-on projects in the fields of medicine, public health, medical informatics, and biobanking.\"]},\"76\":{\"h\":\"Public Funding\"},\"77\":{\"h\":\"DSF - Medical Informatics Structure \\\"Data Sharing Framework Community\\\" (2023-2026)\",\"t\":[\"The DSF Community connects the DSF competencies of the entire Medical Informatics Initiative (MII) so that new use cases, in particular from Module 3 or the Network University Medicine (NUM), 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+ and TRANSIT projects. BMBF\",\"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).\"]},\"78\":{\"h\":\"Development of the DSF in the HiGHmed consortium -Contribution Heilbronn University and Heidelberg University (2018-2022)\",\"t\":[\"HiGHmed 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 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).\"]},\"79\":{\"h\":\"Team\",\"t\":[\"The funded project team includes:\",\"Prof. Dr. Christian Fegeler • Homepage\",\"Hauke Hund • GitHub\",\"Maximilian Kurscheidt • GitHub\",\"Simon Schweizer • GitHub\",\"Christoph Zilske • GitHub\",\"Reto Wettstein • GitHub\",\"Alexander Kiel • GitHub\",\"We thank additional contributors, including:\",\"Florian Seidel • GitHub\",\"Simon Mödinger • GitHub\"]},\"80\":{\"h\":\"Allow Lists\"},\"81\":{\"h\":\"Goal\",\"t\":[\"The main objective is to allow only authorized organizations to do what \\\"we\\\" allow them to do (e.g. query data). First, we need a list of organizations that we trust. Secondly, we need a way to ensure that the other party is a member of the parent organization. Thirdly, a list of actions we want to allow the organization to perform is needed. An organization can have different roles in different use cases.\",\"The Allow List consists of Organization-, Endpoint- and OrganisationAffiliation- resources. With these resources the allow list defines communication partners and and parent organizations like research consortia and groups as well as the roles of each organization. Each DSF FHIR server stores their own allow list. To make sure that processes can be executed, parties must allow access via their allow list.\",\"Architecture\"]},\"82\":{\"h\":\"Allow List Managment\",\"t\":[\" you can read all the information if you want to create or update an Allow List.\"]},\"83\":{\"h\":\"and we will take care of your request as soon as possible.\"},\"84\":{\"h\":\"Architecture\",\"t\":[\"The Data Sharing Framework implements a distributed business process engine based on the BPMN 2.0 and FHIR R4 standards. Every participating organisation (e.g. ORG. A) runs a FHIR endpoint accessible by other sites and a business process engine (BPE) in the local secured network. Once the DSF has been installed in an organisation, it can be used for multiple use cases.\",\"Simplified DSF Architecture\",\"The following architecture diagram also shows three organisations, each of which has installed the DSF. The FHIR endpoint (green) is located in a demilitarised zone (DMZ) and is accessible from outside for communication with other organisations. It can be compared to a mailbox. The Business Process Engine (BPE - blue) is located in the intranet of an organisation and is responsible for the execution of processes. The metaphor: control centre helps here.\",\"DSF Architecture\"]},\"85\":{\"h\":\"DSF FHIR Server 📫\",\"t\":[\"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. It is important to understand that the DSF FHIR server is not used for persisting medical data.\",\"DSF FHIR Server\"]},\"86\":{\"h\":\"Business Process Engine (BPE)\",\"t\":[\"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.\",\"BPE\",\"The DSF BPE uses websocket (WSS) and webservice (HTTPS) connections to communicate with the DSF FHIR server. FHIR resources are created, read, updated and deleted via HTTP requests against the FHIR webservice API. The FHIR subscription mechanism is used to communicate Task resources with status 'requested' and QuestionnaireResponse resources with status 'completed' to the BPE via websockets. When the BPE starts and before the websocket connections are established, 'requested' Task resources and 'completed' QuestionnaireResponse not seen by the BPE are read via webservice requests.\"]},\"87\":{\"h\":\"Flexible Deployment\",\"t\":[\"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.\"]},\"88\":{\"h\":\"Network Setup & Additional Reverse Proxy in external DMZ\",\"t\":[\"You can find more information about the network setup here\"]},\"89\":{\"h\":\"Basics and Standards\",\"t\":[\"Here you can find some basic information about interoperability and the standards were using within the DSF before we go into details about the architecture. Here we only describe how the standards (FHIR and BPMN) are used within the DSF. If you want to gain a deeper knowledge of the standards, we recommend visiting these websites: HL7 FHIR and BPMN\"]},\"90\":{\"h\":\"Interoperability\",\"t\":[\"Interoperability is the ability of different systems to work together as seamlessly as possible. We can divide interoperability into four levels.\",\"The foundational level defines the basic interconnectivity requirements which are necessary for a system or application to securely transmit data to and receive data from another system or application. Techniques such as HTTPS or REST are used for this.\",\"The second level is the structural level. It defines the format and the syntax of the data exchange. Therefore, data formats like JSON or XML can be used.\",\"The semantic level ensures the correct interpretation of the contents of the exchanged data between the different systems. Therefore, information models as FHIR or CDA or medical terminology systems like SNOMED CT or ICD can be used.\",\"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.\",\"Levels of interoperability\"]},\"91\":{\"h\":\"HL7 FHIR 🔥\",\"t\":[\"HL7 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. The FHIR profiles can be understood as a set of rules. They explain, for example, which attributes must be mandatorily specified or which terminology may be used. In addition, profiles and controlled vocabulary can be validated.\"]},\"92\":{\"h\":\"BPMN\",\"t\":[\"Business Process Modelling Notation is a modelling language that can be used to model and implement processes. The models can be used for the documentation of processes and for communication between different stakeholders. Furthermore, BPMN forms a standardised bridge between process design and process implementation. This is because it simplifies implementation. These processes are executed by a Business Process Engine. Basically, a BPE is a server that can read and execute the business process. More about this in the section on architecture.\",\"Example of a BPMN model (Ping-Pong-Process of the DSF)\"]},\"93\":{\"h\":\"Why are we using FHIR and BPMN?\",\"t\":[\"On the one hand we use FHIR because of the mentioned benefits. On the other hand FHIR fits great with BPMN and these two in combination are a great fit for what we do:Execute distributed data sharing Processes.\",\"We do not need all 150 FHIR resources. The following FHIR resources are the ones we need and have implemented: ActivityDefinition, Binary, Bundle, CodeSystem, DocumentReference, Endpoint, Group, Library, Measure, MeasureReport, NamingSystem, Organization, Questionnaire, QuestionnaireResponse, ResearchStudy, StructureDefinition, Subscription, Task and ValueSet.\",\"Don't worry, it is not important to understand them all now. But to understand why we use FHIR and BPMN, it is important to look at the ActivityDefinition and TaskResources on the FHIR side and the Message Events on the BPMN side. In the following picture you can see parts of BPMN. These Message Events enable the communication between different organizations. Every time there is a Message Event between two business processes, there is a corresponding TaskResource on the FHIR side. When one organization sends a message for example “do some work” to another organization or when we send a message to ourselves to start or continue a process, we do this by creating a FHIR TaskResource with the status “requested”. After that the Business Process Engine starts the work and the status switches to “in-progress” and if the work is done to “completed” or if there is a problem to “failed”.\",\"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.\",\"BPMN MessageEvents\"]},\"94\":{\"h\":\"Introduction\",\"t\":[\"The German Federal Ministry of Education and Research is funding the Medical Informatics Initiative 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.\",\"The DSF is a concept for a secure middleware to distribute data sharing processes, aiming to extract, merge, pseudonymize and provide data stored in multiple distributed DICs. A researcher can use the DSF for example to submit feasibility queries to several DICs and thus has the opportunity to obtain sufficient data from different locations for his or her research. By using international standards such as FHIR and BPMN 2.0, the problem of heterogeneous data models, primary systems, architectures and federated legislation between DICs can be solved. The aim is to enable secure and syntactically-, semantically- and process-interoperable data exchange across organisational boundaries.\",\"DSF concept\",\"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.\",\"Federated data exchange between distributed DICs (CRP=Central Research Portal, DMU=Data Management Unit)\"]},\"95\":{\"h\":\"Network Setup and General Architecture\",\"t\":[\"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.\",\"Network Setup Diagramm\",\"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\"]},\"96\":{\"h\":\"Additional Reverse Proxy in external DMZ\",\"t\":[\"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.\",\"Network Setup Diagramm\"]},\"97\":{\"h\":\"Process Plugins\"},\"98\":{\"h\":\"Overview\",\"t\":[\"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 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.\"]},\"99\":{\"h\":\"BPMN: Example\",\"t\":[\"BPMN models can be created with Camunda Modeler. 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.\",\"BPMN: Example\"]},\"100\":{\"h\":\"Ping Pong Process\",\"t\":[\"The ping process plugin 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.\",\"Ping-Pong Process\",\"The ping pong process is composed of 3 different subprocesses:\"]},\"101\":{\"h\":\"Autostart Ping Process\",\"t\":[\"The autostart ping process is used to execute connection tests in a predefined interval. This subprocess performs the following steps:\",\"Start a timer with a predefined interval (default 24 h)\",\"Start the ping process once per interval\",\"Stop the timer after the current interval completes\"]},\"102\":{\"h\":\"Ping Process\",\"t\":[\"The ping process is used to check outgoing and incoming connections to organizations in your allow-list. This subprocess performs the following steps:\",\"Select organizations in your allow list that should receive a ping message\",\"Send ping message to selected organizations\",\"Receive pong message from selected organizations\",\"Log status of ping/pong messages\",\"Log errors if any occur\"]},\"103\":{\"h\":\"Pong Process\",\"t\":[\"The pong process is used to send a response during the connection test to the requesting organization. This subprocess performs the following steps:\",\"Receive ping message from requesting organizations\",\"Send pong message to requesting organizations\",\"Log status of ping/pong message\",\"Log errors if any occur\"]},\"104\":{\"h\":\"Security by Design\"},\"105\":{\"h\":\"Basics Security\",\"t\":[\"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. 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.\"]},\"106\":{\"h\":\"Authentication\",\"t\":[\"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, D-Trust via TMF e.V. and GÉANT TCS via DFN 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\",\"More information about client and server certificates can be found here.\"]},\"107\":{\"h\":\"Certificate Requests 🔒\"},\"108\":{\"h\":\"FHIR Endpoint\",\"t\":[\"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\"]},\"109\":{\"h\":\"Business Process Engine Server\",\"t\":[\"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\"]},\"110\":{\"h\":\"GMDS2022 - Process Development\",\"t\":[\"Redirect to .\"]},\"111\":{\"h\":\"MIE May 2023\"},\"112\":{\"h\":\"Abstract\",\"t\":[\"With this tutorial, participants will gain a detailed insight into the Data Sharing Framework (DSF) (https://github.com/highmed/highmed-dsf). The open source DSF enables users to execute biomedical research and healthcare delivery processes across organizations, and the tutorial will demonstrate this with examples from the German Medical Informatics Initiative (MII) (https://www.medizininformatik-initiative.de/en/start) funded by the Federal Ministry of Education and Research (BMBF). The tutorial will cover fundamental concepts of distributed processes, the DSFs architecture and key standards such as HL7 FHIR and BPMN 2.0. Participants will have the opportunity to gain hands-on experience with the DSF by working with different processes in a lab setting. Technical aspects such as authentication and authorization will be covered, as well as guidance on using the DSF for other use cases. This tutorial is designed for those involved in distributed research projects, including project members and software developers, as well as individuals interested in multi-organizational research projects.\"]},\"113\":{\"h\":\"Topic\",\"t\":[\"The use of real-world data collected by healthcare providers for bio-medical research requires the data to be available and accessible. This is especially important when considering the usage of data across organizations. Distributed processes such as feasibility studies, record linkage, and data sharing need to be established for effective consolidation and analysis. While even multi-center retrospective studies using real-world data become commonplace, maintaining infrastructure components for every project conducted is not sustainable. To address this, the Data Sharing Framework (DSF) was developed as an open source, use case independent distributed business process engine to execute cross-organizational research and healthcare delivery processes.\",\"The tutorial will cover the fundamental concepts of distributed processes and will provide an overview of the DSF's architecture and key standards such as HL7 FHIR and BPMN 2.0 that are used in the framework. The tutorial will present real-world examples to illustrate the DSFs capabilities and delve into specific issues the DSF addresses for the German Medical Informatics Initiative (MII).\",\"Participants will have the opportunity to gain hands-on experience with the DSF by working with different processes in a lab setting. Technical aspects such as authentication and authorization, onboarding of new organizations and guidance on using the DSF for other use cases, such as specific research projects or new infrastructure developments, will be covered. Finally, the tutorial will present lessons learned from the last years of using the DSF in test and production environments in multiple research consortia and will present ideas for future improvements based on feedback from end-users, process developers, project managers and administrative staff.\"]},\"114\":{\"h\":\"Target Group\",\"t\":[\"Decision makers and project members with data sharing ideas looking for an architecture, as well as medical informatics professionals and software developers tasked with building multi-centric data sharing applications, are the target audience for this tutorial.\"]},\"115\":{\"h\":\"What you need\",\"t\":[\"You need a laptop with a web browser for the hands-on portion of the tutorial.\"]},\"116\":{\"h\":\"What you will learn\",\"t\":[\"You will...\",\"… gain knowledge on various distributed processes specific to bio-medical research.\",\"… understand the unique challenges and considerations from the German MII resulting in the design and architecture of the DSF.\",\"… be introduced to the key concepts of the DSF and the various contexts in which it can be applied.\",\"… learn how to evaluate if the DSF is appropriate for their particular project or application your planning.\",\"… understand the difficulties that can occur when implementing distributed processes, as well as strategies for addressing them.\"]},\"117\":{\"h\":\"Tutorials\"},\"118\":{\"h\":\"Recorded talks\",\"t\":[\"Redirect to .\"]},\"119\":{\"h\":\"Use-Cases\"},\"120\":{\"h\":\"Overview\",\"t\":[\"Feasibility\",\"Network University Medicine\"]},\"121\":{\"h\":\"Feasibility\"},\"122\":{\"h\":\"Overview\",\"t\":[\"Funded by the German Federal Ministry of Research and Education, 25 sites have installed the DSF to execute the Feasibility process. To perform feasibility queries, a researcher can register and query data on the FDPG (Forschungsdaten Portal für Gesundheit - Research Data Portal) 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.\"]},\"123\":{\"h\":\"The Feasibility Process\",\"t\":[\"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.\",\"To enable researchers to leverage this integrated data for specific research projects, there is a critical need for the ability to query cohort sizes across institutions. The feasibility process allows researchers to conduct automated and distributed feasibility queries, i.e., cohort size estimates. This process is executed according to the open standard BPMN 2.0, the underlying process data model is based on HL7 FHIR R4 resources.\"]},\"124\":{\"h\":\"Technical Information\",\"t\":[\"DSF Middleware Setup: The DSF middleware connects your site to the central platform. This allows it to receive feasibility query requests as well as reporting back any results of these queries.\",\"Feasibility Process: Core Feasibility Process\",\"Feasibility Triangle: The Feasibility Triangle part of this repository provides a site (data integration center) with all the necessary components to set up in order to allow feasibility queries from the central feasibility portal.\",\"Data Transfer\",\"Data extraction after successful feasibility query\"]},\"125\":{\"h\":\"Network University Medicine\",\"t\":[\"The Network University Medicine 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.'\",\"As part of the CODEX | COVID-19 Data Exchange Platform 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. All 36 university hospitals have installed the DSF to share Covid-19 research data.\"]},\"126\":{\"h\":\"The Data Transfer Process\",\"t\":[\"The Data Transfer Process is used in NUM CODEX to send data from a Data Integration Center (DIC), via the Gecco Transfer Hub (GTH), to the Central Research Repository (CRR). The infrastructure and communincation messages on which the process is based can be seen in the following figure. All organizations use the Data Sharing Framework (DSF) for deployment and execution of the process.\",\"More technical information can be found on GitHub.\"]},\"127\":{\"h\":\"Build and Test\"},\"128\":{\"h\":\"Build and Test\"},\"129\":{\"h\":\"Build Project\",\"t\":[\"Prerequisite: Java 11, Maven 3.6, Docker\",\"mvn install \"]},\"130\":{\"h\":\"Manual Integration Testing (without Docker)\",\"t\":[\"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\",\"CREATE USER liquibase_user WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION PASSWORD 'fLp6ZSd5QrMAkGZMjxqXjmcWrTfa3Dn8fA57h92Y'; \",\"Create Databases fhir and bpe with owner liquibase_user\",\"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.\"]},\"131\":{\"h\":\"Manual Integration Testing (local with Docker)\",\"t\":[\"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.\"]},\"132\":{\"h\":\"Troubleshooting\",\"t\":[\"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.\"]},\"133\":{\"h\":\"Manual Integration Testing (VMs for Docker-Registry, 3 MeDICs, TTP)\",\"t\":[\"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\",\"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\"]},\"134\":{\"h\":\"Starting the Processes\",\"t\":[\"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\"]},\"135\":{\"h\":\"Proxy Test Tool\",\"t\":[\"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.\"]},\"136\":{\"h\":\"Release a new version\"},\"137\":{\"h\":\"Release a new final version\",\"t\":[\"Write release notes\",\"Create new release/x.y.z branch from develop\",\"Remove -SNAPSHOT from version in pom.xml files\",\"Change status from draft to active and update dates, verify versions in FHIR resources\",\"Update version and date-released in CITATION.cff\",\"Push branch release/x.y.z\",\"Create pull request (release/x.y.z -> main)\",\"Build maven\",\"Build docker images and run manual tests in 3MeDIC/TTP test setup\",\"Execute trivy and check CVEs for the docker images\",\"Merge release/x.y.z into main\",\"Git tag main branch\",\"Push main branch (including Git tag)\",\"Build maven\",\"Run multi-arch docker build (including push)\",\"Update release notes with docker links, check Git tag\",\"Publish release notes\",\"Create 'start next development cycle' issue and branch\",\"Merge main into issue branch\",\"Increase version\",\"Merge next development cycle issue branch into develop via PR\"]},\"138\":{\"h\":\"Release a new candidate version\",\"t\":[\"Write release notes\",\"Create new release/x.y.z-RC# branch from develop\",\"Replace -SNAPSHOT in versions with -RC# in pom.xml files\",\"Change status from draft to active and update dates, verify versions in FHIR resources\",\"Update version and date-released in CITATION.cff\",\"Git tag release/x.y.z-RC# branch\",\"Build maven\",\"Build docker images and run manual tests in 3MeDIC/TTP test setup\",\"Execute trivy and check CVEs for the docker images\",\"Push release/x.y.z-RC# branch (including Git tag)\",\"Run multi-arch docker build (including push)\",\"Update release notes with docker links, check Git tag\",\"Publish release notes\"]},\"139\":{\"h\":\"Code\"},\"140\":{\"h\":\"Adding FHIR Resources\",\"t\":[\"This wiki entry walks through the steps to add a new FHIR resource to the server\"]},\"141\":{\"h\":\"Database\",\"t\":[\"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)\"]},\"142\":{\"h\":\"JSON/XML Adapter\",\"t\":[\"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.javaregister generated json/xml (not html) adapters according to existing registrations (are in alphabetic order)\"]},\"143\":{\"h\":\"DAO\",\"t\":[\"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\"]},\"144\":{\"h\":\"Resolve Resource References if needed\",\"t\":[\"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\"]},\"145\":{\"h\":\"Authorization\",\"t\":[\"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\"]},\"146\":{\"h\":\"Webservice\",\"t\":[\"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)\"]},\"147\":{\"h\":\"Test\",\"t\":[\"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\"]},\"148\":{\"h\":\"Adding MPI Clients\",\"t\":[\"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 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 from the 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. The interface defines a method returning instances of the interface Idat 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 module.\"]},\"149\":{\"h\":\"Adding openEHR Clients\",\"t\":[\"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 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 from the 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. The interface defines a method executing an openEHR query returning an instance of an openEHR ResultSet.\",\"An example of an openEHR client implementation can be found in the dsf-openehr-client-impl module.\"]},\"150\":{\"h\":\"Changing BPMN Processes by Service Task Overwrites\",\"t\":[\"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.\"]},\"151\":{\"h\":\"Writing Code\"},\"152\":{\"h\":\"Code Style\",\"t\":[\"HiGHmed DSF code-style configurations for Eclipse and IntelliJ IDEA can be found here:\",\"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.\"]},\"153\":{\"h\":\"Git Workflow\",\"t\":[\"Since Release 0.1.0, we follow git-flow as described here. 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.\"]},\"154\":{\"h\":\"Branch Naming:\",\"t\":[\"Features: issue/_\",\"Hot-Fix: hot-fix/_\",\"Release: release/\"]},\"155\":{\"h\":\"Eclipse code-style configurations\",\"t\":[\"