diff --git a/.github/actions/lint-jsonschema/action.yml b/.github/actions/lint-jsonschema/action.yml
new file mode 100644
index 00000000..22aa6698
--- /dev/null
+++ b/.github/actions/lint-jsonschema/action.yml
@@ -0,0 +1,52 @@
+name: Lint JSON Schema
+
+runs:
+ using: "composite"
+ steps:
+ - name: Set up check-jsonschema
+ shell: bash
+ run: |
+ pip install check-jsonschema
+
+ - name: Set up environment
+ shell: bash
+ run: |
+ # Sadly, composite actions currently don't support environment variables so we freestyle a replacement
+ echo 'SCHEMAS_ROOT=src/schema' >> .gha-env
+ echo 'EXAMPLES_ROOT=src/schema/examples' >> .gha-env
+
+ - name: Verify schemas
+ shell: bash
+ run: |
+ source .gha-env
+
+ # We handle the return code ourselves to prevent the action from exiting on the first error
+ rc=0
+
+ while read -r file; do
+ echo "Validating $file"
+ if ! check-jsonschema --check-metaschema "$file"; then
+ rc=1
+ fi
+ done < <(find "$SCHEMAS_ROOT" -name "*.json" -maxdepth 1)
+
+ exit $rc
+
+ - name: Verify examples
+ shell: bash
+ run: |
+ source .gha-env
+
+ # We handle the return code ourselves to prevent the action from exiting on the first error
+ rc=0
+
+ while read -r file; do
+ schema=$(basename "$file")
+ schema=$SCHEMAS_ROOT/${schema%%.*}.json
+ echo "Validating $file against $schema"
+ if ! check-jsonschema --schemafile "$schema" "$file"; then
+ rc=1
+ fi
+ done < <(find "$EXAMPLES_ROOT" -name "*.json")
+
+ exit $rc
diff --git a/.github/actions/lint-links/action.yml b/.github/actions/lint-links/action.yml
new file mode 100644
index 00000000..a57b2930
--- /dev/null
+++ b/.github/actions/lint-links/action.yml
@@ -0,0 +1,64 @@
+name: Lint Links
+
+runs:
+ using: "composite"
+ steps:
+ - name: Verify links
+ shell: bash
+ run: |
+ function warn {
+ >&2 echo -e "\033[0;33m$@\033[0m"
+ }
+
+ function err {
+ >&2 echo -e "\033[0;31m$@\033[0m"
+ }
+
+ rc=0
+
+ while read -r file; do
+ echo "Checking $file"
+
+ pushd "$(dirname "$file")" > /dev/null
+
+ while read -r location; do
+ echo "Checking location $location"
+
+ if [[ "$location" == http* ]]; then
+ if ! curl -X OPTIONS --silent --fail "$location" 2>&1 > /dev/null; then
+ if ! curl --head --silent --fail "$location" 2>&1 > /dev/null; then
+ if ! curl --silent --fail "$location" 2>&1 > /dev/null; then
+ # Some URLs are examples or the endpoints helpfully support neither OPTIONS nor HEAD
+ if [[ "$location" = *example* ]] || \
+ [[ "$location" = https://idp-ref.app.ti-dienste.de/auth* ]] || \
+ [[ "$location" = https://idp.app.ti-dienste.de/auth* ]] || \
+ [[ "$location" = https://idp-ref.app.ti-dienste.de/token* ]] || \
+ [[ "$location" = https://idp.app.ti-dienste.de/token* ]] || \
+ [[ "$location" = https://idp-ref.app.ti-dienste.de ]];
+ then
+ warn "$file references non-verifiable location $location"
+ else
+ err "$file references non-existent location $location"
+ rc=1
+ fi
+ fi
+ fi
+ fi
+ else
+ # Strip fragments and prefix absolute paths with repo root
+ path=${location/\#*/}
+ if [[ "$path" == /* ]]; then
+ path=$(git rev-parse --show-toplevel)/$path
+ fi
+
+ if [[ ! -e "$path" ]]; then
+ err "$file references non-existent location $location"
+ rc=1
+ fi
+ fi
+ done < <(grep -hoE 'link:[^\[]*|image::?[^\[]*|https?://[^\["[:space:]]*' "$(basename "$file")" | grep -v '^image:' | sed -E "s/^link:+//g")
+
+ popd > /dev/null
+ done < <(find . -type f -name "*.adoc")
+
+ exit $rc
diff --git a/.github/workflows/GeneratePlantumlImages.yml b/.github/workflows/GeneratePlantumlImages.yml
deleted file mode 100644
index 88b11ee5..00000000
--- a/.github/workflows/GeneratePlantumlImages.yml
+++ /dev/null
@@ -1,105 +0,0 @@
-name: GeneratePlantumlImages
-
-on:
- push:
- branches:
- - '**'
- paths:
- - 'src/plantuml/**'
- - 'src/drawio/**'
-
- workflow_dispatch:
-
-jobs:
- build:
- runs-on: ubuntu-latest
-
- steps:
-
- # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- - uses: actions/checkout@v3
-
- # Installs Java distribution for running the plantUML jar
- - name: Install Java
- uses: actions/setup-java@v3
- with:
- distribution: 'temurin'
- java-version: '11'
- check-latest: true
-
- # Install graphviz for plantuml
- - name: Setup Graphviz
- uses: ts-graphviz/setup-graphviz@v1
-
- # Download plantUML jar
- - name: Download plantuml file
- run: |
- wget -O plantuml.jar "https://github.com/plantuml/plantuml/releases/download/v1.2023.10/plantuml-1.2023.10.jar"
-
- # Runs a single command using the runners shell
- - name: Generate images
- run: |
- imagedir=images/diagrams
- mkdir -p $imagedir
- rm -rf images/diagrams/*
- for fullname in $(find src/plantuml/ -type f -name '*.puml')
- do
- echo "Fullname: ${fullname}"
- base=$(basename "${fullname}" .puml)
- dir=$(dirname $fullname)
- echo "Basename: ${base}"
- outdir=$(dirname $fullname | sed s+src/plantuml+${imagedir}+)
- echo "Outdir: ${outdir}"
- mkdir -p $outdir
- plantoutdir="${PWD}/${outdir}"
- echo "PlantOutdir: ${plantoutdir}"
-
- # PlantUML arguments:
- # -v for verbose output (Debugging)
- # -checkmetadata checks whether the target png/svg has the same source
- # and if there are no changes, doesn't regenerate the image file
- # -o sets the output folder for the png/svg files
- plantargs="-v -checkmetadata -o ${plantoutdir} ${fullname}"
-
- # separate calls are needed, because only one file type can be set
- # per call
- java -jar plantuml.jar -tpng ${plantargs}
- java -jar plantuml.jar -tsvg ${plantargs}
-
- # method with pipes
- #cat "${fullname}" | java -jar plantuml.jar -p -tpng -checkmetadata > "${outdir}/${base}.png"
- #cat "${fullname}" | java -jar plantuml.jar -p -tsvg -checkmetadata > "${outdir}/${base}.svg"
- done
- tree ./images
-
- # creates png files from draw io image files
- - name: Export drawio files as png
- uses: rlespinasse/drawio-export-action@v2
- with:
- path: ./src/drawio/
- output: .
- format: png
- action-mode: all
-
- # creates svg files from draw io image files
- - name: Export drawio files
- uses: rlespinasse/drawio-export-action@v2
- with:
- path: ./src/drawio/
- output: .
- format: svg
- action-mode: all
-
- # copies the created png & svg files to the images/diagrams folder and deletes the drawio files
- - name: Copy draw io
- run: |
- imagedir=images/diagrams
- cp -RT ./src/drawio $imagedir
- find $imagedir -name '*.drawio' -exec rm -rv {} \;
- tree ./images
-
- # add and commit the new generated files
- - name: Add & Commit
- uses: EndBug/add-and-commit@v9
- with:
- add: 'images/diagrams/'
diff --git a/.github/workflows/generate-images.yml b/.github/workflows/generate-images.yml
new file mode 100644
index 00000000..7b89cac7
--- /dev/null
+++ b/.github/workflows/generate-images.yml
@@ -0,0 +1,20 @@
+name: Generate images
+
+on:
+ push:
+ branches:
+ - '**'
+ paths:
+ - '.github/workflows/generate-images.yml'
+ - 'images/generated/**'
+ - '**.drawio'
+ - '**.puml'
+ workflow_dispatch:
+
+jobs:
+ generate:
+ uses: gematik/github-image-actions/.github/workflows/generate-images.yml@0.1.0
+ with:
+ srcdir: src/images
+ outdir: images/generated
+ ref: 0.1.0
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
new file mode 100644
index 00000000..de9d9fdf
--- /dev/null
+++ b/.github/workflows/lint.yml
@@ -0,0 +1,59 @@
+name: Lint
+
+on:
+ pull_request:
+ push:
+ branches:
+ - main
+ workflow_dispatch:
+
+jobs:
+ asciidoc-images:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@v4
+
+ - name: Lint
+ uses: gematik/github-image-actions/.github/actions/lint-asciidoc@0.1.0
+
+ asciidoc-links:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@v4
+
+ - name: Lint
+ uses: ./.github/actions/lint-links
+
+ drawio:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@v4
+
+ - name: Lint
+ uses: gematik/github-image-actions/.github/actions/lint-drawio@0.1.0
+
+ jsonschema:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@v4
+
+ - name: Lint
+ uses: ./.github/actions/lint-jsonschema
+
+ plantuml:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@v4
+
+ - name: Lint
+ uses: gematik/github-image-actions/.github/actions/lint-plantuml@0.1.0
diff --git a/.gitignore b/.gitignore
index ec075869..0f9e309c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
*.dtmp
src/fhir/input-cache
-.idea
\ No newline at end of file
+.idea
+target/
+.DS_Store
diff --git a/README.adoc b/README.adoc
index a28acdf5..9712d517 100644
--- a/README.adoc
+++ b/README.adoc
@@ -14,10 +14,13 @@ ifndef::env-github[:source-style: source]
image::meta/gematik_logo.svg[gematik,width="70%"]
-image:https://img.shields.io/badge/Release%20Notes-v1.1.1‐4-red?style=plastic&logo=github&logoColor=red[link="ReleaseNotes.md"] +
-image:https://img.shields.io/badge/I_TiMessengerContactManagement-v1.0.2-blue?style=plastic&logo=github&logoColor=blue[link=/src/openapi/TiMessengerContactManagement.yaml"] +
-image:https://img.shields.io/badge/TiMessengerTestDriver-v0.9.4-purple?style=plastic&logo=github&logoColor=purple[link="/src/openapi/TiMessengerTestTreiber.yaml"]
-image:https://img.shields.io/badge/TiMessengerTestSuite-v0.9.7-purple?style=plastic&logo=github&logoColor=purple[link="https://github.com/gematik/TI-Messenger-Testsuite"] +
+image:https://github.com/gematik/api-ti-messenger/actions/workflows/lint.yml/badge.svg[link="https://github.com/gematik/api-ti-messenger/actions/workflows/lint.yml"]
+image:https://github.com/gematik/api-ti-messenger/actions/workflows/generate-images.yml/badge.svg[link="https://github.com/gematik/api-ti-messenger/actions/workflows/generate-images.yml"]
+
+image:https://img.shields.io/badge/Release%20Notes-v1.1.1-red?style=plastic&logo=github&logoColor=red[link="ReleaseNotes.md"] +
+image:https://img.shields.io/badge/I_TiMessengerContactManagement-v1.0.1-blue?style=plastic&logo=github&logoColor=blue[link=/src/openapi/TiMessengerContactManagement.yaml"] +
+image:https://img.shields.io/badge/TiMessengerTestDriver-v0.9.2-purple?style=plastic&logo=github&logoColor=purple[link="/src/openapi/TiMessengerTestTreiber.yaml"]
+image:https://img.shields.io/badge/TiMessengerTestSuite-v0.9.2-purple?style=plastic&logo=github&logoColor=purple[link="https://github.com/gematik/TI-Messenger-Testsuite"] +
image:https://img.shields.io/badge/TI‐Messenger‐Dienst-v1.1.1-green?style=plastic&logo=github&logoColor=green[link="https://fachportal.gematik.de/fachportal-import/files/gemSpec_TI-Messenger-Dienst_V1.1.1.pdf"]
image:https://img.shields.io/badge/TI‐Messenger‐FD-v1.1.1-green?style=plastic&logo=github&logoColor=green[link="https://fachportal.gematik.de/fachportal-import/files/gemSpec_TI-Messenger-FD_V1.1.1.pdf"]
image:https://img.shields.io/badge/TI‐Messenger‐Client-v1.1.1-green?style=plastic&logo=github&logoColor=green[link="https://fachportal.gematik.de/fachportal-import/files/gemSpec_TI-Messenger-Client_V1.1.1.pdf"] +
@@ -46,13 +49,9 @@ Für die Dokumentation des *TI-Messenger-Dienstes* werden in GitHub die folgende
== Systemübersicht
Die folgende Abbildung gibt einen Überblick über die Systemarchitektur des *TI-Messenger-Dienst* v1.1.1 insbesondere auf die Schnittstellen zwischen den Komponenten, die in den folgenden Kapiteln weiter betrachtet werden.
-++++
-
-
-
-++++
+image::System_overview.png[width="100%"]
-TIP: Auf die Schnittstellen zur Autentisierung am *Auth-Service* des *VZD-FHIR-Directory* wird in der oben gezeigten Abbildung verzichtet. Die Informationen hierzu können in dem entsprechenden Kapitel für das *VZD-FHIR-Directory* link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.1/docs/FHIR_VZD_HOWTO_Authenticate.adoc#2-fhirdirectoryauthenticationapis[hier] nachgelesen werden.
+TIP: Auf die Schnittstellen zur Autentisierung am *Auth-Service* des *VZD-FHIR-Directory* wird in der oben gezeigten Abbildung verzichtet. Die Informationen hierzu können in dem entsprechenden Kapitel für das *VZD-FHIR-Directory* link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Authenticate.adoc#fhirdirectoryauthenticationapis[hier] nachgelesen werden.
link:docs/Fachdienst/Fachdienst.adoc[*TI Messenger-Fachdienst*]
@@ -69,9 +68,9 @@ link:docs/Client/Client.adoc[*TI Messenger-Client*] +
* Der *TI-Messenger-Client* basiert auf der `Matrix-Client-Server API`. Er wird durch weitere Funktionsmerkmale erweitert und ruft die Schnittstellen am *TI-Messenger-Fachdienst* sowie am *VZD-FHIR-Directory* auf.
-link:docs/FHIR-Directory/FHIR-Directory.adoc[*VZD-FHIR-Directory*] +
+link:https://github.com/gematik/api-vzd/blob/main/docs/Fachkonzept_FHIR-Directory.adoc[*VZD-FHIR-Directory*] +
-* Beim *VZD-FHIR-Directory* handelt es sich um einen zentralen Verzeichnisdient der TI, der die deutschlandweite Suche von Organisationen und Akteuren des *TI-Messenger-Dienstes* ermöglicht. Das *VZD-FHIR-Directory* basiert auf dem FHIR-Standard und bietet für den *TI-Messenger-Dienst* relevante Schnittstellen an. Die Schnittstelle `FHIRDirectoryTIMProviderAPI` wird vom *Registrierungs-Dienst* aufgerufen, um eine Föderationsliste herunterzuladen. Die Schnittstellen `FHIRDirectorySearchAPI` und `FHIRDirectoryOwnerAPI` werden von den *TI-Messenger-Clients* aufgerufen, um eine Suche bzw. einen Eintrag im *FHIR-Directory* zu ermöglichen.
+* Beim *VZD-FHIR-Directory* handelt es sich um einen zentralen Verzeichnisdient der TI, der die deutschlandweite Suche von Organisationen und Akteuren des *TI-Messenger-Dienstes* ermöglicht. Das *VZD-FHIR-Directory* basiert auf dem FHIR-Standard und bietet neben der Suche (`FHIRDirectorySearchAPI`) für den *TI-Messenger-Dienst* Schnittstellen zur Administration der link:docs/Foederationsliste/Foederationsliste.adoc[*Föderationsliste*] an (`FHIRDirectoryTIMProviderAPI`). Zusätzlich existiert für Organisaitonen und Practitioner eine Schnittstelle (`FHIRDirectoryOwnerAPI`), über die die Verwaltung des eigenen Eintrages im *VZD-FHIR-Directory* möglich ist. Details sind dem link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/gemILF_VZD_FHIR_Directory.adoc[*Implementierungsleitfaden*] des *VZD-FHIR-Directory* zu entnehmen.
link:docs/IDP/idp.adoc[*Zentraler IDP-Dienst*] +
@@ -90,22 +89,22 @@ TI-Messenger Dokumentation
├─ link:docs[docs] (weiterführende Informationen)
| ├──── link:docs/Authenticator[Authenticator]
| ├──── link:docs/Client[Client]
-| ├──── link:docs/FHIR-Directory[FHIR-Directory]
+| ├──── link:docs/Foederationsliste[Föderationsliste]
| ├──── link:docs/Fachdienst[Fachdienst]
| ├──── link:docs/IDP[IDP]
| ├──── link:docs/Primaersystem[Primaersystem]
| ├──── link:docs/anwendungsfaelle[Anwendungsfälle]
+| ├──── link:docs/anwendungsfaelle/COM-chatbot.adoc[Chatbot]
+| ├──── link:docs/Test/Test.adoc[Testkonzept]
| └──── link:docs/FAQ[FAQ]
├─ link:images[images] (Bildarchiv)
-│ └──── link:images/diagrams[diagrams] (gerenderte Diagramme)
-│ └── link:images/diagrams/TI-Messenger-Dienst/Ressourcen[Ressourcen] (plantuml-gerenderte Bilder)
+│ └──── link:images/generated[generated] (draw.io & PlantUML gerenderte Bilder)
├─ link:samples[samples] (Codebeispiele, Postman Collections, etc)
├─ link:src[src] (Quellen)
-│ ├──── link:src/drawio[drawio] (Quellen der drawio-Diagramme)
-│ ├──── link:src/openapi[openapi] (Schnittstellenbeschreibungen)
-│ │ ├── link:src/openapi/TiMessengerContactManagement.yaml[TiMessengerContactManagement.yaml] (API-Beschreibung der Freigabeliste)
-│ │ └── link:src/openapi/TiMessengerTestTreiber.yaml[TiMessengerTestTreiber.yaml] (API-Beschreibung der TestTreiber-Schnittstelle)
-│ └──── link:src/plantuml[plantuml] (Quellen der plantuml-Diagramme)
+│ ├──── link:src/images[images] (Quellen der draw.io- und PlantUML-Diagramme)
+│ └──── link:src/openapi[openapi] (Schnittstellenbeschreibungen)
+│ ├── link:src/openapi/TiMessengerContactManagement.yaml[TiMessengerContactManagement.yaml] (API-Beschreibung der Freigabeliste)
+│ └── link:src/openapi/TiMessengerTestTreiber.yaml[TiMessengerTestTreiber.yaml] (API-Beschreibung der TestTreiber-Schnittstelle)
├── link:README.adoc[README.adoc]
├── link:CODE_OF_CONDUCT.md[CODE_OF_CONDUCT.md]
├── link:CONTRIBUTING.md[CONTRIBUTING.md]
@@ -130,30 +129,26 @@ Die nachfolgende Tabelle enthält die in der vorliegenden Online Dokumentation r
|===
== 💡 Onboarding
-Hersteller und Anbieter eines *TI-Messenger-Dienstes* können das von der gematik bereitgestellte https://fachportal.gematik.de/fileadmin/Fachportal/Anwendungen/TI-Messenger/Welcome_Package_TI-Messenger_V1.1.0.pdf[Welcome Package] zum Onboarding nutzen. Dieses Welcome Package ist als "Schritt-für-Schritt"-Anleitung gedacht, um Hersteller und Anbieter beim Onboarding des *TI-Messenger-Dienstes* zu unterstützen.
+Hersteller und Anbieter eines *TI-Messenger-Dienstes* können das von der gematik im https://fachportal.gematik.de/anwendungen/ti-messenger[Fachportal] bereitgestellte Welcome Package zum Onboarding nutzen. Dieses Welcome Package ist als "Schritt-für-Schritt"-Anleitung gedacht, um Hersteller und Anbieter beim Onboarding des *TI-Messenger-Dienstes* zu unterstützen.
== Weiterführende Seiten
-*Anwendungsfälle* +
-link:docs/anwendungsfaelle/TI-Messenger-Anwendungsfaelle.adoc[- Anwendungsfälle]
-
*Produkttypen* +
link:docs/Fachdienst/Fachdienst.adoc[- TI-Messenger-Fachdienst] +
link:docs/Client/Client.adoc[- TI-Messenger-Client] +
-link:docs/FHIR-Directory/FHIR-Directory.adoc[- VZD-FHIR-Directory] +
+link:https://github.com/gematik/api-vzd/blob/main/docs/Fachkonzept_FHIR-Directory.adoc[- VZD-FHIR-Directory] +
link:docs/IDP/idp.adoc[- Zentraler IDP-Dienst] +
*Leitfaden für Primärsystemhersteller* +
link:docs/Primaersystem/Primaersystem.adoc[- Primärsystem] +
*Diverses* +
-https://fachportal.gematik.de/fileadmin/Fachportal/Anwendungen/TI-Messenger/Welcome_Package_TI-Messenger_V1.1.0.pdf[- Welcome Package [DE]] +
-https://fachportal.gematik.de/fileadmin/Fachportal/Anwendungen/TI-Messenger/Welcome_Package_TI-Messenger_V1.1.0_EN.pdf[- Welcome Package [EN]] +
-https://gematikde.sharepoint.com/sites/EXTAuthenticator/Freigegebene%20Dokumente/Forms/AllItems.aspx?id=%2Fsites%2FEXTAuthenticator%2FFreigegebene%20Dokumente%2FVer%C3%B6ffentlichte%20Version%20%2D%20gematik%20Authenticator&p=true&ga=1[- gematik Authenticator] +
+https://fachportal.gematik.de/anwendungen/ti-messenger[- TI-Messenger im gematik Fachportal]
+https://fachportal.gematik.de/hersteller-anbieter/komponenten-dienste/authenticator[- Authenticator im gematik Fachportal] +
https://github.com/gematik/TI-Messenger-Testsuite[- TI-Messenger-Testsuite] +
link:docs/FAQ/FAQ.adoc[- Fragen und Antworten zur aktuellen Spezifikation [FAQ]]
*Referenz-Implementierungen* +
-- [coming soon]
+- [comming soon]
== Lizenzbedingungen
Copyright (c) 2023 gematik GmbH
diff --git a/ReleaseNotes.md b/ReleaseNotes.md
index 31e8196f..a282a608 100644
--- a/ReleaseNotes.md
+++ b/ReleaseNotes.md
@@ -2,6 +2,17 @@
# Release Notes api-ti-messenger
+## tim-pro-1.0.0
+
+### added
+
+- TiMessengerInformation Rest interface
+- Group exceptions in permissionConfig_V1 for TI-M Pro
+
+### changed
+
+- Separate permissionConfig_V1 for TI-M Pro & ePA
+
## Hotfix 1.1.1-9
### removed
diff --git a/docs/Authenticator/authenticator.adoc b/docs/Authenticator/authenticator.adoc
index 99eb3fac..5bdacc4e 100644
--- a/docs/Authenticator/authenticator.adoc
+++ b/docs/Authenticator/authenticator.adoc
@@ -7,7 +7,6 @@ ifdef::env-github[]
endif::[]
:imagesdir: ../../images
-:docsdir: ../docs
:toc: macro
:toclevels: 6
:toc-title: Table of Contents
@@ -26,7 +25,7 @@ Für die Authentifizierung mittels Smartcard stellt die gematik einen eigenen *A
Die Aufgabe des *Authenticators* ist, dass von der *Relying Party* benötigte `ID_TOKEN` mit Zustimmung des Akteurs und nach eingehender Überprüfung dessen Identität am `Authorization-Endpunkt` des *IDP-Dienstes* zu beantragen. Die für die Beantragung des `ID_TOKEN` notwendigen Informationen bekommt der *Authenticator* von der *Relying Party* in der `Authorization Request URL` übergeben. Der von der gematik bereitgestellte *Authenticator* bezieht die Informationen für die notwendige elektronische Signatur im Challenge-Response-Verfahren zum Signieren des `CHALLENGE_TOKEN` von der Smartcard und fordert hierbei den Akteur zur PIN-Eingabe auf. Hierfür nutzt der *Authenticator* die notwendigen Operationen vom Konnektor. Der *Authenticator* fordert im Zusammenhang mit der PIN-Abfrage im selben Dialog die Consent-Freigabe des `USER_CONSENT` durch den Akteur ein, damit dieser durch die PIN-Eingabe seine Willenserklärung abgibt und der Verwendung seiner Daten in diesen `claims` zustimmt.
== Download und Konfiguration des Authenticators
-Die gematik stellt einen https://gematikde.sharepoint.com/sites/EXTAuthenticator/Freigegebene%20Dokumente/Forms/AllItems.aspx?id=%2Fsites%2FEXTAuthenticator%2FFreigegebene%20Dokumente%2FVer%C3%B6ffentlichte%20Version%20%2D%20gematik%20Authenticator&p=true&ga=1[Authenticator] gemäß *[gemSpec_IDP_Frontend]* bereit, der die Authentisierung eines Akteurs am zentralen *IDP-Dienst* unter Verwendung einer Smartcard (SMC-B / HBA) - in Kombination mit einem Konnektor und einem eHealth-Kartenterminal - ermöglicht.
+Die gematik stellt einen https://fachportal.gematik.de/hersteller-anbieter/komponenten-dienste/authenticator[Authenticator] gemäß *[gemSpec_IDP_Frontend]* bereit, der die Authentisierung eines Akteurs am zentralen *IDP-Dienst* unter Verwendung einer Smartcard (SMC-B / HBA) - in Kombination mit einem Konnektor und einem eHealth-Kartenterminal - ermöglicht.
CAUTION: Voraussetzungen für die Nutzung des von der gematik bereitgestellten *Authenticators* sind: +
- Konnektor, +
@@ -50,6 +49,6 @@ WARNING: Der Parameter `cardType` wird erst mit dem Authenticator 4.4 unterstüt
TIP: Sollten sich in den Konnektor-Terminals mehrere SMC-Bs befinden, erfolgt ab Version 4.0.0 des *Authenticators* keine Fehlermeldung mehr, sondern es erscheint ein Auswahldialog mit den vorhandenen SMC-Bs und detaillierten Informationen wie z.B. Kartenhalter und iccsn. Der Benutzer hat nun die Möglichkeit eine SMC-B Karte für den weiteren Auth.-Flow auszuwählen oder diesen durch 'Abbrechen' komplett zu beenden.
== Entwickleroption
-Innerhalb der link:https://gematikde.sharepoint.com/sites/EXTAuthenticator/Freigegebene%20Dokumente/Forms/AllItems.aspx?ga=1&id=%2Fsites%2FEXTAuthenticator%2FFreigegebene%20Dokumente%2FVer%C3%B6ffentlichte%20Version%20%2D%20gematik%20Authenticator%2FMockvariante%20Alpha%2DVersion%20%28TEST%2DONLY%29&viewid=19543cfb%2D531c%2D4ed7%2Da8c1%2D1fbd4aa0d244[Entwicklervariante] des *Authenticators* ist ein Mockmodus integriert, der die Verwendung eines Konnektors simulieren kann. Somit können Funktionstests auch ohne physisch vorhandenen Konnektor durchgeführt werden. Diese Funktion soll die Entwicklung mit dem *Authenticator* vereinfachen, da sie neben einem speziellen Mockmodus auch mehr Logging-Möglichkeiten zur Verfügung stellt. Eine Anleitung für den Mockmodus ist link:https://wiki.gematik.de/display/GAKB/Gematik+Authenticator+-+Entwicklervariante+mit+Mockmodus[hier] zu finden.
+Innerhalb der Entwicklervariante des https://fachportal.gematik.de/hersteller-anbieter/komponenten-dienste/authenticator[Authenticators] ist ein Mockmodus integriert, der die Verwendung eines Konnektors simulieren kann. Somit können Funktionstests auch ohne physisch vorhandenen Konnektor durchgeführt werden. Diese Funktion soll die Entwicklung mit dem *Authenticator* vereinfachen, da sie neben einem speziellen Mockmodus auch mehr Logging-Möglichkeiten zur Verfügung stellt. Eine Anleitung für den Mockmodus ist link:https://wiki.gematik.de/display/GAKB/Gematik+Authenticator+-+Entwicklervariante+mit+Mockmodus[hier] zu finden.
Hersteller die den gematik *Authenticator* für eine smartcardbasierte Authentisierung an ihrer Fachanwendung bzw. ihren Fachdienst anbinden möchten, können die link:https://wiki.gematik.de/display/GAKB/Gematik+Authenticator+SDK+Dokumentation[SDK-Dokumentation] der gematik verwenden. Zusätzlich ist der Quellcode des *Authenticator* link:https://github.com/gematik/app-Authenticator[hier] einsehbar.
diff --git a/docs/Client/Client.adoc b/docs/Client/Client.adoc
index 4e401caf..b23272f7 100644
--- a/docs/Client/Client.adoc
+++ b/docs/Client/Client.adoc
@@ -24,18 +24,14 @@ Im Kontext des *TI-Messenger-Dienstes* wird zwischen den folgenden Ausprägungen
* *TI-Messenger-Clients für Akteure* und
* *TI-Messenger-Clients mit Administrationfunktionen*.
-Beide Arten von Clients basieren auf dem offenen Kommunikationsprotokoll Matrix und werden auf dem Endgerät eines Akteurs verwendet. In der folgenden Dokumentation werden die zwei Ausprägungen der Clients beschrieben.
+Beide Arten von Clients basieren auf dem offenen Kommunikationsprotokoll Matrix und werden auf dem Endgerät eines Akteurs verwendet. In der folgenden Dokumentation werden die zwei Ausprägungen der Clients beschrieben.
IMPORTANT: Die Seite ergänzt die Spezifikation gemäß link:https://fachportal.gematik.de/fachportal-import/files/gemSpec_TI-Messenger-Client_V1.1.1.pdf[[gemSpec_TI-Messenger-Client]], die als Grundlage für das Verständnis vorrausgesetzt wird.
== TI-Messenger-Client für Akteure
Der *TI-Messenger-Client* für Akteure unterstützt die meisten aller, durch die Matrix-Spezifikation festgelegten Funktionalitäten eines Matrix-Messengers und weitere durch die gematik definierten Vorgaben. Die Funktionalität des *TI-Messenger-Clients* für Akteure kann in drei abstrakte Module unterteilt werden. In der folgenden Abbildung wird dies verdeutlicht.
-++++
-
-
-
-++++
+image::I_Client.png[align="center",width="90%"]
=== Abstrakte Module
==== TI-Messenger Modul
@@ -43,7 +39,7 @@ Der *TI-Messenger-Client* für Akteure unterstützt die meisten aller, durch die
NOTE: Der Aufruf der vom *Matrix-Homeserver* angebotenen Schnittstellen der [Matrix - Client-Server API] erfolgt immer über den *Messenger-Proxy*.
-In den folgenden Kapiteln werden die vom _TI-Messenger Modul_ zu verwendenen Schnittstellen sowie die vom *TI-Messenger-Client* bereitzustellenden Funktionen beschrieben.
+In den folgenden Kapiteln werden die vom _TI-Messenger Modul_ zu verwendenen Schnittstellen sowie die vom *TI-Messenger-Client* bereitzustellenden Funktionen beschrieben.
===== Matrix - Client-Server API
Der *Matrix-Homeserver* muss die REST-Schnittstellen gemäß der Matrix https://spec.matrix.org/v1.3/client-server-api/[[Client-Server API]] für den *TI-Messenger-Client* zur Verfügung stellen. Diese müssen für die *TI-Messenger-Clients* aus dem Internet angeboten werden. Für die Verarbeitung der `Matrix-Events` muss der *TI-Messenger-Client* die in der [Matrix-Client-Server API] clientspezifischen Verhaltensweisen implementieren. Diese sind in der API mit dem Keyword _behaviour_ gekennzeichnet. Unter folgendem https://spec.matrix.org/v1.3/client-server-api/#client-behaviour-21[Link] ist ein Beispiel dargestellt.
@@ -55,7 +51,7 @@ CAUTION: Der Playground bildet immer die aktuellste Version der Matrix-Spezifika
Im Rahmen der Verwendung des Matrix-Protokolls im deutschen Gesundheitswesen ist es notwendig, dies um zusätzliche Vorgaben zu erweitern. Hierzu trifft die gematik die folgenden weiteren Festlegungen zum Umgang mit dem Matrix-Protokoll.
====== CreateRoom
-Beim Anlegen eines Raumes über den `/_matrix/client/v3/createRoom` Endpunkt (siehe: link:https://spec.matrix.org/v1.3/client-server-api/#post_matrixclientv3createroom[createRoom]) über die [Client-Server-API] ist darauf zu achten, dass im `invite`-Feld maximal eine Matrix-ID (`MXID`) eines einzuladenden Akteurs angegeben werden darf. Die Vorgabe muss eingehalten werden, damit diese bei der link:../../docs/anwendungsfaelle/MS-stufen-berechtigungspruefung.adoc#stufe-1-pr%C3%BCfung-der-ti-f%C3%B6derationszugeh%C3%B6rigkeit[Proxy Berechtigungsprüfung] validiert werden kann.
+Beim Anlegen eines Raumes über den `/_matrix/client/v3/createRoom` Endpunkt (siehe: link:https://spec.matrix.org/v1.3/client-server-api/#post_matrixclientv3createroom[createRoom]) über die [Client-Server-API] ist darauf zu achten, dass im `invite`-Feld maximal eine Matrix-ID (`MXID`) eines einzuladenden Akteurs angegeben werden darf. Die Vorgabe muss eingehalten werden, damit diese bei der Proxy Berechtigungsprüfung validiert werden kann.
====== Custom Room Types
Das Matrix-Protokoll erlaubt während der Erstellung eines Chatraumes einen eigene Raumtyp (_Custom Room Type_) für diesen mit Hilfe einer Typinitialisierung im `/createRoom`-Endpunkt zu definieren, um spezielle Raumeigenschaften (_Room State Events_) für diesen _Custom Room Type_ zu verwenden. Die gematik definiert für föderierte und fallbezogene Kommunikation die folgenden Raumtypen.
@@ -87,7 +83,7 @@ TIP: Weitere Informationen zu den _Custom State Events_ können in *[gemSpec_Ti-
NOTE: In der veröffentlichten und zulassungsrelevanten Spezifikationsversion v1.1.1 wird die produktive Verwendung der _Custom State Events_ aktuell nicht gefordert, da die notwendigen Vorbedingungen für den produktiven Einsatz seitens des Matrix-Protokolls noch nicht vollständig erfüllt sind.
===== I_TiMessengerContactManagement
-Über die vom *Messenger-Proxy* bereitgestellte Schnittstelle `I_TiMessengerContactManagement` wird die für einen Akteur im Proxy vorgehaltene Freigabeliste administriert. Die Freigabeliste wird in link:/docs/anwendungsfaelle/COM-AF10061-einladung-ausserhalb.adoc[AF10061 - Einladung von Akteuren außerhalb einer Organisation] benötigt, wenn zwei Akteure ihre Kontaktdaten mittels QR-Scan austauschen möchten. Weitere Informationen zu der Schittstelle sind link:../../docs/Fachdienst/MessengerService.adoc#i_timessengercontactmanagement[hier] zu finden.
+Über die vom *Messenger-Proxy* bereitgestellte Schnittstelle `I_TiMessengerContactManagement` wird die für einen Akteur im Proxy vorgehaltene Freigabeliste administriert. Die Freigabeliste wird bei der Einladung von Akteuren außerhalb einer Organisation benötigt, wenn zwei Akteure ihre Kontaktdaten mittels QR-Scan austauschen möchten. Weitere Informationen zu der Schittstelle sind link:../../docs/Fachdienst/MessengerService.adoc#i_timessengercontactmanagement[hier] zu finden.
==== VZD-FHIR-Directory Modul
Über das _VZD-FHIR-Directory Modul_ wird die Suche und die Pflege von Einträgen im *FHIR-Directory* ermöglicht. Hier werden die folgenden Endpunkte der Teilkomponenten *Auth-Services* und *FHIR-Proxy* des *VZD-FHIR-Directory* vom _VZD-FHIR-Directory Modul_ des *TI-Messenger-Clients* angesprochen:
@@ -99,32 +95,31 @@ NOTE: In der veröffentlichten und zulassungsrelevanten Spezifikationsversion v1
- `/search` +
- `/owner`
-Für den Aufruf der beiden Endpunkte `/search` und `/owner` am *FHIR-Proxy* für die Suche und Pflege von Einträgen werden Zugriffstoken benötigt, um die Berechtigung für den Zugriff nachzuweisen. Daher muss der *TI-Messenger-Client* zuvor am *Auth-Service* des *VZD-FHIR-Directory* die notwendigen Token anfragen. Im folgenden werden die Aufrufe der Endpunkte weiter beschrieben.
+Für den Aufruf der beiden Endpunkte `/search` und `/owner` am *FHIR-Proxy* für die Suche und Pflege von Einträgen werden Zugriffstoken benötigt, um die Berechtigung für den Zugriff nachzuweisen. Daher muss der *TI-Messenger-Client* zuvor am *Auth-Service* des *VZD-FHIR-Directory* die notwendigen Token anfragen. Im folgenden werden die Aufrufe der Endpunkte weiter beschrieben.
===== Auth-Service
Der *Auth-Service* des *VZD-FHIR-Directory* bietet die zwei Endpunkte an, die die beiden Zugriffstoken (`search-accesstoken` und `owner-accesstoken`) ausstellen. Die zwei Endpunkte werden in den folgenden Kapiteln weiter beschrieben.
====== /tim-authenticate
-Für den Zugriff auf die Suchfunktionalität von FHIR-Ressourcen (`/search`-Endpunkt) authentisiert sich der *TI-Messenger-Client* gegenüber dem *VZD-FHIR-Directory* mit einem 3rd-Party-Token (`Matrix-OpenID Token`), das er von seinem *Matrix-Homeserver* anfordern kann (siehe link:https://spec.matrix.org/v1.3/client-server-api/#post_matrixclientv3useruseridopenidrequest_token[Matrix OpenID Token]). Dieses 3rd-Party-Token benötigt der *TI-Messenger-Client*, um es beim `/tim-authenticate`-Endpunkt des *VZD-FHIR-Directory* gegen ein `search-accesstoken` einzutauschen. Bei Aufruf des Endpunktes `/tim-authenticate` ist es erforderlich, das 3rd-Party-Token (`Matrix-OpenID-Token`) im Header sowie die URL des *Matrix-Homeservers* im Parameter `MXID` zu übergeben. Der Aufruf des `/tim-authenticate`-Endpunktes ist link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.0/docs/FHIR_VZD_HOWTO_Authenticate.adoc#21-authenticate-for-the-search-endpoint[hier] beschrieben.
+Für den Zugriff auf die Suchfunktionalität von FHIR-Ressourcen (`/search`-Endpunkt) authentisiert sich der *TI-Messenger-Client* gegenüber dem *VZD-FHIR-Directory* mit einem 3rd-Party-Token (`Matrix-OpenID Token`), das er von seinem *Matrix-Homeserver* anfordern kann (siehe link:https://spec.matrix.org/v1.3/client-server-api/#post_matrixclientv3useruseridopenidrequest_token[Matrix OpenID Token]). Dieses 3rd-Party-Token benötigt der *TI-Messenger-Client*, um es beim `/tim-authenticate`-Endpunkt des *VZD-FHIR-Directory* gegen ein `search-accesstoken` einzutauschen. Bei Aufruf des Endpunktes `/tim-authenticate` ist es erforderlich, das 3rd-Party-Token (`Matrix-OpenID-Token`) im Header sowie die URL des *Matrix-Homeservers* im Parameter `MXID` zu übergeben. Der Aufruf des `/tim-authenticate`-Endpunktes ist link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Authenticate.adoc#authenticate-for-the-search-endpoint[hier] beschrieben.
====== /owner-authenticate
-Für die Pflege von FHIR-Ressourcen (`/owner`-Endpunkt) authentisiert sich der *TI-Messenger-Client* gegenüber dem *VZD-FHIR-Directory* unter Verwendung einer Smartcard (HBA), um ein `owner-accesstoken` vom *Auth-Service* zu erhalten. Für die Authentisierung mittels Smartcard ist der von der gematik bereitgestellte link:/docs/IDP/idp.adoc[zentrale IDP-Dienst] zu verwenden. Details sind dem Anwendungsfall link:/docs/anwendungsfaelle/VZD-AF10058-practitioner-hinzufuegen.adoc[AF10058 - Akteur (User-HBA) im Verzeichnisdienst hinzufügen] zu entnehmen. Nach erfolgreicher Authensierung erhält der *TI-Messenger-Client* vom *Auth-Service* ein `owner-accesstoken`. Der Aufruf des `/owner-authenticate`-Endpunktes ist link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.0/docs/FHIR_VZD_HOWTO_Authenticate.adoc#24-authenticate-for-the-owner-endpoint-as-an-user[hier] beschrieben.
+Für die Pflege von FHIR-Ressourcen (`/owner`-Endpunkt) authentisiert sich der *TI-Messenger-Client* gegenüber dem *VZD-FHIR-Directory*, um ein `owner-accesstoken` vom *Auth-Service* zu erhalten. Hierbei gibt es zwei Fälle:
-TIP: Für die Interaktion mit den Smartcards und dem *zentralen IDP-Dienst* ist der link:https://fachportal.gematik.de/hersteller-anbieter/komponenten-dienste/authenticator[gematik authenticator] vorgesehen. Es können auch eigene Authenticator-Lösungen verwendet werden.
-
-Der durchzuführende Authorization Code Flow ist link:/docs/IDP/idp.adoc#4-authorization-code-flow[hier] beschrieben.
+1. Ein Nutzer in der Rolle User-HBA möchte seinen eigenen Practitioner-Datensatz im VZD-FHIR-Directory ändern. Hierzu authentisiert er sich mittels Smartcard (HBA) gegen den von der gematik bereitgestellten link:/docs/IDP/idp.adoc[zentralen IDP-Dienst]. Für die Interaktion zwischen Smartcard und dem *zentralen IDP-Dienst* ist der link:https://fachportal.gematik.de/hersteller-anbieter/komponenten-dienste/authenticator[gematik Authenticator] vorgesehen. Es können aber auch eigene Authenticator-Lösungen verwendet werden. Der durchzuführende Authorization Code Flow ist link:/docs/IDP/idp.adoc#4-authorization-code-flow[hier] beschrieben.
+1. Ein Nutzer in der Rolle Org-Admin möchte den HealthcareService-Datensatz seiner Organisation ändern. Hierzu authentisiert er sich über die Schnittstelle `I_requestToken` gegen den Registrierungs-Dienst um ein RegService-OpenID-Token zu erhalten. Die Schnittstelle `I_requestToken` wird von der gematik nicht näher spezifiziert und obliegt dem jeweiligen TI-Messenger-Anbieter.
===== FHIR Proxy
Der *FHIR-Proxy* bietet zwei Endpunkte zur Suche und Pflege von FHIR-Ressourcen an, die nur unter Verwendung eines gültigen Zugriffstoken aufgerufen werden können. Die zwei Endpunkte werden in den folgenden Kapiteln weiter beschrieben.
====== /search
-Der *FHIR-Proxy* bietet über die Schnittstelle `FHIRDirectorySearchAPI` den Endpunkt `/search` an, um FHIR-Ressourcen zu suchen. Um diesen Endpunkt aufrufen zu können, wird ein `search-accesstoken` im Authorization Header benötigt. Eine beispielhafte Verwendung der Schnittstelle für die Suche von FHIR-Ressourcen ist in link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.0/docs/FHIR_VZD_HOWTO_Search.adoc[search API examples] beschrieben.
+Der *FHIR-Proxy* bietet über die Schnittstelle `FHIRDirectorySearchAPI` den Endpunkt `/search` an, um FHIR-Ressourcen zu suchen. Um diesen Endpunkt aufrufen zu können, wird ein `search-accesstoken` im Authorization Header benötigt. Eine beispielhafte Verwendung der Schnittstelle für die Suche von FHIR-Ressourcen ist in link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Search.adoc[search API examples] beschrieben.
====== /owner
-Der *FHIR-Proxy* bietet über die Schnittstelle `FHIRDirectoryOwnerAPI` den Endpunkt `/owner` an, um FHIR-Ressourcen zu suchen und eigene Einträge zu pflegen. Um diesen Endpunkt aufrufen zu können, wird ein `owner-accesstoken` im Authorization Header benötigt. Eine beispielhafte Verwendung der Schnittstelle zur Pflege der FHIR-Ressourcen ist in link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.0/docs/FHIR_VZD_HOWTO_Owner.adoc[owner API examples] beschrieben.
+Der *FHIR-Proxy* bietet über die Schnittstelle `FHIRDirectoryOwnerAPI` den Endpunkt `/owner` an, um FHIR-Ressourcen zu suchen und eigene Einträge zu pflegen. Um diesen Endpunkt aufrufen zu können, wird ein `owner-accesstoken` im Authorization Header benötigt. Eine beispielhafte Verwendung der Schnittstelle zur Pflege der FHIR-Ressourcen ist in link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Owner.adoc[owner API examples] beschrieben.
==== Auth Modul
-Über das _Auth Modul_ wird die Kommunikation mit Smartcards (HBA) realisiert, um diese zur Authentisierung am `/owner-authenticate`-Endpunkt zu ermöglichen. Dies wird als Grundlage für den Anwendungsfall link:/docs/anwendungsfaelle/VZD-AF10058-practitioner-hinzufuegen.adoc[AF_10058 Akteur(User-HBA) im Verzeichnisdienst hinzufügen] benötigt. Im Folgenden wird der Prozess kurz skizziert, nachdem beim Aufruf des `/owner-authenticate`-Endpunktes das _Auth Modul_ einen `Redirect` zum `Authorization Endpoint` des *IDP-Dienstes* vom *Auth-Service* erhalten hat.
+Über das _Auth Modul_ wird die Kommunikation mit Smartcards (HBA) realisiert, um diese zur Authentisierung am `/owner-authenticate`-Endpunkt zu ermöglichen. Im Folgenden wird der Prozess kurz skizziert, nachdem beim Aufruf des `/owner-authenticate`-Endpunktes das _Auth Modul_ einen `Redirect` zum `Authorization Endpoint` des *IDP-Dienstes* vom *Auth-Service* erhalten hat.
===== Authorization Endpoint zentraler IDP-Dienst
Nach Erhalt des `Redirects` ruft das _Auth Modul_ des *TI-Messenger-Clients* den `{Authorization Endpoint}` am *zentralen IDP-Dienst* auf, um das Challenge-Response-Verfahren durchzuführen und abschließend den `AuthorizationCode` sowie den `Redirect` zum `/signin-gematik-idp-dienst`-Endpunkt zu erhalten.
@@ -134,7 +129,7 @@ An dem Endpunkt `/signin-gematik-idp-dienst` übergibt das _Auth Modul_ des *TI-
=== Bereitstellung weiterer Funktionalitäten
==== Sichbarkeit
-*TI-Messenger-Clients* müssen über eine Funktion verfügen die die Sichtbarkeit eines Akteurs für den *TI-Messenger-Dienst* im Personenverzeichnis über den `/owner`-Endpunkt des *VZD-FHIR-Directory* ein bzw. ausschalten kann. Wenn ein Akteur den Status seines Endpunktes von `active` nach `off` link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.0/docs/FHIR_VZD_HOWTO_Owner.adoc#232-update-endpoint-put[ändert], muss der *TI-Messenger-Client* prüfen, ob diese `MXID` auch im Organisationsverzeichnis eingetragen ist. Wird die `MXID` ebenfalls im Organisationsverzeichnis gefunden und ist der hinterlegte Status in diesem Verzeichnis active, dann ist im *TI-Messenger-Client* dem Akteur ein entsprechender Hinweis anzuzeigen, dass eine Inkonsistenz in der hinterlegten Sichtbarkeit vorliegt.
+*TI-Messenger-Clients* müssen über eine Funktion verfügen die die Sichtbarkeit eines Akteurs für den *TI-Messenger-Dienst* im Personenverzeichnis über den `/owner`-Endpunkt des *VZD-FHIR-Directory* ein bzw. ausschalten kann. Wenn ein Akteur den Status seines Endpunktes von `active` nach `off` link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Owner.adoc#update-endpoint-put[ändert], muss der *TI-Messenger-Client* prüfen, ob diese `MXID` auch im Organisationsverzeichnis eingetragen ist. Wird die `MXID` ebenfalls im Organisationsverzeichnis gefunden und ist der hinterlegte Status in diesem Verzeichnis active, dann ist im *TI-Messenger-Client* dem Akteur ein entsprechender Hinweis anzuzeigen, dass eine Inkonsistenz in der hinterlegten Sichtbarkeit vorliegt.
IMPORTANT: Aus dem Hinweis muss hervorgehen, dass ein Kontaktieren des Administrators seiner Organisation notwendig ist, um die gewünschte Sichtbarkeit ebenfalls im Organisationsverzeichnis zu hinterlegen.
@@ -155,7 +150,7 @@ Der Aufbau der `Matrix-URI` muss gemäß link:https://spec.matrix.org/v1.3/appen
TIP: Bei dem gezeigten vCard-Object handelt es sich um die geforderte Mindestbefüllung, die Verwendung weiterer Felder ist zulässig.
-Der *TI-Messenger-Client* muss den eingescannten 2D-Code gemäß [ISO/IEC 18004:2006] decodieren und mindestens den vollständigen Namen sowie die `MXID` aus den Parameter `N` und `IMPP` dem Akteur anzeigen, damit dieser die Aufnahme in die Freigabeliste bestätigen oder ablehnen kann (siehe link:/docs/anwendungsfaelle/COM-AF10061-einladung-ausserhalb.adoc[AF_10061 - Einladung von Akteuren außerhalb einer Organisation]).
+Der *TI-Messenger-Client* muss den eingescannten 2D-Code gemäß [ISO/IEC 18004:2006] decodieren und mindestens den vollständigen Namen sowie die `MXID` aus den Parameter `N` und `IMPP` dem Akteur anzeigen, damit dieser die Aufnahme in die Freigabeliste bestätigen oder ablehnen kann.
==== Editierbarkeit von Displaynamen
Der *TI-Messenger-Client* muss bei der initialen Vergabe des Displayname die folgende Bildungsregel durchsetzen: `[Name], [Vorname]`. Der *TI-Messenger-Client* darf dem Akteur nach der initialen Vergabe des Displaynamen nicht die Möglichkeit anbieten, diesen zu ändern. Hierfür darf der *TI-Messenger-Client* nicht die REST-Schnittstelle `/_matrix/client/v3/profile/{userId}/displayname` der [Client-Server API] aufrufen.
@@ -176,18 +171,18 @@ Mit dem *Org-Admin-Client* haben Administratoren einer Organisation die Möglich
* Einrichtung von Funktionsaccounts.
==== Organisationsressourcen im VZD-FHIR-Directory bearbeiten
-Der Administrator einer Organisation (in der Rolle "Org-Admin") verwaltet mittels des *Org-Admin-Clients* die FHIR-Ressourcen für seine Organisation im *VZD-FHIR-Directory* (siehe link:/docs/anwendungsfaelle/VZD-AF10059-organisation-hinzufuegen.adoc[AF_10059 - Organisationsressourcen im Verzeichnisdienst hinzufügen]).
+Der Administrator einer Organisation (in der Rolle "Org-Admin") verwaltet mittels des *Org-Admin-Clients* die FHIR-Ressourcen für seine Organisation im *VZD-FHIR-Directory*.
*Authentisierung*
-Für den Zugriff auf die `/owner`-Schnittstelle am *FHIR-Proxy* wird ein `owner-accesstoken` benötigt, das vom `/owner-authenticate`-Endpunkt des *Auth-Service* ausgestellt wird. Zur Authentisierung am Endpunkt fragt der *Org-Admin-Client* beim zuständigen *Registrierungs-Dienst* einen `RegService-OpenID-Token` an, welcher am `/owner-authenticate`-Endpunkt gegen ein `owner-accesstoken` ausgetauscht wird. Ein Beispiel für die Authentisierung ist link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.0/docs/FHIR_VZD_HOWTO_Authenticate.adoc#231-authenticate-with-an-regservice-openid-token[hier] zu finden.
+Für den Zugriff auf die `/owner`-Schnittstelle am *FHIR-Proxy* wird ein `owner-accesstoken` benötigt, das vom `/owner-authenticate`-Endpunkt des *Auth-Service* ausgestellt wird. Zur Authentisierung am Endpunkt fragt der *Org-Admin-Client* beim zuständigen *Registrierungs-Dienst* einen `RegService-OpenID-Token` an, welcher am `/owner-authenticate`-Endpunkt gegen ein `owner-accesstoken` ausgetauscht wird. Ein Beispiel für die Authentisierung ist link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Authenticate.adoc#authenticate-with-an-regservice-openid-token[hier] zu finden.
*Bearbeitung*
-Zur Pflege der FHIR-Ressourcen ist es erforderlich, dass der *Org-Admin-Client* den Endpunkt `/owner` unter Verwendung des `owner-accesstoken` (welches im Authorization Header mit übergeben werden muss) aufruft. Eine beispielhafte Verwendung der Schnittstelle zur Pflege der FHIR-Ressourcen ist in der link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.0/docs/FHIR_VZD_HOWTO_Owner.adoc[owner API examples] beschrieben. Der vom *Org-Admin-Client* angebotene Funktionsumfang ist:
+Zur Pflege der FHIR-Ressourcen ist es erforderlich, dass der *Org-Admin-Client* den Endpunkt `/owner` unter Verwendung des `owner-accesstoken` (welches im Authorization Header mit übergeben werden muss) aufruft. Eine beispielhafte Verwendung der Schnittstelle zur Pflege der FHIR-Ressourcen ist in der link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Owner.adoc[owner API examples] beschrieben. Der vom *Org-Admin-Client* angebotene Funktionsumfang ist:
-* Verwaltung von link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.0/docs/FHIR_VZD_HOWTO_Owner.adoc#22-administration-of-resource-healthcareservice[HealthcareServices] und
-* Verwaltung von link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.0/docs/FHIR_VZD_HOWTO_Owner.adoc#23-administration-of-resource-endpoint--metatagoriginowner[Endpoints].
+* Verwaltung von link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Owner.adoc#administration-of-resource-healthcareservice[HealthcareServices] und
+* Verwaltung von link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Owner.adoc#administration-of-resource-endpoint-meta-tag-originowner[Endpoints].
==== Funktionsaccounts
Einrichtungen im Gesundheitswesen sind sehr unterschiedlich strukturiert und wollen hinsichtlich ihrer Erreichbarkeit flexibel eigene Strukturen abbilden können. Daher sind beim *TI-Messenger-Dienst* Funktionsaccounts notwendig, die es ermöglichen, Akteure unterhalb der Struktur erreichbar zu machen. Hierfür ist es erforderlich das über den *Org-Admin-Client* ein `Endpoint` im *FHIR-Directory* angelegt wird.
diff --git a/docs/FHIR-Directory/FHIR-Directory.adoc b/docs/FHIR-Directory/FHIR-Directory.adoc
deleted file mode 100644
index fdc29f49..00000000
--- a/docs/FHIR-Directory/FHIR-Directory.adoc
+++ /dev/null
@@ -1,100 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-:toc: macro
-:toclevels: 5
-:toc-title: Table of Contents
-:numbered:
-
-image:meta/gematik_logo.svg[width=70%]
-
-toc::[]
-
-= VZD-FHIR-Directory
-Beim *VZD-FHIR-Directory* handelt es sich um einen zentralen Verzeichnisdient der TI. Im Rahmen des *TI-Messenger-Dienstes* wird das *VZD-FHIR-Directory* für die deutschlandweite Suche von Organisationen und Akteuren verwendet. Zusätzlich stellt das *VZD-FHIR-Directory* Funktionalitäten bereit, um die in den *Messenger-Proxy* implementierten link:/docs/anwendungsfaelle/MS-stufen-berechtigungspruefung.adoc[Berechtigungsstufen] zu unterstützen.
-
-Dabei besteht das *VZD-FHIR-Directory* aus den Teilkomponenten:
-
-* FHIR-Directory,
-* OAuth-Service,
-* Auth-Service und
-* FHIR-Proxy
-
-die benötigt werden, um alle Funktionsmerkmale abbilden zu können.
-
-In der folgenden Abbildung sind die Teilkomponenten sowie deren Schnittstellen und die für deren Zugriff benötigten Zugriffstoken dargestellt:
-
-++++
-
-
-
-++++
-
-== FHIR-Directory / Verzeichnistypen
-Das *FHIR-Directory* basiert auf link:https://hl7.org/fhir/R4/[FHIR R4] und stellt die zwei Verzeichnisse `HealthcareServiceDirectory`- und `PractitionerRoleDirectory` bereit. Die Profilierung der FHIR-Ressourcen ist im link:https://simplifier.net/vzd-fhir-directory[Simplifier] aufrufbar.
-
-Im folgenden sind die beiden Verzeichnisse mit deren Struktur beispielhaft dargestellt:
-
-* `HealthcareService`
-
-++++
-
-
-
-++++
-
-* `PractitionerRole`
-
-++++
-
-
-
-++++
-
-Im Rahmen des *TI-Messenger-Dienstes* sollen die folgenden Attribute eines `Endpoints` eines `HealthcareService` oder einer `PractitionerRole` wie folgt gesetzt werden:
-
-[options="header"]
-|=================================================================================================================
-| Attribut | Wert | Beschreibung
-| `endpoint.status` | `active` | Sichtbarkeit des Endpunktes im Verzeichnisdienst
-| `endpoint.connectionType` | `tim` | Gibt an, um welche Anwendung es sich handelt
-| `endpoint.name` | `` | Identifier des Endpoints
-| `endpoint.PayloadType` | `tim-chat` | Kennung der Übertragenen Inhalte
-| `endpoint.address` |`` | Matrix-UserID eines Akteurs
-|=================================================================================================================
-
-Beispiel: * `HealthcareService.endpoint.address = `
-
-Weitere Informationen zu den Verzeichnistypen können link:https://github.com/gematik/api-vzd/blob/main/docs/Fachkonzept_FHIR-Directory.adoc#datenstruktur-im-fhir-directory[hier] nachgelesen werden.
-
-== OAuth-Service
-Der *OAuth-Service* stellt ein `ti-provider-accesstoken` aus, welches am `/ti-provider-authenticate`-Endpunkt übergeben werden muss. Hierfür muss sich ein Anbieter eines *TI-Messenger-Fachdienstes* mittels seiner link:/docs/Fachdienst/Fachdienst.adoc#214-beantragung-der-ti-provider-credentials-am-vzd-fhir-directory[Zugangsdaten] am OAuth-Service authentisieren.
-Der Aufruf des Endpunktes kann https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.1/docs/FHIR_VZD_HOWTO_Authenticate.adoc#22-authenticate-for-the-provider-api[hier] nachgelesen werden.
-
-== Auth-Service
-Der *Auth-Service* stellt Zugriffstoken aus, die für den Zugriff auf die Endpunkte am *FHIR-Proxy* benötigt werden. Der Aufruf der Endpunkte am *Auth-Service* ist link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.1/docs/FHIR_VZD_HOWTO_Authenticate.adoc#2-fhirdirectoryauthenticationapis[dort] beschrieben.
-
-== FHIR-Proxy
-Der *FHIR-Proxy* gibt Zugriff auf das *FHIR-Directory* unter Vorlage eines validen `ACCESS_TOKEN` und somit auf die FHIR-Ressourcen. Die vom *FHIR-Proxy* zur Verfügung gestellten Endpunkte werden für die Suche und Pflege von FHIR-Ressourcen verwendet sowie zur Pflege eigener TIM Provider Einträge. Der Aufruf der Endpunkte am *FHIR-Proxy* sind der folgenden Aufzählung zu entnehmen:
-
-* https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.1/docs/FHIR_VZD_HOWTO_Provider.adoc#2-fhirdirectoryproviderapi[/tim-provider-services]
-
-* https://github.com/gematik/api-vzd/blob//1.0.1/docs/FHIR_VZD_HOWTO_Search.adoc#21-fhirdirectorysearchapi-search-for-practitioners-and-organizations[/search]
-
-* https://github.com/gematik/api-vzd/blob//1.0.1/docs/FHIR_VZD_HOWTO_Owner.adoc#2-fhirdirectoryownerapi[/owner]
-
-TIP: Die Anbieter eines *TI-Messenger-Fachdienstes* nutzen die Schnittstelle `/tim-provider-services`, um die Föderationsliste des *TI-Messenger-Dienstes* abzufragen und um die Domains der von ihnen betriebenen *Messenger-Services* als Teil der TI-Messenger Föderation zu verwalten.
-
-IMPORTANT: Die Volltextsuche über die Schnittstellen `/search` und `/owner` wird aktuell nicht vom *VZD-FHIR-Directory* unterstützt. Hierfür können die folgenden RegEx *_text* and *_content* verwendet werden. Für mehr Informationen kann die folgende link:http://hl7.org/fhir/R4/search.html#content[Dokumentation] verwendet werden.
-
-
-
-
-
-
diff --git a/docs/Fachdienst/Fachdienst.adoc b/docs/Fachdienst/Fachdienst.adoc
index 95457fcc..e204bae3 100644
--- a/docs/Fachdienst/Fachdienst.adoc
+++ b/docs/Fachdienst/Fachdienst.adoc
@@ -23,11 +23,7 @@ IMPORTANT: Die Seite ergänzt die Spezifikation gemäß link:https://fachportal.
Der *TI-Messenger-Fachdienst* besteht aus unterschiedlichen Teilkomponenten und Schnittstellen. Die nachfolge Abbildung verdeutlicht den Zusammenhang zwischen den Komponenten und den Kommunikationsschnittstellen.
-++++
-
-
-
-++++
+image::I_Fachdienst.png[width="100%"]
Der *TI-Messenger-Fachdienst* besteht aus den folgenden Teilkomponenten :
@@ -49,10 +45,10 @@ Die gematik stellt ein IT Service Management System für die TI-Anbieter zur Ver
* für die Beantragung der `TI-Provider-Credentials` für die Anbieterschnittstelle des *VZD-FHIR-Directory* und +
* die Registrierung des *Registrierungs-Dienstes* beim zentralen *IDP-Dienst* der gematik.
-Hierfür ist es erforderlich, dass sich ein Anbieter eines *TI-Messenger-Dienstes* beim TI-ITSM-System ongeboardet wird. Weitere Information sind im https://gematikde.sharepoint.com/:w:/s/PTNeo/EczX7AFGfBdNrCYghzGsHz4BbSoYhV63QMmDCdz7x9zLpg?e=7wG3c[Welcome Package] Schritt 4 zu finden. Das TI-ITSM-System ist unter der folgenden Internetseite erreichbar: https://www.ti-itsm.de
+Hierfür ist es erforderlich, dass sich ein Anbieter eines *TI-Messenger-Dienstes* beim TI-ITSM-System ongeboardet wird. Weitere Information können dem im https://fachportal.gematik.de/anwendungen/ti-messenger[Fachportal] bereitgestelltem Welcome Package (Schritt 4) entnommen werden. Das TI-ITSM-System ist unter der folgenden Internetseite erreichbar: https://www.ti-itsm.de
==== Zugang zum PKI-Management-System (PMS)
-Um das Signaturzertifikat (welches für die Signatur des `RegService-OpenID-Token` benötigt wird) abrufen zu können, müssen vorher ein Benutzeraccount und Berechtigungen über weitere Service-Requests für die Organisation und den Benutzer (nur Root-User) im TI-ITSM-System beantragt werden. Weitere Informationen sind im link:https://gematikde.sharepoint.com/:w:/s/PTNeo/EczX7AFGfBdNrCYghzGsHz4BbSoYhV63QMmDCdz7x9zLpg?e=7wG3c[Welcome Package] Schritt 6 zu entnehmen.
+Um das Signaturzertifikat (welches für die Signatur des `RegService-OpenID-Token` benötigt wird) abrufen zu können, müssen vorher ein Benutzeraccount und Berechtigungen über weitere Service-Requests für die Organisation und den Benutzer (nur Root-User) im TI-ITSM-System beantragt werden. Weitere Information können dem im https://fachportal.gematik.de/anwendungen/ti-messenger[Fachportal] bereitgestelltem Welcome Package (Schritt 6) entnommen werden.
Zugang zum PMS:
@@ -60,7 +56,7 @@ Zugang zum PMS:
* PU: https://auth.ti-dienste.de/my.policy
==== Erstellung des Signaturzertifikates für den Anbeiter
-Für die Signierung eines `RegService-OpenID-Token` durch den *Registrierungs-Dienst* eines *TI-Messenger-Fachdienstes* wird ein Signaturzertifikat der PKI der Telematikinfrastruktur benötigt. Das Zertifikat muss den Typ `C.FD.SIG` und die technische Rolle `oid_tim` haben. Die Beantragung des Signaturzertifikates erfolg über das TI-ITSM-System und ist anschließend über das PMS abrufbar (siehe hierzu https://gematikde.sharepoint.com/:w:/s/PTNeo/EczX7AFGfBdNrCYghzGsHz4BbSoYhV63QMmDCdz7x9zLpg?e=7wG3c[Welcome Package] Schritt 6)
+Für die Signierung eines `RegService-OpenID-Token` durch den *Registrierungs-Dienst* eines *TI-Messenger-Fachdienstes* wird ein Signaturzertifikat der PKI der Telematikinfrastruktur benötigt. Das Zertifikat muss den Typ `C.FD.SIG` und die technische Rolle `oid_tim` haben. Die Beantragung des Signaturzertifikates erfolg über das TI-ITSM-System und ist anschließend über das PMS abrufbar. Weitere Information können dem im https://fachportal.gematik.de/anwendungen/ti-messenger[Fachportal] bereitgestelltem Welcome Package (Schritt 6) entnommen werden.
==== Beantragung der TI-Provider-Credentials am VZD-FHIR-Directory
@@ -68,6 +64,6 @@ Initial muss der Anbieter eines *TI-Messenger-Dienstes* `TI-Provider-Credentials
=== Bekanntmachung des Registrierungs-Dienstes am zentralen IDP-Dienst
-Es besteht bereits eine abgeschlossene Scope-Registrierung am zentralen *IDP-Dienst* für den *TI-Messenger-Dienst*. Daher ist es nur erforderlich ber der gematik eine `client_id` für den *Registrierungs-Dienst* zu beantragen. Hierfür benötigt die gematik im Registrierungsformular die `redirect_uri` des *Registrierungs-Dienstes*, die zu der `client_id` registriert wird. Das Registrierungsformular kann unter idp-registrierung@gematik.de angefragt werden. Nach der Registrierung erhält der Anbieter die registrierte `client_id` sowie den Download-Endpunkt des Discovery Documentes des zentralen *IDP-Dienstes*. Weitere Informationen sind im https://gematikde.sharepoint.com/:w:/s/PTNeo/EczX7AFGfBdNrCYghzGsHz4BbSoYhV63QMmDCdz7x9zLpg?e=7wG3c[Welcome Package] Schritt 5 zu finden.
+Es besteht bereits eine abgeschlossene Scope-Registrierung am zentralen *IDP-Dienst* für den *TI-Messenger-Dienst*. Daher ist es nur erforderlich ber der gematik eine `client_id` für den *Registrierungs-Dienst* zu beantragen. Hierfür benötigt die gematik im Registrierungsformular die `redirect_uri` des *Registrierungs-Dienstes*, die zu der `client_id` registriert wird. Das Registrierungsformular kann unter idp-registrierung@gematik.de angefragt werden. Nach der Registrierung erhält der Anbieter die registrierte `client_id` sowie den Download-Endpunkt des Discovery Documentes des zentralen *IDP-Dienstes*. Weitere Information können dem im https://fachportal.gematik.de/anwendungen/ti-messenger[Fachportal] bereitgestelltem Welcome Package (Schritt 5) entnommen werden.
diff --git a/docs/Fachdienst/MessengerService.adoc b/docs/Fachdienst/MessengerService.adoc
index 62ef21b7..dd5ef495 100644
--- a/docs/Fachdienst/MessengerService.adoc
+++ b/docs/Fachdienst/MessengerService.adoc
@@ -18,47 +18,49 @@ image:meta/gematik_logo.svg[width=70%]
toc::[]
= Messenger-Service
+Die folgende Seite gibt einen kurzen Überblick über die Funktionalitäten und Komponeten des *Messenger-Service* und beschreibt die Unterschiede des *Messenger-Service* für die unterschiedlichen Produktausprägungen des *TI-Messengers*. Details sind den Spezifikationen auf den link:https://gemspec.gematik.de/[gemspec Pages] der gematik zu entnehmen.
+
== Überblick
-Ein *Messenger-Service* besteht immer aus den zwei Teilkomponenten *Messenger-Proxy* und *Matrix-Homeserver*. Der *Messenger-Proxy* dient als Prüfinstanz und leitet alle Anfragen an den *Matrix-Homeserver* weiter. Der *Matrix-Homeserver* basiert auf dem offenen Kommunikationsprotokoll link:https://spec.matrix.org/v1.3/[Matrix]. Welche Schnittstellen der *Messenger-Service* nutzt und anbietet ist in der folgenden Abbildung dargestellt:
+Der *Messenger-Service* ist eine Teilkomponente des *TI-M Fachdienstes* und wird für Organisationen des Gesundheitswesens (z. B. Arztpraxis, Krankenhaus, Krankenkasse, Apotheke, Verband, Kostenträger etc.) bereitgestellt. Der *Messenger-Service* besteht aus einem *Matrix-Homeserver* (basierend auf dem Matrix-Protokoll) und einem *Messenger-Proxy*. Dieser stellt sicher, dass eine Kommunikation mit anderen Messenger-Services, als Teil des *TI-M Dienstes*, nur innerhalb der gemeinsamen *TI-Föderation* erfolgt. Der *Matrix-Homeserver* basiert auf dem offenen Kommunikationsprotokoll link:https://spec.matrix.org/[Matrix]. Welche Schnittstellen der *Messenger-Service* nutzt und anbietet ist in der folgenden Abbildung dargestellt:
+
+image::generated/TI-M_Basis/API-Messenger-Service.svg[align="center",width="55%"]
-++++
-
-
-
-++++
+==== Authentifizierungsverfahren
+*Messenger-Services* können den Akteuren unterschiedliche Authentifizierungsverfahren anbieten. Dabei können diverse Authentifizierungsmechanismen durch eine Organisation für Ihre Akteure bereitgestellt werden. Die Organisation und der von ihr gewählte *TI-Messenger-Anbieter* vereinbaren das zur Anwendung kommende Authentifizierungsverfahren bilateral und stimmen sich über die technische Realisierung der dafür notwendigen Anbindung ab.
== Messenger-Proxy
-=== Schnittstellen
-==== Matrix Client-Server / Server-Server API
+Der *Messenger-Proxy* agiert neben der Funktion als Proxy zur Weiterleitung aller Server-Server-API- und Client-Server-API-Aufrufe an den *Matrix-Homeserver* als Kontrollinstanz zur Prüfung der für die Kommunikation notwendigen Rechte. Hierfür muss der *Messenger-Proxy* für alle Server-Server- und Client-Server-API-Endpunkte genutzt werden und ist für die Regelung der gemäß Matrix Client-Server-API und Matrix-Server-Server-API geltenden Aufrufe zuständig.
+
+==== Client-Server Prüfungen
Der *Messenger-Proxy* als Prüfinstanz aller eingehenden, sowie ausgehenden Anfragen zum *Matrix-Homeserver* ist für die Regelung der gemäß Matrix-Client-Server-API und Matrix-Server-Server-API geltenden Aufrufe zuständig. Daher ist es erforderlich, dass der *Messenger-Proxy* für jeden *Messenger-Service* als Forward- sowie Reverse-Proxy bereitgestellt wird. Die folgende Abbildung verdeutlicht die beide gerade skizzierten Funktionsweisen.
-++++
-
-
-
-++++
-Bei Aufruf der Client-Server-API durch einen *TI-Messenger-Client* aus dem Internet fungiert der *Messenger-Proxy* als Reverse-Proxy. Beim Aufruf der Server-Server-API im Rahmen einer Server-To-Server Kommunikation fungiert der *Messenger-Proxy* als Forward-, sowie als Reverse-Proxy.
-CAUTION: Der *Messenger-Proxy* routet gültige Anfragen zum *Matrix-Homeserver* und muss nicht selbst das Matrix-Protokoll implementieren.
+image::generated/TI-M_Basis/Pruefungen_Messenger_Proxy.svg[width="100%"]
-==== Authentifizierungsverfahren
-Diese von der gematik nicht normativ vorgegebene Schnittstelle wird benötigt, um die geforderte 2-Faktor-Authentifizierung zu realisieren, da diese Funktionalität aktuell von keinem *Matrix-Homeserver* angeboten wird (siehe link:https://github.com/matrix-org/matrix-spec-proposals/pull/1998[MSC1998]). Hierfür muss der *Messenger-Proxy* die Möglichkeit bieten, mit externen Authentisierungsdiensten zu interagieren.
+Bei Aufruf der Client-Server-API durch einen *TI-Messenger-Client* aus dem Internet fungiert der *Messenger-Proxy* als Reverse-Proxy. Beim Aufruf der Server-Server-API im Rahmen einer Server-To-Server Kommunikation fungiert der *Messenger-Proxy* als Forward-, sowie als Reverse-Proxy.
-TIP: Mit der zukünftigten Unterstützung von link:https://areweoidcyet.com[OIDC] durch die *Matrix-Homeserver*, wird die geforderte Unterstützung durch den *Messenger-Proxy* nicht mehr benötigt.
+Die folgenden Prüfungen sind durch den *Messenger-Proxy* durchzuführen:
+- Der *Messenger-Proxy* muss sicherstellen, dass beim Anlegen eines Raumes das Attribut `invite` mit maximal einer *MXID* befüllt ist.
+- Bei jedem `Invite-Event` muss der *Messenger-Proxy* prüfen, ob die in der Anfrage enthaltenen Matrix-Domains zur *TI-Föderation* gehören.
+- Der *Messenger-Proxy* muss bei eingehender Kommunikation auf die Medien-Endpunkte die Pfadkomponente {serverName} auf Föderationszugehörigkeit prüfen
-==== I_TiMessengerContactManagement
-Der *Messenger-Proxy* muss die Schnittstelle `I_TiMessengerContactManagement` als REST-Webservice über HTTPS gemäß link:/src/openapi/TiMessengerContactManagement.yaml[TiMessengerContactManagement.yaml] umsetzen, um den *TI-Messenger-Clients* die Verwaltung einer persönlichen Freigabeliste zu ermöglichen.
-Die Schnittstelle findet u.a. Verwendung in link:/docs/anwendungsfaelle/COM-AF10061-einladung-ausserhalb.adoc[AF_10061 - Einladung von Akteuren außerhalb einer Organisation].
+==== Server-Server Prüfungen
+In der Funktion als Server-Server Proxy prüft der Messenger-Proxy alle ausgehenden sowie eingehenden Events. Damit fungiert der Server-Server Proxy sowohl als Forward als auch als Reverse-Proxy.
+Die folgenden Prüfungen sind durch den *Messenger-Proxy* durchzuführen:
+- Bei jedem Event muss der *Messenger-Proxy* die Föderationszugehörigkeit der im Event enthaltenen Matrix-Domains prüfen.
+- Ist auf einem eingehenden Request, im *Authorization-Header* das Attribut `origin` gesetzt, so muss der *Messenger-Proxy* den enthaltenen Servernamen auf Föderationszugehörigkeit prüfen.
+- Ist auf einem ausgehenden Request, im *Authorization-Header* das Attribut `destination` gesetzt, so muss der *Messenger-Proxy* den enthaltenen Servernamen auf Föderationszugehörigkeit prüfen.
+- Der *Messenger-Proxy* muss bei ausgehender Kommunikation zum Endpunkt `/.well-known/matrix/server` den im Host-Header enthaltenen Servernamen auf Föderationszugehörigkeit prüfen.
+- Der *Messenger-Proxy* muss bei ausgehender Kommunikation auf die Medien-Endpunkte die Pfadkomponente {serverName} auf Föderationszugehörigkeit prüfen
-=== Berechtigungsprüfung
-Die Berechtigungsprüfung findet bei der Client-Server Kommunikation sowie bei der Server-Server Kommunikation statt (siehe link:/docs/anwendungsfaelle/MS-stufen-berechtigungspruefung.adoc[Stufen der Berechtigungsprüfung]).
+=== HTTPS-Forwarding
+Die Kommunikation des *Matrix-Homeservers* in das Internet muss immer über den eigenen *Messenger-Proxy* (in der Funktion als Forward-Proxy) erfolgen.
+
+==== Ausnahmeregeln definieren
+Für bestimmte Funktionalitäten ist es notwendig, dass Anfragen nicht durch die Berechtigungsprüfung des *Messenger-Proxys* abgelehnt werden. So muss eine Anfrage des *VZD-FHIR-Directory* an die link:https://spec.matrix.org/v1.11/server-server-api/#getwell-knownmatrixserver[.well-known] Datei erlaubt sein, um einen eigenen Port für Anfragen des *VZD-FHIR-Directoy* zu hinterlegen, um später über diesen Port den `/_matrix/federation/v1/openid/userinfo`-Endpunkt aufzurufen. Hierzu muss der *Messenger-Proxy* ebenfalls den Zugriff erlauben, damit das *VZD-FHIR-Directory* einen `Matrix-OpenID-Token` prüfen lassen kann.
-=== Betriebliche Aspekte
==== Abruf und Signaturprüfung der Föderationsliste
Eine aktuelle Version der Föderationsliste wird vom *Messenger-Proxy* über die Schnittstelle `I_internVerification` abgerufen. Der Abruf erfolgt entweder zyklisch über ein vom Anbieter definiertes Intervall oder im Rahmen der Föderationsprüfung, wenn eine Domain in der aktuell vorliegenden Liste nicht enthalten ist.
-Der *Messenger-Proxy* muss sicherstellen, dass die vom *Registrierungs-Dienst* bereitgestellte Föderationsliste valide ist. Hierzu muss der *Messenger-Proxy* die Signatur der Föderationsliste unter Verwendung des mitgelieferten Signaturzertifikates (`x5c`-Header) überprüfen (siehe link:/docs/anwendungsfaelle/MS-aktualisierung-foederationsliste.adoc[Aktualisierung der Föderationsliste]).
-
-==== .well-known & userinfo
-Für bestimmte Funktionalitäten ist es notwendig, dass Anfragen nicht durch die Berechtigungsprüfung des *Messenger-Proxys* abgelehnt werden. So muss eine Anfrage des *VZD-FHIR-Directory* an die link:https://spec.matrix.org/v1.3/server-server-api/#getwell-knownmatrixserver[.well-known] Datei erlaubt sein, um einen eigenen Port für Anfragen des *VZD-FHIR-Directoy* zu hinterlegen, um später über diesen Port den `/_matrix/federation/v1/openid/userinfo`-Endpunkt aufzurufen. Hierzu muss der *Messenger-Proxy* ebenfalls den Zugriff erlauben, damit das *VZD-FHIR-Directory* einen `Matrix-OpenID-Token` prüfen lassen kann.
+Der *Messenger-Proxy* muss sicherstellen, dass die vom *Registrierungs-Dienst* bereitgestellte Föderationsliste valide ist. Hierzu muss der *Messenger-Proxy* die Signatur der Föderationsliste unter Verwendung des mitgelieferten Signaturzertifikates (`x5c`-Header) überprüfen.
==== logische Mandantentrennung
Werden durch einen Anbieter eines *TI-Messenger-Fachdienstes* mehrere Matrix-Domains in einem gemeinsamen *Messenger-Service* betrieben, so muss die logische Trennung der Matrix-Domains sichergestellt werden. Die Art der Umsetzung bleibt dem Hersteller eines *TI-Messenger-Fachdienstes* überlassen.
@@ -67,14 +69,43 @@ TIP: Empfehlung der gematik ist eine Mandantentrennung über seperate *Messenger
Eine mögliche Umsetzung wäre die Mandantentrennung über einen Matrix-Server zu realisieren, der mehrere Domains unterstützt. Diese Funktionalität wird aktuell von keinem Matrix-Server angeboten.
-CAUTION: Bei einer logischen Mandantentrennung muss sichergestellt werden, dass die Prüfung der Föderationszugehörigkeit (Zuordnung SMC-B zu Domain) sichergestellt ist und jeder mandantenübergreifende Zugriff verhindert wird.
+CAUTION: Bei einer logischen Mandantentrennung muss sichergestellt werden, dass die Prüfung der Föderationszugehörigkeit (Zuordnung SM\(C)-B zu Domain) sichergestellt ist und jeder mandantenübergreifende Zugriff verhindert wird.
== Matrix-Homeserver
-Der *Matrix-Homeserver* muss die link:https://spec.matrix.org/v1.3/server-server-api/[Server-Server API] und link:https://spec.matrix.org/v1.3/client-server-api/[Client-Server API] gemäß der Matrix-Spezifikationen in der Version v1.3 umsetzen.
+Der *Matrix-Homeserver* ist die zentrale Komponente für die Kommunikation zwischen den Akteuren und stellt den *TI-M Clients* die in der Matrix Spezifikation definierten Endpunkte zur Verfügung. Der Matrix-Homeserver verwaltet die Akteure selbst oder bietet eine Schnittstelle für einen externen Identity Provider an, um das Authentifizierungsverfahren der Organisation nachnutzen zu können.
+
+TIP: Als Referenz für einen Homeserver wird die link:https://github.com/element-hq/synapse[synapse Referenzimplementierung] empfohlen.
+
+=== Matrix-Version
+Der *Matrix-Homeserver* muss die
+
+- Client-Server API
+- Server-Server API
+- Matrix Appendices
+
+in der Version 1.11 der Matrix-Spezifikation unterstützen.
+
+TIP: Von der gematik wurden Anpassungen an der 1.11 Spezifikation vorgenommen, die den Spezifikationen auf den link:https://gemspec.gematik.de/[gemspec Pages] der gematik zu entnehmen sind.
+
+CAUTION: Die momentan in der Zulassung referenzierte Version 1.3 der Matrix-Spezifikation wird als `deprecated` gesetzt und ein zeitnaher Umstieg allen Zulassungsnehmern empfohlen.
+
+= TI-M Pro Besonderheiten
+== Auflösen der IK-Nummer zu einer Domain
+Damit ein Akteur in der Rolle *User* den *TI-M Client Pro* nutzen kann, um die MXID mit Hilfe von vorliegenden Stammdaten (KVNR und IK-Nummer) zu generieren, ist es notwendig eine Schnittstelle zu schaffen, die Auskunft über die Domain liefert, auf der Versicherte mit einer bestimmten IK-Nummer ihren Account haben.
+
+Des Weiteren muss der *TI-M Client Pro* in der Lage sein zu bestimmen ob eine MXID zu einem TI-M ePA Fachdienst für Versicherte gehört damit das Berechtigungskonzept clientseitig durchgesetzt werden kann. Hierfür bedarf es einer Schnittstelle mittels welcher festgestellt werden kann ob ein Matrix Servername einen Versichertenserver darstellt.
+
+Um diese Auflösung zu ermöglichen wurde die API link:../../src/openapi/TiMessengerInformation.yaml[TiMessengerInformation] geschaffen.
-Der *Matrix-Homeserver* eines *Messenger-Services*:
+= TI-M ePA Besonderheiten
+== Authentifizierungsverfahren
+Der *Messenger-Service* muss für die Authentifizierung der Akteure in der Rolle *Versicherter* an den *sektoralen IDP* angeschlossen werden. Hierfür ist es notwendig, dass der *TI-Messenger Service für ePA* für die Registrierung eines neuen Accounts und für das Login eines Akteurs in der Rolle *Versicherter* den *OIDC authorization code flow mit pushed authorization requests* am *sektoralen IDP* unterstützt.
- - muss Anfragen vom eigenen *Messenger-Proxy* akzeptieren und
- - Anfragen anderer *Messenger-Proxies* NICHT akzeptieren.
+== Unterbindung der Versichertenkommunikation
+Ein *TI-M Messenger-Service ePA* soll verhindern, dass ein User in der Rolle *Versicherter* einen anderen *Versicherten* einladen kann. Die Prüfung der Einladung ist sowohl an der *Client-Server-API*, als auch an der *Server-Server-API* zu realisieren.
-TIP: Als Referenz für einen Homeserver wird die link:https://github.com/matrix-org/synapse/[synapse Referenzimplementierung] empfohlen.
+== Ergänzungen/Einschränkungen zur Matrix Spezifikation
+- Der *Matrix-Homeserver* muss die Anlage öffentlicher Räume durch einen Akteur in der Rolle Versicherter unterbinden.
+- Der *TI-M Fachdienst ePA* muss Requests zu den Endpunkten für die Profilinformationen mit einer HTTP 403 Response ablehnen, sofern der anfragende Nutzer keine gemeinsamen Räume mit dem angefragten Nutzer hat.
+- Der *TI-M Fachdienst ePA* darf über die user directory search *KEINE* Profile von Nutzern ausliefern, die keine gemeinsamen Räume mit dem anfragenden Nutzer haben.
+- Der *TI-M Fachdienst ePA* muss in regelmäßigen Abständen (konfigurierbares Intervall) lokale Nutzer aus Räumen entfernen, in denen sich nur Versicherte befinden.
\ No newline at end of file
diff --git a/docs/Fachdienst/Registrierungsdienst.adoc b/docs/Fachdienst/Registrierungsdienst.adoc
index b710573b..458350f1 100644
--- a/docs/Fachdienst/Registrierungsdienst.adoc
+++ b/docs/Fachdienst/Registrierungsdienst.adoc
@@ -7,7 +7,6 @@ ifdef::env-github[]
endif::[]
:imagesdir: ../../images
-:docsdir: ../../docs
:toc: macro
:toclevels: 5
:toc-title: Inhaltsverzeichnis
@@ -19,177 +18,43 @@ toc::[]
= Registrierungs-Dienst
== Überblick
-Der *Registrierungs-Dienst* gibt dem Anbieter eines *TI-Messenger-Fachdienstes* die Möglichkeit, *Messenger-Services* automatisch authentifizierten Organisationen zur Verfügung zu stellen und die Matrixdomäne der *Messenger-Services* in die Föderationsliste des *VZD-FHIR-Directory* aufzunehmen. Als weitere Funktion bietet der *Registrierungs-Dienst* eines *TI-Messenger-Fachdienstes* die Bereitstellung einer Föderationsliste für die *Messenger-Proxies* seiner *Messenger-Services* an.
-
-Das folgende Bild zeigt die Schnittstellen des *Registrierungs-Dienstes*, die in den folgenden Kapiteln weiter beschrieben werden.
-
-++++
-
-
-
-++++
+Die folgende Seite gibt einen kurzen Überblick über die Funktionalitäten des *Registrierungs-Dienstes* und beschreibt die Unterschiede für den *Registrierungs-Dienst* in unterschiedlichen Produktausprägungen des *TI-Messengers*. Details sind den Spezifikationen auf den link:https://gemspec.gematik.de/[gemspec Pages] der gematik zu entnehmen.
== Schnittstelle: I_Registration
-Die abstrakte Schnittstelle `I_Registration` muss die folgenden Funktionalitäten anbieten:
+Über die Schnittstelle `I_Registration` werden 2 Funktionen bereitgestellt. Zum einen kann die eigene Organisation (z. B. per SM\(C)-B) registriert werden, um einen Admin-Account zu erhalten. Zum anderen können anschließend über die Schnittstelle neue *Messenger-Services* bereitgestellt werden. Die Ausgestaltung des Frontends sowie der Schnittstelle `I_Registration` ist dem jeweiligen TI-Messenger-Hersteller überlassen.
-* Die Authentisierung einer Organisation am *TI-Messenger-Dienst* (siehe link:{docsdir}/anwendungsfaelle/MS-AF10103-authentisieren-organisation.adoc[AF_10103]) und
-* Die Möglichkeit der Bereitstellung eines *Messenger-Services* für eine Organisation (siehe link:{docsdir}/anwendungsfaelle/MS-AF10060-bereitstellung-messenger-service.adoc[AF_10060])
+=== Authentisieren einer Organisation
+Die abstrakte Schnittstelle `I_Registration` muss es einer Organisation ermöglichen sich mittels der SM\(C)-B der Organisation zu authentisieren. Der *Registrierungs-Dienst* kann hierfür einen Prozess mittels OpenID-Connect oder KIM anbieten.
-CAUTION: Für die initiale Registrierung einer Organisation am *TI-Messenger-Fachdienst* ist die Verwendung der SMC-B notwendig und somit die Verwendung von einem Konnektor und Kartenterminal Voraussetzung.
+=== Bereitstellung eines Messenger-Service
+Nach erfolgreicher Authentifizierung einer Organisation am *Registrierungs-Dienst* wird ein Admin-Account für die Organisation auf dem Registrierungs-Dienst angelegt. Unter Verwendung des bereitgestellten Admin-Kontos können *Messenger-Services* für die Organisation erstellt werden. Um einen neuen *Messenger-Service* zu erstellen, muss ein *Registrierungs-Dienst*:
-Im folgenden werden die umzusetzenden Funktionalitäten der Schnittstelle beschrieben.
+. sich gegenüber dem Endpunkt `/tim-provider-services` gemäß https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Authenticate.adoc#authenticate-for-the-provider-api[Authentisierung für die Anbieter-API] authentisieren und
+. die neue Domäne zur Föderationsliste https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Provider.adoc#add-own-domain[hinzufügen].
-=== Bereitstellung von Webschnittstellen
-Die von der abstrakten Schnittstelle `I_Registration` angebotene Funktionalität soll als Webschnittstelle bereitgestellt werden, die von einem Akteur über einen Webclient (*Frontend des Registrierungs-Dienstes*) genutzt wird. Diese muss für alle Akteure im Internet verfügbar sein.
+TIP:
+Wenn für die Auflösung der Matrix Domains Redirects verwendet werden, dann müssen diese ebenfalls in der Föderationsliste hinterlegt werden. Sonst kann der Zugriff auf den `/getInfo` Endpunkt durch das *VZD-FHIR-Directory* nicht gewährleistet werden. (Die Firewall des *VZD-FHIR-Directorys* blockiert sonst den Zugriff auf die Redirect Domains, wenn diese nicht in der "Allowlist" hinterlegt werden. Das Hinterlegen für die Firewall erfolgt automatisch, wenn die Redirects in der Föderationsliste hinterlegt werden)
-=== Authentisieren einer Organisation
-Die abstrakte Schnittstelle `I_Registration` muss es einer Organisation ermöglichen sich mittels der SMC-B der Organisation zu authentisieren. Der *Registrierungs-Dienst* kann hierfür einen Prozess mittels OpenID-Connect oder KIM anbieten. In beiden Varianten muss der *Registrierung-Dienst* die `TelematikID` und auch die `ProfessionOID` der Organisation validieren & speichern. Nach erfolgreicher Authentifizierung durch den *Registrierungs-Dienst* wird ein Administratorkonto für die Organisation bereitgestellt. Weitere Details finden Sie unter link:{docsdir}/anwendungsfaelle/MS-AF10103-authentisieren-organisation.adoc[AF_10103].
+== Schnittstelle: I_Admin
+Über die Schnittstelle `I_Admin` stellt der *Registrierungs-Dienst* dem Akteur in der Rolle *Org-Admin* Funktionen zur Verwaltung der eigenen *Messenger-Services* zur Verfügung.
-=== Bereitstellung eines Messenger-Service
-Nach dem Authentifizierungsvorgang muss das bereitgestellte Admin-Konto verwendet werden, um *Messenger-Services* für die Organisation zu erstellen. Um einen neuen *Messenger-Service* zu erstellen, muss ein *Registrierungs-Dienst*:
+== Schnittstelle: I_internVerification
+Über die Schnittstelle `I_internVerification` stellt der *Registrierungs-Dienst* den angeschlossenen *Messenger-Proxies* Funktionen bereit um Verwaltungsaufgaben an der Schnittstelle `I_VZD_TIM_Provider_Services` des *VZD-FHIR-Directory* durchzuführen.
-. sich gegenüber dem Endpunkt `/tim-provider-services` gemäß https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.1/docs/FHIR_VZD_HOWTO_Authenticate.adoc#22-authenticate-for-the-provider-api[Authentisierung für die Anbieter-API] authentisieren und
-. die neue Domäne zur Föderationsliste https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.1/docs/FHIR_VZD_HOWTO_Provider.adoc#24-add-own-domain[hinzufügen].
+= TI-M Pro Besonderheiten
+Dieser Abschnitt beschreibt die besonderen Eigenschaften die für einen *TI-M Pro Registrierungs-Dienst* gelten.
== Schnittstelle: I_requestToken
-Die abstrakte Schnittstelle `I_requestToken` wird vom *Registrierungs-Dienst* zur Verfügung gestellt, um ein `RegService-OpenID-Token` anzufordern, das gegen ein `owner-accesstoken` am *Auth-Service* des *VZD-FHIR-Directory* ausgetauscht werden kann. Die Schnittstelle ist nur für Akteure in der Rolle "Org-Admin" zugänglich, um im Anschluß die FHIR-Ressourcen der Organisation im *VZD-FHIR-Directory* verwalten zu können.
-
-=== Vorbedingungen
-Damit der *Registrierungs-Dienst* in die Lage versetzt wird, `RegService-OpenID-Token` ausstellen zu können, müssen die folgenden Vorbedingungen erfüllt werden.
-
-* link:{docsdir}/Fachdienst/Fachdienst.adoc#213-erstellung-des-signaturzertifikates-f%C3%BCr-den-anbeiter[Bekanntmachung des Registrierungs-Dienstes] beim Anbieter des *VZD-FHIR-Directory* und
-* Sicherung der `TelematikID` und der `ProfessionOID` der Organisation im Rahmen der link:{docsdir}/Fachdienst/Registrierungsdienst.adoc#authentisieren-einer-organisation[Bestellung des TI-Messenger-Dienstes]
-
-=== Aufbau des RegService-OpenID-Token
-Das `RegService-OpenID-Token` ist ein JWT und mit den folgenden Inhalten zu füllen:
-[source,json]
-----
-{
- "alg": "BP256R1",
- "typ": "JWT"
- "x5c": [
- "" ]
-}
-{
- "sub": "1234567890",
- "iss": "",
- "aud": "",
- "professionOID": "",
- "idNummer": "",
- "iat": "1516239022",
- "exp": "1516239022"
-}
-----
-
-Für die Signatur des `RegService-OpenID-Token` ist der private Schlüssel des link:{docsdir}/Fachdienst/Fachdienst.adoc#213-erstellung-des-signaturzertifikates-f%C3%BCr-den-anbeiter[beantragten Signaturzertifikates] zu verwenden.
-
-TIP: *VZD-FHIR-Directory* Endpunkte: +
+Über die Schnittstelle `I_requestToken` stellt der *Registrierungs-Dienst* `RegService-OpenID-Token` aus. Das Token wird für die Authentifizierung am *FHIR-Proxy* des *VZD-FHIR-Directory* benötigt, damit ein Akteur in der Rolle *Org-Admin* Organisationseinträge ändern kann. Das Token muss signiert werden, damit das *VZD-FHIR-Directory* dem Aussteller vertraut. Hierzu ist ein Zertifikat über einen *TI-ITSM Service Request* zu link:Fachdienst.adoc#213-erstellung-des-signaturzertifikates-f%C3%BCr-den-anbeiter[beantragen], welches im Anschluss für die Signatur genutzt werden kann. Weitere Details z.B. zum Aufbau und Inhalt des Tokens sind in link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.2.2/docs/FHIR_VZD_HOWTO_Authenticate.adoc#authenticate-with-an-regservice-openid-token[Authentisierung RegService-OpenID-Token] beschrieben.
+
+TIP: *VZD-FHIR-Directory* Endpunkte für den Austausch von `RegService-OpenID-Token` gegen ein `owner-accesstoken`: +
- TU: https://fhir-directory-test.vzd.ti-dienste.de/owner-authenticate +
- RU: https://fhir-directory-ref.vzd.ti-dienste.de/owner-authenticate +
-- PU: https://vzd-fhir-directory.vzd.ti-dienste.de/owner-authenticate
+- PU: https://fhir-directory.vzd.ti-dienste.de/owner-authenticate
-=== Austausch des RegService-OpenID-Token
-Das `RegService-OpenID-Token` kann am `/owner-authenticate`-Endpunkt des *Auth-Service* gegen ein `owner-accesstoken` eingetauscht werden.
-Weitere Details sind in link:https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.1/docs/FHIR_VZD_HOWTO_Authenticate.adoc#231-authenticate-with-an-regservice-openid-token[Authentisierung RegService-OpenID-Token] beschrieben.
-== Schnittstelle: I_internVerification
-Bei der Schnittstelle `I_internVerification` handelt es sich um eine abstrakte Schnittstelle, deren Ausgestaltung dem Hersteller obliegt.
-
-Die Schnittstelle muss die folgenden Funktionalitäten bereitstellen:
-
-* Bereitstellung und Aktualisierung der Föderationsliste und
-* Berechtigungsprüfung - Stufe 3 gemäß link:../anwendungsfaelle/MS-stufen-berechtigungspruefung.adoc[Berechtigungskonzept]
-
-TIP: Die geforderten Funktionalitäten dürfen auch über seperate Schnittstellen zur Verfügung gestellt werden.
-
-Die umzusetzenden Funktionalitäten werden im folgenden beschrieben.
-
-=== Bereitstellung und Aktualisierung der Föderationsliste.
-Um die Zugehörigkeit zur TI-Messenger-Föderation zu verifizieren, muss der *Registrierungs-Dienst* den *Messenger-Proxies* über die abstrakte Schnittstelle `I_internVerification` eine aktuelle Föderationsliste zur Verfügung stellen. Dazu muss der *Registrierungs-Dienst* die Operation `/tim-provider-services/getFederationList` am *FHIR-Proxy* des *VZD-FHIR-Directory* aufrufen, um eine aktuelle Föderationsliste zu erhalten. Diese Schnittstelle ist am *VZD-FHIR-Directory* durch einen `ACCESS_TOKEN` geschützt (https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.1/docs/FHIR_VZD_HOWTO_Authenticate.adoc#22-authenticate-for-the-provider-api[provider-accesstoken]). Nach Erhalt des `provider-accesstokens` muss dieses im Authorization Header genutzt werden, um über die Operation https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.1/docs/FHIR_VZD_HOWTO_Provider.adoc#22-query-federationlist[getFederationList] eine aktuelle Föderationsliste abzufragen.
-
-TIP: Der Ablauf des Anwendungfalls zur Aktualisierung und Bereitstellung kann im Detail link:../anwendungsfaelle/MS-aktualisierung-foederationsliste.adoc[hier] nachvollzogen werden.
-
-Die aktuelle Struktur der Föderationsliste ist https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.1/src/schema/FederationList.json[hier] hinterlegt.
-
-Im folgenden ist ein Beispiel für den Aufbau der Föderationsliste gezeigt:
-
-*Struktur der Föderationsliste*
-|====
-a|
-[source, yaml]
-----
-{
- "$id": "/schemas/FederationList",
- "title": "Structure of FederationList",
- "type": "object",
- "properties":
- {
- "version": {
- "description": "The version of the federation list",
- "type": "integer",
- "readOnly": true
- },
- "domainList": {
- "description": "The list of TI-Messenger domain names",
- "type": "array",
- "items": {
- "domain": {
- "description": "The TI-Messenger domain",
- "type": "string"
- },
- "telematikID": {
- "description": "The telematikID of the organization ...",
- "type": "string"
- },
- "isInsurance": {
- "description": "Indicates if it is ...",
- "type": "boolean",
- "default": false,
- "example": false
- },
- "timProvider": {
- "description": "The Zuweisungsgruppe im...",
- "type": "string"
- },
- "required": ["domain", "telematikID", "isInsurance", "timProvider"]
- }
- }
- }
- }
-----
-|====
-
-=== Berechtigungsprüfung - Stufe 3
-Der *Registrierungs-Dienst* muss den *Messenger-Proxies* über die abstrakte Schnittstelle `I_internVerification` eine Funktion anbieten, mit der die Überprüfung auf `MXID`-Einträge im *VZD-FHIR-Directory* möglich ist. Zur Prüfung muss der *Registrierungs-Dienst* die Operation `whereIs (GET /tim-provider-services/localization)` am *FHIR-Proxy* des *VZD-FHIR-Directory* verwenden. Ein Beispielaufruf ist https://github.com/gematik/api-vzd/blob/gemILF_VZD_FHIR_Directory/1.0.1/docs/FHIR_VZD_HOWTO_Provider.adoc#query-mxid-location[hier] zu finden.
-
-TIP: Es kann nur eine `MXID` im URL Format beim Aufruf der Operation `whereIs` übergeben werden.
-
-_Hinweis: Die Funktionalität wird von den *Messenger-Proxies* benötigt, um bei einem `Invite`-Event die Berechtigungsstufe 3 erfolgreich prüfen zu können._
-
-Response Aufbau des *FHIR-Proxies*:
-
-*Response Aufbau*
-|====
-a|
-[source, yaml]
-----
-responses:
- 200:
- description: OK
- content:
- application/json:
- schema:
- type: string
- enum: [org, pract, orgPract, none]
- example: org |
- *description:* +
- Returns in which part of the directory the MXID (the request contains the hash of the MXID) is located:
-
- - `org`: Located in the Organization part +
- - `pract`: Located in the Practitioner part +
- - `orgPract`: Located in the Organization and Practitioner part +
- - `none`: Not found in any part
-|====
-
-Das Prüfergebnis muss an die anfragenden *Messenger-Proxies* weitergereicht werden.
+= TI-M ePA Besonderheiten
+
+== Bereitstellung eines Messenger-Service für eine Organisation
+Der *Registrierungs-Dienst* des *TI-M ePA Fachdienstes* darf nur Usern in der Rolle *Org-Admin* einen *Messenger-Service* bereitstellen, die sich mit einer SM\(C)-B für Kostenträger (professionOID 1.2.276.0.76.4.59) authentisiert haben.
diff --git a/docs/Foederationsliste/Foederationsliste.adoc b/docs/Foederationsliste/Foederationsliste.adoc
new file mode 100644
index 00000000..f0e81e5e
--- /dev/null
+++ b/docs/Foederationsliste/Foederationsliste.adoc
@@ -0,0 +1,48 @@
+ifdef::env-github[]
+:tip-caption: :bulb:
+:note-caption: :information_source:
+:important-caption: :heavy_exclamation_mark:
+:caution-caption: :fire:
+:warning-caption: :warning:
+endif::[]
+
+:imagesdir: ../../images
+:toc: macro
+:toclevels: 5
+:toc-title: Table of Contents
+:numbered:
+
+image:meta/gematik_logo.svg[width=70%]
+
+toc::[]
+
+= Föderationsliste
+
+Um nicht zum TI-M Dienst gehörende Messenger-Services ausschließen zu können, werden die Domainnamen der Messenger-Services in einer Föderationsliste zusammengefasst. Diese wird durch das [gemSpec_VZD_FHIR_Directory] bereitgestellt und kann über die Schnittstelle `/tim-provider-services` von zugelassenen Anbietern verwaltet werden. In der Föderationsliste werden die folgenden Informationen zu den Messenger-Services gespeichert:
+
+[options="header"]
+|=================================================================================================================
+| Attribut | Beschreibung
+| `domain` | The TI-Messenger domain
+| `telematikID` | The telematikID of the organization that uses the TI-Messenger domain
+| `isInsurance` | Indicates if it is a domain of a health insurance for insured persons
+| `timProvider` | The Zuweisungsgruppe im TI-ITSM-System of the TI-Messenger Provider, who added the domain
+|=================================================================================================================
+
+Das folgenden Beispiel zeigt exemplarisch die Einträge der gematiker Krankenkasse, die einen *TI-M FD ePA* für die Versicherten und einen *TI-M FD Pro* für die eigenen Mitarbeiter betreibt:
+----
+{
+ "domain": "versicherte.tim.gematiker-kk.de",
+ "telematikID": "4711-gem",
+ "timAnbieter": "GEM-0815",
+ "isInsurance": yes
+ },
+ {
+ "domain": "mitarbeiter.tim.gematiker-kk.de",
+ "telematikID": "4711-gem",
+ "timAnbieter": GEM-0815,
+ "isInsurance": false
+ },
+}
+----
+
diff --git a/docs/IDP/idp.adoc b/docs/IDP/idp.adoc
index 40934010..3b5e185a 100644
--- a/docs/IDP/idp.adoc
+++ b/docs/IDP/idp.adoc
@@ -7,7 +7,6 @@ ifdef::env-github[]
endif::[]
:imagesdir: ../../images
-:docsdir: ../docs
:toc: macro
:toclevels: 6
:toc-title: Table of Contents
@@ -22,15 +21,10 @@ toc::[]
== Überblick
Der zentrale *IDP-Dienst* der gematik (*[gemSpec_IDP_Dienst]*) ermöglicht die sichere Identifikation der Akteure anhand der ihnen bereitgestellten Identifikationsmittel einer Smartcard (SMC-B / HBA). Hierfür fasst der *IDP-Dienst*, die im AUT-Zertifikat befindlichen Attribute in signierten JSON Web Token (`ID_TOKEN`) zusammen und stellt diese der anfragenden *Relying Party* aus. Im Kontext des *TI-Messenger-Dienstes* übernimmt der *Registrierungs-Dienst* eines *TI-Messenger-Fachdienstes* sowie der *Auth-Service* des *VZD-FHIR-Directory* die Rolle der *Relying Party*, welche einen `ID_TOKEN` beim *IDP-Dienst* anfragt.
-Der zentrale *IDP-Dienst* der gematik wird im Rahmen des *TI-Messenger-Dienstes* in den folgenden Anwendungsfällen benötigt:
-
-* link:https://github.com/gematik/api-ti-messenger/blob/main/docs/anwendungsfaelle/MS-AF10103-authentisieren-organisation.adoc[AF_10103 - Authentisieren einer Organisation am TI-Messenger-Dienst]
-* link:https://github.com/gematik/api-ti-messenger/blob/main/docs/anwendungsfaelle/VZD-AF10058-practitioner-hinzufuegen.adoc[AF_10058 - Akteur (User-HBA) im Verzeichnisdienst hinzufügen]
-
-In den folgenden Kapiteln werden die notwendigen Maßnahmen / Abläufe beschrieben, um die in den Anwendungsfällen geforderte Authentifizierung via OpenID Connect durchführen zu können.
+In den folgenden Kapiteln werden die notwendigen Maßnahmen / Abläufe beschrieben, um die in der Spezifikation geforderte Authentifizierung via OpenID Connect durchführen zu können.
== Registrierung der Relying Party am IDP-Dienst
-Im Rahmen des *TI-Messenger-Dienstes* ist es notwendig, dass der *TI-Messenger-Anbieter* einer *Relying Party* (*Registrierungs-Dienst*) diesen beim zentralen *IDP-Dienst* der gematik registriert, um von diesem `ID_TOKEN` ausgestellt zu bekommen. Die Registrierung der *Relying Party* erfolgt hierbei als organisatorischer Prozess (siehe bitte https://gematikde.sharepoint.com/:w:/s/PTNeo/EczX7AFGfBdNrCYghzGsHz4BbSoYhV63QMmDCdz7x9zLpg?e=7wG3c[Welcome Package] 5. Schritt).
+Im Rahmen des *TI-Messenger-Dienstes* ist es notwendig, dass der *TI-Messenger-Anbieter* einer *Relying Party* (*Registrierungs-Dienst*) diesen beim zentralen *IDP-Dienst* der gematik registriert, um von diesem `ID_TOKEN` ausgestellt zu bekommen. Die Registrierung der *Relying Party* erfolgt hierbei als organisatorischer Prozess. Weitere Information können dem im https://fachportal.gematik.de/anwendungen/ti-messenger[Fachportal] bereitgestelltem Welcome Package (Schritt 5) entnommen werden.
Bei der Registrierung der *Relying Party* muss der *TI-Messenger-Anbieter* die Adresse(n) (`redirect_uri`) der gematik mitteilen. Zu der `redirect_uri` wird eine `client_id` für die *Relying Party* registriert. Die `client_id` wird von der gematik vergeben und nach Abschluss der Registrierung dem *TI-Messenger-Anbieter* mitgeteilt.
@@ -117,7 +111,7 @@ PU: https://idp.app.ti-dienste.de/auth
RU: https://idp-ref.app.ti-dienste.de/token +
PU: https://idp.app.ti-dienste.de/token
-In den folgenden Unterkapiteln werden die Endpunkte weiter beschrieben.
+In den folgenden Unterkapiteln werden die Endpunkte weiter beschrieben.
==== Discovery-Endpunkt
Das Discovery Dokument ist ein Base64 kodiertes Metadatendokument, das den Großteil der Informationen enthält, die für eine Anwendung zum Durchführen einer Anmeldung erforderlich sind. Hierzu gehören Informationen wie z. B. die zu verwendenden Schnittstellen und der Speicherort der öffentlichen Signaturschlüssel des *IDP-Dienstes*.
@@ -321,15 +315,10 @@ TIP: Der Token-Endpunkt DARF `ID_TOKEN` mit einer Gültigkeitsdauer von mehr als
Im ersten Schritt entschlüsselt die *Relying Party* das `ID_TOKEN` mit seinem selbst erzeugten 256-Bit AES-Schlüssel (`Token-Key`). Anschließend erfolgt die Signaturprüfung mit dem `PuK_IDP_SIG` des *IDP-Dienstes*.
== Authorization Code Flow
-In dem folgenden Sequenzdiagramm ist beispielhaft der Ablauf des Authorization Code Flow für den Anwendungsfall link:https://github.com/gematik/api-ti-messenger/blob/main/docs/anwendungsfaelle/MS-AF10103-authentisieren-organisation.adoc[AF_10103 - Authentisieren einer Organisation am TI-Messenger-Dienst] dargestellt. Im Kontext des *TI-Messenger-Dienstes* ist der *Registrierungs-Diens* die *Relying Party*. Als *Authenticator* wird der von der gematik bereitgestellte *Authenticator* verwendet.
+In dem folgenden Sequenzdiagramm ist beispielhaft der Ablauf des Authorization Code Flow beim Authentisieren einer Organisation am TI-Messenger-Dienst dargestellt. Im Kontext des *TI-Messenger-Dienstes* ist der *Registrierungs-Diens* die *Relying Party*. Als *Authenticator* wird der von der gematik bereitgestellte *Authenticator* verwendet.
-CAUTION: Der von der gematik bereitgestellte Authenticator wird nicht in Verbindung mit einer Web-Anwendung empfohlen, da vom Authenticator ein neuer Browser Tab geöffnet wird. Entsprechend der Fachanwendung wird im Browser eine HTML-Seite oder ein Json-Objekt(VZD-FHIR Response) angezeigt.
+CAUTION: Der von der gematik bereitgestellte Authenticator wird nicht in Verbindung mit einer Web-Anwendung empfohlen, da vom Authenticator ein neuer Browser Tab geöffnet wird. Entsprechend der Fachanwendung wird im Browser eine HTML-Seite oder ein Json-Objekt(VZD-FHIR Response) angezeigt.
Die Abbildung zeigt die Verwendung des *Authenticators* mit der Auto-Redirect Funktion (`callback=DIRECT`) bei der die `redirect_uri` direkt vom Authenticator aufgerufen wird und der Browserclient über Polling beim Fachdienst den Status des Austausches des Tokens abfragt. Details zur Interaktion mit dem *Authenticator* sind in Kapitel _Interaktion mit der Fachanwendung_ beschrieben. Alternativ könnte der *Authenticator* beim Aufruf der `redirect_uri` eine nutzerfreundliche Webseite der *Relying Party* in einem neuen Browsertab öffnen.
-++++
-
-
-
-++++
-
+image::generated/Other/idp.svg[width="100%"]
diff --git a/docs/Primaersystem/Primaersystem.adoc b/docs/Primaersystem/Primaersystem.adoc
index 675ff22e..6829b855 100644
--- a/docs/Primaersystem/Primaersystem.adoc
+++ b/docs/Primaersystem/Primaersystem.adoc
@@ -7,7 +7,6 @@ ifdef::env-github[]
endif::[]
:imagesdir: ../../images
-:docsdir: ../docs
:toc: macro
:toclevels: 6
:toc-title: Table of Contents
diff --git a/docs/Test/Test.adoc b/docs/Test/Test.adoc
new file mode 100644
index 00000000..77a9bed7
--- /dev/null
+++ b/docs/Test/Test.adoc
@@ -0,0 +1,158 @@
+ifdef::env-github[]
+:tip-caption: :bulb:
+:note-caption: :information_source:
+:important-caption: :heavy_exclamation_mark:
+:caution-caption: :fire:
+:warning-caption: :warning:
+endif::[]
+
+:imagesdir: ../../images
+:toc: macro
+:toclevels: 6
+:toc-title: Table of Contents
+:numbered:
+:sectnumlevels: 6
+
+image:meta/gematik_logo.svg[width=70%]
+
+= Testkonzept TI-Messenger-Dienst
+gematik
+| Version 1.0 | Stand: 26.03.2024
+
+Dokumentenhistorie
+[cols='10%,10%,10%,60%,10%']
+|===
+| *Version* |*Stand* | *Kap.* | *Grund der Änderung, besondere Hinweise* | *Bearbeiter*
+| 1.0 | 26.03.2024 | | initiale Erstellung | gematik
+|===
+
+toc::[]
+
+== Test und Zertifizierung der TI-Messenger
+Für die Produkt- und die Anbieter-Zulassung MÜSSEN die TI-Messenger-Fachdienste (TI-M FD) und TI-Messenger-Clients (TI-M Client) bereitgestellt werden, um einen automatisierten Test für den TI-Messenger-Dienst (TI-M Dienst) zu ermöglichen, MUSS die Test-App des TI-M Clients zusätzlich ein Testtreiber-Modul intern oder extern zur Verfügung stellen. Dieses MUSS die Funktionalitäten der produktspezifischen Schnittstelle des TI-M Clients über eine standardisierte Schnittstelle von außen zugänglich machen und einen Fernzugriff ermöglichen. Das Testtreiber-Modul MUSS die Ausgaben des TI-M Clients gemäß der technischen Schnittstelle aufarbeiten, aber DARF NICHT die Inhalte verfälschen.
+
+=== Testvorgehen
+
+Das Testvorgehen für TI-Messenger ePA (TI-M ePA) und TI-Messenger Pro (TI-M Pro) setzt auf das Testvorgehen des TI-M Dienst 1.1.1-1 [gemSpec_TI-Messenger-Dienst] auf. Die existierende Testtreiberschnittstelle und Testsuite wird entsprechend erweitert. Alle Tests innerhalb der Testsuite sind separat ausführbar. Somit ist es möglich, die TI-M Pro und das TI-M ePA-FdV zusammen oder einzeln zu testen. Die erweiterte Testtreiberschnittstelle link:../../src/openapi/TiMessengerTestTreiber.yaml[Testtreiber API] und die Testsuite https://github.com/gematik/TI-Messenger-Testsuite[TI-Messenger-Testsuite] werden auf github veröffentlicht und sind für alle Hersteller zugänglich. Während der Zulassungstests werden genau die veröffentlichten Testfälle geprüft. Die Testfälle bilden die definierten Anwendungsfälle aus der Spezifikation ab. Produkttests zur Sicherstellung der Konformität mit der Spezifikation liegen vollständig in der Verantwortung der Anbieter/Hersteller. Die gematik konzentriert sich bei der Zulassung auf das Zusammenspiel der Produkte durch E2E- und IOP-Tests.
+
+=== Testtreiber Modul
+Um einen automatisierten Test für den TI-Messenger-Dienst zu ermöglichen, MUSS die Test-App des TI-M Clients zusätzlich ein Testtreiber-Modul intern oder extern zur Verfügung stellen. Das Testtreiber-Modul MUSS die Funktionalitäten der produktspezifischen Schnittstellen des TI-M Clients über eine standardisierte Schnittstelle von außen zugänglich machen und einen Fernzugriff ermöglichen. Das Testtreiber Modul wird vom Hersteller entwickelt und betrieben.
+
+Dieses Testtreiber-Module MUSS Bestandteil der Test-APP sein (internes Testtreiber-Modul) oder einen Zugang zum Test-Environment des Herstellers gewährleisten (externes Testtreiber-Modul). Die Schnittstelle wird gemäß link:../../src/openapi/TiMessengerTestTreiber.yaml[Testtreiber API] durch die gematik spezifiziert und bereitgestellt. Das Testtreiber-Modul MUSS die durch den TI-M Client über eine produktspezifische Schnittstelle angebotene Funktionalität nutzen, um die Operationen des TI-M Clients umzusetzen. Für die Ausführung der Tests werden Organisationen und Messenger-Services benötigt. Diese Organisationen und Messenger-Services MÜSSEN von den Herstellern vor Beginn der Testphase eingerichtet und die Daten (Organisationsnamen usw.) MÜSSEN an die gematik übermittelt werden. In den folgenden Abbildungen wird das interne sowie das externe Testtreiber-Modul dargestellt. Wenn ein Client in mehreren Ausprägungen zur Verfügung gestellt wird, wird für jede Ausprägung eine Zulassung mit einem eigenen Testtreiber-Modul benötigt.
+
+
+*Cert bereitstellen*
+
+==== internes Testtreiber-Modul
+Bei einem internen Testtreiber-Modul wird die REST-Schnittstelle in die Test-App integriert (der Zugriff erfolgt hierbei direkt über das Endgerät).
+
+.Abbildung{counter:abbildung: 1}: internes Testtreiber Modul
+image:generated/Other/Test/testtreiber-internes-Modul.svg[align="left",width="100%", title="internes Testtreiber Modul"]
+
+==== externes Testtreiber-Modul
+Bei einem externen Testtreiber-Modul erhält die REST-Schnittstelle Zugang zum Test-Environment des Herstellers.
+
+.Abbildung{counter:abbildung: 1}: externes Testtreiber Modul
+image:generated/Other/Test/testtreiber-externes-Modul.svg[align="left",width="100%", title="externes Testtreiber Modul"]
+
+=== TI-Messenger Testtreiber Anschaltung
+
+Das folgende Bild zeigt die Anschaltung der Testtreiber Clients. Die Clients können über eine externe oder interne Testtreiber-Schnittstelle mit der Testsuite remote oder local verbunden werden. Diese Leistung MUSS von jedem Hersteller erbracht werden. Welche Clients eingesetzt werden, können die Hersteller selbstständig entscheiden. Es werden nur bereitgestellte Clients zugelassen. Clients mit den gleichen Eigenschaften werden unter einer URL zusammengefasst. Diese URL wird dann in die Konfigurationsdatei 'combine_items.json' eingetragen. In dieser Datei werden alle Testobjekte verwaltet.
+
+.Abbildung{counter:abbildung: 1}: Anschaltung der Testtreiber Clients
+image:generated/Other/Test/Anschaltung der Testtreiber Clients.svg[align="left",width="100%", title="Anschaltung der Testtreiber Clients"]
+
+Die unterschiedlichen Testtreibeschnittstellen werden mit mTLS gesichert. Die gematik stellt für den zugriff auf die Schnittstelle entsprechende Zertifikate bereit. Weiterführende Informationen zur Testsuite und zur Testtreiber-Schnittstelle findet man in der
+https://github.com/gematik/TI-Messenger-Testsuite/blob/main/doc/userguide/Testsuite.adoc[Testsuite TI-M Dienst Release 1.1.1].
+
+== Test der Hersteller
+
+=== Herstellerverantwortung
+Produkttests zur Sicherstellung der Konformität mit der Spezifikation sind vollständig in der Verantwortung der Anbieter/Hersteller des TI-Messenger-Clients (TI-M Client). Die gematik konzentriert sich bei der Zulassung auf das Zusammenspiel der Produkte durch E2E- und IOP Tests.
+
+Die eigenverantwortlichen Produkttests bei den Industriepartnern umfassen:
+
+ Testumgebung entwickeln,
+ Testfallkatalog erstellen (für eigene Produkttests) und
+ Produkttest durchführen und dokumentieren.
+
+Die Hersteller der TI-Messenger-Dienste (TI-M Dienst) MÜSSEN zusichern, dass die gematik die Produkttests der Industriepartner in Form von Reviews der Testkonzepte, der Testspezifikationen, der Testfälle und mit dem Review der Testprotokolle (Log- und Trace-Daten) überprüfen kann.
+
+Die gematik fördert eine enge Zusammenarbeit und unterstützt Industriepartner dabei, die Qualität der Produkte zu verbessern. Dies erfolgt durch die Organisation zeitnaher IOP-Tests, die Synchronisierung von Meilensteinen sowie regelmäßige industriepartnerübergreifende Test-Sessions. Die Test-Sessions umfassen gegenseitige IOP- und E2E Tests.
+
+Die gematik stellt eine TI-M Dienst Referenzimplementierung zur Verfügung. Zur Sicherstellung der Interoperabilität zwischen verschiedenen TI-Messenger-Fachdiensten (TI-M FD) und TI-M Clients MÜSSEN alle TI-M Dienste gegen diese Referenzimplementierung getestet werden. Der Sourcecode für die in der Referenzimplementierung verwendeten Artefakte wird regelmäßig von der gematik unter https://github.com/tim-ref[TI-Messenger [Referenzimplementierung] veröffentlicht.
+
+=== Referenz-Instanz
+
+Vor der Zulassung können sich die Hersteller eine Referenz-Instanz über die gematik bestellen. Die Referenz-Instanz hilft den Herstellern bei der Entwicklung neuer TI-M Clients, FdV und TI-M FD Versionen. Für die IOP-Tests zwischen den verschiedenen TI-Messenger-Anbietern bzw. -Herstellern können sowohl die Test-Instanzen als auch die Referenz-Instanzen genutzt werden. Die TI-M Dienste müssen gegen die Referenz-Instanz erfolgreich getestet werden. Die Testergebnisse sind der gematik vorzulegen.
+
+.Abbildung{counter:abbildung: 1}: Referenz-Instanz
+image:generated/Other/Test/HerstellerInstanz.svg[align="left",width="100%", title="Referenz-Instanz"]
+
+=== Hersteller IOP Tests
+
+Alle Anbieter MÜSSEN bereits im Vorfeld diesen IOP- und E2E-Tests selbständig und eigenverantwortlich durchführen. Bei Problemen im Rahmen der Zulassung MÜSSEN die Anbieter bei der Analyse unterstützen. In der folgenden Abbildung ist eine Systemumgebung für Herstellertests dargestellt.
+
+.Abbildung{counter:abbildung: 1}: IOP Testumgebung Hersteller
+image:generated/Other/Test/testumgebung-Hersteller.svg[align="left",width="100%", title="IOP Testumgebung Hersteller"]
+
+== Zulassung
+
+=== Zulassungstests durch die gematik
+Die gematik testet im Rahmen der Zulassungsverfahren auf Basis von Anwendungsfällen. Hierbei wird versucht, möglichst viele Funktionsbereiche der Komponenten des TI-Messenger-Dienstes (TI-M Dienst) einzubeziehen.
+
+==== Tests gegen die Referenzimplementierung
+Die Tests werden zunächst gegen die Referenzimplementierung der gematik durchgeführt. In diesem Schritt wird die Funktionalität des Zulassungsobjektes "TI-Messenger-Dienst" geprüft.
+
+==== Zulassung TI-Messenger Pro
+
+Die Hersteller von TI-M Diensten müssen wie zuvor erwähnt die Testtreiberschnittstelle und den Fachdienst bereitstellen. Bei Problemen im Rahmen der Zulassung müssen die Anbieter bei der Analyse unterstützen. In der folgenden Abbildung ist eine Systemumgebung für den Zulassungstest TI-Messenger Pro (TI-M Pro) dargestellt.
+
+.Abbildung{counter:abbildung: 1}: Zulassung TI-Messenger Pro
+image:generated/Other/Test/Zulassung TIM-Basis.svg[align="left",width="100%", title="Zulassung TI-Messenger Pro"]
+
+==== Zulassung TI-Messenger ePA
+
+Die Hersteller von Versicherten-Frontends müssen ebenfalls das FdV, die Testtreiberschnittstelle und den Fachdienst für Versicherte bereitstellen. Bei Problemen im Rahmen der Zulassung müssen die Anbieter bei der Analyse unterstützen. In der folgenden Abbildung ist eine Systemumgebung für den Zulassungstest TI-Messerger ePA (TI-M ePA) dargestellt.
+
+.Abbildung{counter:abbildung: 1}: Zulassung TI-Messenger ePA
+image:generated/Other/Test/Zulassung TIM-ePA.svg[align="left",width="100%", title="Zulassung TI-Messenger ePA"]
+
+=== IOP Tests zwischen Anbietern durch die gematik
+Zusätzlich zu den bereits durchgeführten IOP- und E2E-Tests werden weitere Interoperabilitätstests verschiedener TI-Messenger-Lösungen vor und nach der Zulassung durch die gematik durchgeführt. Die folgende Abbildung zeigt die Nutzung der existierenden Testumgebung durch die gematik während der Zulassungs- und Interoperabilitätstests.
+
+.Abbildung{counter:abbildung: 1}: IOP Tests
+image:generated/Other/Test/testumgebung-Gematik.svg[align="left",width="100%", title="IOP Tests"]
+
+IOP- und E2E-Tests für die Interoperabilität MÜSSEN zwischen den verschiedenen TI-Messenger-Anbietern nachgewiesen werden. Hierfür werden dann alle bereits zur Verfügung stehenden TI-M Dienste (die Test-Instanzen der einzelnen Hersteller) zusammengeschlossen und anschließend gegeneinander getestet.
+
+==== IOP Tests TI-Messenger Pro
+
+Im Anschluss der Zulassung wird mit den IOP- und E2E-Tests die Interoperabilität zwischen den verschiedenen TI-Messenger-Anbietern nachgewiesen. Hierfür werden dann alle bereits zur Verfügung stehenden TI-M Dienste (die Test-Instanzen der einzelnen Hersteller) zusammengeschlossen und anschließen gegeneinander getestet. Alle Anbieter MÜSSEN bereits im Vorfeld diesen IOP- und E2E-Tests selbständig und eigenverantwortlich durchführen. Bei Problemen im Rahmen der IOP Tests MÜSSEN die Anbieter bei der Analyse unterstützen. In der folgenden Abbildung ist eine Systemumgebung für Herstellertests TI-M Pro dargestellt.
+
+.Abbildung{counter:abbildung: 1}: IOP Test TI-Messenger Pro
+image:generated/Other/Test/Testumgebung Basis.svg[align="left",width="100%", title="IOP Test TI-Messenger Pro"]
+
+Weiterhin wird ein dauerhaftes Continuous Testing eingeführt. Das Continuous Testing wird dann in der Folge erweitert Dadurch wird auch ein Test unterschiedlicher Messenger Versionen und Ausprägungen ermöglicht.
+
+==== IOP Tests TI-Messenger ePA
+
+Für den TI-M ePA gelten ebenso die im Kap. 3.2.1 beschriebenen Anforderungen an den IOP Test. In der folgenden Abbildung ist eine Systemumgebung für Herstellertests TI-M ePA dargestellt. Bei Problemen im Rahmen der IOP Tests MÜSSEN die Anbieter des Fachdienstes und des FdVs bei der Analyse unterstützen.
+
+.Abbildung{counter:abbildung: 1}: IOP Test TI-Messenger ePA
+image:generated/Other/Test/Testumgebung ePA.svg[align="left",width="100%", title="IOP Test TI-Messenger ePA"]
+
+==== IOP Tests Pools
+
+Um eine größere Abdeckung zu erhalten werden die Hersteller in Pools eingeteilt. Somit können mehrere Hersteller gleichzeitig getestet werden. Anschließend werden die Pools erneut gemischt.
+
+.Abbildung{counter:abbildung: 1}: IOP Test Pools
+image:generated/Other/Test/IOP Pools.svg[align="left",width="100%", title="Verpflichtung nach der Zulassung"]
+
+== Verpflichtung nach der Zulassung
+Der TI-Messenger-Anbieter MUSS eine Referenz-Instanz und mindestens eine Test-Instanz des TI-Messenger-Fachdienstes (TI-M FD) und TI-Messenger-Clients (TI-M Client) bereitstellen und betreiben. Die Referenz-Instanz hat die gleiche Version wie die Produktionsumgebung. Weiterhin wird die Referenz-Instanz für die Reproduktion aktueller Fehler/Probleme aus der Produktionsumgebung genutzt. Der Zugriff auf die Referenz-Instanz MUSS für die gematik zur Fehleranalyse gewährleistet sein. Die Test-Instanz dient den Herstellern bei der Entwicklung neuer TI-M Clients und TI-M FD Versionen, bei den IOP-Tests zwischen den verschiedenen TI-Messenger-Anbietern und wird zudem von der gematik für die Zulassung genutzt. Der TI-Messenger-Anbieter MUSS die verschiedenen Benutzer der Referenz-Instanz und der Test-Instanz koordinieren (Verwaltung eines Test-/Nutzungsplans). Bei Bedarf (Entwicklung verschiedener Versionen, hoher Auslastung durch andere Hersteller oder durch die gematik) MUSS der TI-Messenger-Anbieter auch mehrere Test-Instanzen mit der gleichen oder mit verschiedenen Versionen bereitstellen und betreiben.
+
+.Abbildung{counter:abbildung: 1}: Verpflichtung nach der Zulassung
+image:generated/Other/Test/nach_der_Zulassung.svg[align="left",width="100%", title="Verpflichtung nach der Zulassung"]
+
+Die Referenz-Instanz und die Test-Instanz wird auch im Anschluss der Zulassung weiter für IOP Test und Continuous Testing genutzt.
\ No newline at end of file
diff --git a/docs/anwendungsfaelle/COM-AF10057-anmeldung-am-messenger-service.adoc b/docs/anwendungsfaelle/COM-AF10057-anmeldung-am-messenger-service.adoc
deleted file mode 100644
index 50190c61..00000000
--- a/docs/anwendungsfaelle/COM-AF10057-anmeldung-am-messenger-service.adoc
+++ /dev/null
@@ -1,50 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== AF_10057 - Anmeldung eines Akteurs am Messenger-Service
-Mit diesem Anwendungsfall meldet sich ein Akteur an einem in der TI-Föderation zuständigen *Messenger-Service* an und registriert seinen *TI-Messenger-Client* als Endgerät. Der Akteur muss die Matrix-Domain des gewünschten *Messenger-Service* direkt im *TI-Messenger-Client* eingeben können. Die Eingabe kann dabei automatisiert oder durch andere Hilfsmittel wie beispielweise durch ein QR-Code-Scan unterstützt werden. Die Authentifizierung erfolgt hierbei nach den Vorgaben der jeweiligen Organisation. Nach der erfolgreichen Anmeldung eines Akteurs am *Messenger-Service* können die von ihm angebotenen Dienste verwendet werden.
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Anmeldung eines Akteurs am Messenger-Service
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Akteur* |Leistungserbringer, Mitarbeiter einer Organisation im Gesundheitswesen in der "Rolle User / User-HBA"
-|*Auslöser* |Ein Akteur möchte sich mit seinem TI-Messenger-Client bei einem Messenger-Service anmelden.
-|*Komponenten* a|
- * TI-Messenger-Client,
- * Messenger-Proxy,
- * Messenger-Homeserver,
- * FHIR-Proxy,
- * FHIR-Directory.
-|*Vorbedingungen* a|
- * Der Akteur verfügt über einen vom Anbieter unterstützen TI-Messenger-Client.
- * Der Akteur kennt die URL des Messenger-Services oder die URL ist bereits in seinem TI-Messenger-Client konfiguriert.
- * Der Akteur kann sich durch ein beim Matrix-Homeserver unterstütztes Authentisierungsverfahren identifizieren. Wird durch die Organisation ein eigenes Authentifizierungsverfahren verwendet MUSS eine Anbindung an den Matrix-Homeserver erfolgt sein.
- * Der verwendete Matrix-Homeserver ist in die Föderation integriert (valider Messenger-Service).
-|*Eingangsdaten*|URL des Matrix-Homeservers
-|*Ergebnis* | Es wurde ein TI-Messenger Account für einen Akteur in der Rolle "User / User-HBA" erzeugt.
-|*Ausgangsdaten* |Matrix-ACCESS_TOKEN, MXID, device_id, Matrix-OpenID-Token, Status
-|===
-====
-.Sequenzdiagramm
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
diff --git a/docs/anwendungsfaelle/COM-AF10061-einladung-ausserhalb.adoc b/docs/anwendungsfaelle/COM-AF10061-einladung-ausserhalb.adoc
deleted file mode 100644
index aec036ec..00000000
--- a/docs/anwendungsfaelle/COM-AF10061-einladung-ausserhalb.adoc
+++ /dev/null
@@ -1,51 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== AF_10061 - Einladung von Akteuren außerhalb einer Organisation
-In diesem Anwendungsfall wird ein Akteur außerhalb einer Organisation eingeladen. Für die Suche von Akteuren außerhalb der Organisation kann das *VZD-FHIR-Directory* verwendet werden. Ist die `MXID` des gesuchten Akteurs dort nicht vorhanden muss es die Möglichkeit geben, die Kontaktaufnahme auch auf andere Wege zu ermöglichen. Es muss mindestens die Kontaktaufnahme mit Hilfe eines QR-Code Scans angeboten werden. Weitere Optionen zur Eingabe der `MXID` (z. B. manuelle Eingabe) sind zulässig. Im Gegensatz zu einer Einladung von Akteuren innerhalb einer Organisation (link:/docs/anwendungsfaelle/COM-AF10104-einladung-innerhalb.adoc[AF_10104 - Einladung von Akteuren innerhalb einer Organisation]), prüft in diesem Anwendungsfall der *Messenger-Proxy* zusätzlich die in *[gemSpec_TI-Messenger-Dienst#3.5]* festgelegten Kriterien der Server-Server Kommunikation (Stufe 1 - 3).
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Einladung von Akteuren außerhalb einer Organisation
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Akteur* |Leistungserbringer, Mitarbeiter einer Organisation im Gesundheitswesen in der "Rolle User / User-HBA"
-|*Auslöser* |Akteur A möchte mit Akteur B außerhalb einer Organisation einen gemeinsamen Chatraum einrichten.
-|*Komponenten* a|
- * TI-Messenger-Client A + B,
- * Messenger-Proxy A + B,
- * Messenger-Homeserver A + B,
- * VZD-FHIR-Directory,
- * Push-Gateway B
-|*Vorbedingungen* a|
- * Die Akteure verfügen über einen zugelassenen TI-Messenger-Client.
- * Die Akteure kennen die URL ihres Messenger-Service oder die URL ist bereits in ihren TI-Messenger-Clients konfiguriert.
- * Die Akteure sind am Messenger-Services angemeldet
- * Die verwendeten Messenger-Services sind Bestandteile der TI-Messenger-Föderation.
-|*Eingangsdaten* | Matrix Invite Event
-|*Ergebnis* a|Actor A and actor B are both in a shared chat room.
-Optionally, a notification is sent to actor B about the invitation to the chat room.
-|*Ausgangsdaten* |status
-|===
-====
-.Sequenzdiagramm
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
diff --git a/docs/anwendungsfaelle/COM-AF10062-events-ausserhalb.adoc b/docs/anwendungsfaelle/COM-AF10062-events-ausserhalb.adoc
deleted file mode 100644
index 5557732e..00000000
--- a/docs/anwendungsfaelle/COM-AF10062-events-ausserhalb.adoc
+++ /dev/null
@@ -1,47 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== AF_10062 - Austausch von Events zwischen Akteuren außerhalb einer Organisation
-In diesem Anwendungsfall können Akteure welche sich in einem gemeinsamen Raum befinden Nachrichten austauschen und andere durch die Matrix-Spezifikation festgelegte Aktionen ausführen. Dieser Anwendungsfall setzt ein erfolgreiches `Invite`-Event eines oder mehrerer beteiligter Akteure voraus. Die Prüfung auf Domainzugehörigkeit findet jedoch bei jedem `Event` der Server-Server Kommunikation statt. In diesem Anwendungsfall sind die beteiligten Akteure in einem gemeinsamen Chatraum und auf unterschiedlichen *Messenger-Services* verteilt.
-
-.AF_10062 Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Austausch von Events zwischen Akteuren außerhalb einer Organisation
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Akteur* |Leistungserbringer, Mitarbeiter einer Organisation im Gesundheitswesen in der Rolle "User / User-HBA"
-|*Auslöser* |Alle Matrix-Events die zwischen Messenger-Services unterschiedlicher Organisationen ausgeführt werden.
-|*Komponenten* a|
- * TI-Messenger-Client A + B,
- * Messenger-Proxy A + B,
- * Messenger-Homeserver A + B,
- * Push-Gateway B
-|*Vorbedingungen* a|
- * Beide Akteure sind Teilnehmer eines gemeinsamen Raumes
- * Die Messenger Proxies verfügen über eine aktuelle Föderationsliste
-|*Eingangsdaten* | Matrix-Event
-|*Ergebnis* a|Matrix-Event wurde erfolgreich verarbeitet
-|*Ausgangsdaten* data |Abhängig vom Matrix-Event, Status
-|===
-====
-.Sequenzdiagramm
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
diff --git a/docs/anwendungsfaelle/COM-AF10063-events-innerhalb.adoc b/docs/anwendungsfaelle/COM-AF10063-events-innerhalb.adoc
deleted file mode 100644
index 2541ab51..00000000
--- a/docs/anwendungsfaelle/COM-AF10063-events-innerhalb.adoc
+++ /dev/null
@@ -1,48 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== AF_10063 - Austausch von Events zwischen Akteuren innerhalb einer Organisation
-Dieser Anwendungsfall ermöglicht es Akteuren, welche sich in einem gemeinsamen Raum innerhalb eines *Messenger-Service* befinden, Nachrichten auszutauschen und weitere durch die Matrix-Spezifikation festgelegte Aktionen (`Events`) auszuführen.
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Austausch von Events zwischen Akteuren innerhalb einer Organisation
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Aktuer* |Leistungserbringer, Mitarbeiter einer Organisation im Gesundheitswesen in der Rolle "User / User-HBA"
-|*Auslöser* |Alle Matrix-Events die innerhalb eines Messenger-Service einer Organisation ausgeführt werden
-|*Komponenten* a|
- * TI-Messenger-Client A + B,
- * Messenger-Proxy,
- * Messenger-Homeserver,
- * Push-Gateway
-|*Vorbedingungen* a|
- * Die Akteure sind am selben Messenger-Service angemeldet.
- * Jeder Akteur hat einen zugelassenen TI-Messenger-Client.
- * Die Teilnehmer sind einem gemeinsamen Raum beigetreten.
-|*Eingangsdaten* | Matrix-Event
-|*Ergebnis* a|Matrix-Event wurde erfolgreich verarbeitet
-|*Ausgangsdaten* |Abhängig vom Matrix-Event
-|===
-====
-.Sequenzdiagramm
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
diff --git a/docs/anwendungsfaelle/COM-AF10104-einladung-innerhalb.adoc b/docs/anwendungsfaelle/COM-AF10104-einladung-innerhalb.adoc
deleted file mode 100644
index ef5766cd..00000000
--- a/docs/anwendungsfaelle/COM-AF10104-einladung-innerhalb.adoc
+++ /dev/null
@@ -1,49 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== AF_10104 - Einladung von Akteuren innerhalb einer Organisation
-In diesem Anwendungsfall wird ein Akteur der zu einer gemeinsamen Organisation gehört in einen Raum eingeladen um Aktionen auszuführen. Für die Suche von Akteuren innerhalb einer gemeinsamen Organisation durchsucht ein *TI-Messenger-Client* das Nutzerverzeichnis seiner Organisation auf dem *Matrix-Homeserver*. In diesem Anwendungsfall prüft der *Messenger-Proxy* gemäß *[gemSpec_TI-Messenger-Dienst#3.5]* der Client-Server Kommunikation, ob die im `Invite`-Event enthaltenen Matrix-Domains Teil der TI-Föderation sind. Ist dies der Fall erfolgt die Weiterleitung an den *Matrix-Homeserver* des Einladenden. Dieser prüft ob die beteiligten Akteure bei ihm registriert sind. Ist dies nicht der Fall, handelt es sich bei dem einzuladenden Akteur nicht um einen Akteur innerhalb der Organisation und das `Invite`-Event wird für die externe Zustellung weitergeleitet. Der Anwendungsfall link:/docs/anwendungsfaelle/COM-AF10061-einladung-ausserhalb.adoc[AF_10061 - Einladung von Akteuren außerhalb einer Organisation] zeigt den sich daraus ergebenden Verlauf.
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Einladung von Akteuren innerhalb einer Organisation
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Akteur* |Leistungserbringer, Mitarbeiter einer Organisation im Gesundheitswesen in der Rolle "User / User-HBA"
-|*Auslöser* |Akteur A möchte Akteur B seiner Organisation in einen gemeinsamen Raum einladen.
-|*Komponenten* a|
- * TI-Messenger-Client A + B,
- * Messenger-Proxy,
- * Messenger-Homeserver,
- * Push-Gateway
-|*Vorbedingungen* a|
- * Die Akteure sind am selben Messenger-Service angemeldet.
- * Jeder Akteur hat einen zugelassenen TI-Messenger-Client.
- * Ein Chatraum wurde durch den Einladenden eingerichtet.
-|*Eingangsdaten* | Matrix Invite-Event
-|*Ergebnis* a| Akteur A und Akteur B sind beide in einem gemeinsamen Chatraum.
- Optional erfolgt eine Benachrichtigung an Akteur B über die Einladung in den Chatraum.
-|*Ausgangsdaten* |status
-|===
-====
-.Sequenzdiagramm
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
diff --git a/docs/anwendungsfaelle/COM-chatbot.adoc b/docs/anwendungsfaelle/COM-chatbot.adoc
new file mode 100644
index 00000000..5d3365e7
--- /dev/null
+++ b/docs/anwendungsfaelle/COM-chatbot.adoc
@@ -0,0 +1,60 @@
+ifdef::env-github[]
+:tip-caption: :bulb:
+:note-caption: :information_source:
+:important-caption: :heavy_exclamation_mark:
+:caution-caption: :fire:
+:warning-caption: :warning:
+endif::[]
+
+:imagesdir: ../../images
+
+image:meta/gematik_logo.svg[width=70%]
+
+=== Kommunikation mit einem Chatbot
+Im Folgenden wird ein Beispiel für eine mögliche Zuordnung für die Abbildung von Funktionsaccounts mit Hilfe von Chatbots und eines Akteurs der stellvertretend für die Organisation auftritt.
+Der Chatbot kann automatisiert Anfragen von Akteuren (z. B. für Terminanfragen, Medikationsentscheidung) bearbeiten oder bei Bedarf die zugeordneten und zu diesem Zeitpunkt verfügbaren Akteure in den Chatraum einladen. Die dem Chatbot zur Verfügung stehenden Akteure (in der Spalte "Akteur (MXID)") sind in der Konfiguration des Chatbots zu hinterlegen. Im letzte Beispiel in der Tabelle ist ein Akteur (natürliche Person) als Endpoint hinterlegt und tritt stellvertretend für die Organisation in den Chat ein.
+
+.Übersicht der Zuordnung von Funktionsaccounts und Akteuren
+|===
+|Abteilung |Funktionsaccount |Endpoint.address |Akteur (MXID) |Displayname im Chatraum
+
+|Kardiologie |Labor_Kardiologie |@MXID_Bot01:.de |@MXID_01:.de @MXID_02:.de a|
+* Empfang_Kardiologie (Chatbot)
+* Dennert, Maltilde
+* Fritsche, Sarah
+
+|Neurologie |Ambulanz_Neurologie |@MXID_Bot02:.de |@MXID_03:.de a|
+* Ambulanz_Neurologie (Chatbot)
+* Gotsch, Gerd
+
+|Radiologie |Empfang_Radiologie |@MXID_04:.de |- |Fruechtl, Wilfried
+|===
+
+=== Beispiel: Einladung durch einen Chatbot
+Die folgende Grafik zeigt den Ablauf beim Kontaktieren eines Funktionsaccounts durch einen Akteur. Der Funktionsaccount wird durch den Chatbot repräsentiert. Der Chatbot kann automatisiert Anfragen von Akteuren bearbeiten oder bei Bedarf die zugeordneten und zu diesem Zeitpunkt verfügbaren Akteure in den Chatraum einladen. Die dem Chatbot zur Verfügung stehenden Akteure sind in der Konfiguration des Chatbots zu definieren.
+
+A. Vorbedingung:
+* Die Organisation Klinikum X verfügt über einen TI-Messenger-Client mit Administrationsfunktion und einen Messenger-Service
+* Chatbots stehen zur Verfügung und können vom Akteur in der Rolle "Org-Admin" verwaltet werden
+
+B. Konfiguration von Funktionsaccounts:
+* Der Akteur in der Rolle "Org-Admin" legt einen Funktionsaccount (organisationsbezogene MXID) als einen Endpoint des gewünschten HealthcareService der Organisation an und ordnet dieser MXID einen Chatbot zu.
+* Der Akteur in der Rolle "Org-Admin" weist zuständige Akteure der Organisation (personenbezogene MXIDs) dem Chatbot zu.
+* Die Zuordnung von Akteuren zu einzelnen Anfragen innerhalb eines Funktionsaccounts (z. B. Terminanfragen, Medikationsentscheidung) erfolgt durch die Konfiguration im Chatbot.
+
+C. Beispielhafter Ablauf (siehe Abbildung "Kommunikation mit einem Chatbot"):
+. Es liegt ein kardiologisches Problem vor und der Akteur sucht nach einer Organisation und/oder Unterstruktur dieser Organisation. (z. B. in seinem Krankenhaus die Abteilung Kardiologie)
+. Der Akteur öffnet einen Chatraum mit dem Funktionsaccount der Abteilung Kardiologie.
+. Der Chatbot des Funktionsaccounts der Abteilung Kardiologie betritt den Raum und erfragt das Anliegen vom Akteur (z. B. Terminanfrage, Rückfrage an Arzt etc.) abfragen.
+. Der Akteur antwortet dem Chatbot.
+. Der Chatbot lädt je nach Anliegen die ihm zugeordneten und verfügbaren Akteure in den Chatraum ein.
+. Eingeladene Akteure betreten den Chatraum mit ihrem Displaynamen und kommunizieren mit dem Akteur.
+
+.Kommunikation mit einem Chatbot
+[%collapsible%open]
+====
+image:generated/Other/chatbot.svg[width="100%"]
+====
+
+
+
diff --git a/docs/anwendungsfaelle/MS-AF10060-bereitstellung-messenger-service.adoc b/docs/anwendungsfaelle/MS-AF10060-bereitstellung-messenger-service.adoc
deleted file mode 100644
index db173387..00000000
--- a/docs/anwendungsfaelle/MS-AF10060-bereitstellung-messenger-service.adoc
+++ /dev/null
@@ -1,52 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== AF_10060 - Bereitstellung eines Messenger-Service für eine Organisation
-Mit diesem Anwendungsfall wird einer zuvor am *Registrierungs-Dienst* authentifizierten Organisation ein *Messenger-Service* für diese Organisation durch einen Akteur in der Rolle "Org-Admin" bereitgestellt. Die Beantragung zur Bereitstellung eines *Messenger-Service* wird durch den Akteur in der Rolle "Org-Admin" am *Frontend des Registrierungs-Dienstes* vorgenommen. Dieser MUSS sich zuvor mit dem Admin-Account der Organisation am *Registrierungs-Dienst* anmelden. Für eine zeitnahe Adaption des *TI-Messenger-Dienstes* MUSS eine schnelle Bereitstellung von *Messenger-Services* gewährleistet sein. Anbieter eines *TI-Messenger-Fachdienstes* sind verpflichtet, Prozesse zu etablieren, damit *Messenger-Services* für Organisationen schnell und ggf. automatisiert bereitgestellt werden können. Nach erfolgreicher Bereitstellung eines *Messenger-Service* wird dieser in die Föderation des *TI-Messenger-Dienstes* aufgenommen. Werden mehrere *Messenger-Services* für eine Organisation benötigt kann dieser Anwendungsfall mehrfach ausgeführt werden.
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Bereitstellung eines Messenger-Service für eine Organisation
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Akteur* |Beauftragter Mitarbeiter einer Organisation in der Rolle "Org-Admin"
-|*Auslöser* |Eine Organisation des deutschen Gesundheitswesen möchte am TI-Messenger-Dienst teilnehmen und benötigt die Bereitstellung eines oder mehrerer Messenger-Services
-|*Komponenten* a|
- * Frontend des Registrierungs-Dienstes,
- * Registrierungs-Dienst,
- * VZD-FHIR-Directory,
- * Messenger-Service
-|*Vorbedingungen* a|
- * Es besteht ein Vertragsverhältnis mit einem TI-Messenger-Anbieter.
- * Der Akteur verfügt über ein Frontend des Registrierungs-Dienstes für die Kommunikation mit dem Registrierungs-Dienst.
- * Das verwendete Frontend des Registrierungs-Dienstes ist beim zentralen IDP-Dienst registriert.
- * Die Organisation ist erfolgreich beim Registrierungs-Dienst authentifiziert und ein Admin-Account ist vorhanden.
- * Der Registrierungs-Dienst kann sich beim VZD-FHIR-Directory Server für Schreibzugriffe mit OAuth2 authentisieren.
-|*Eingangsdaten* |Admin-Account, Identität der Organisation (SMC-B)
-|*Ergebnis* a|
- * Der Messenger-Service für die Organisation wurde erstellt.
- * Die Matrix-Domain des neuen Messenger-Services wurde als Endpunkt im VZD-FHIR-Directory eingetragen und in die Föderation aufgenommen.
-|*Ausgangsdaten* |Neuer Messenger-Service für die Organisation, Status
-|===
-====
-.Sequenzdiagramm
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
diff --git a/docs/anwendungsfaelle/MS-AF10064-foederation-pruefen.adoc b/docs/anwendungsfaelle/MS-AF10064-foederation-pruefen.adoc
deleted file mode 100644
index 37bd7ac1..00000000
--- a/docs/anwendungsfaelle/MS-AF10064-foederation-pruefen.adoc
+++ /dev/null
@@ -1,43 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== AF_10064 - Föderationszugehörigkeit eines Messenger-Service prüfen
-Dieser Anwendungsfall prüft gemäß *[gemSpec_TI-Messenger-Dienst#3.5]* die im Berechtigungskonzept festgelegten Kriterien für die Stufe 1 der Client-Server und Server-Server Kommunikation, ob ein *Messenger-Service* zugehörig zur TI-Messenger-Föderation ist und gilt für alle Anwendungsfälle, welche die Matrix-Domain eines *Messenger-Services* überprüfen müssen. Für die Prüfung der Zugehörigkeit der Matrix-Domain zur TI-Messenger-Föderation, verwendet der *Messenger-Proxy* eine Föderationsliste, die vom *Registrierungs-Dienst* seines *TI-Messenger-Fachdienstes* bereitgestellt wird. Die Speicherdauer der Föderationsliste des *Messenger-Proxies* ist limitiert. Die Aktualisierung der Föderationsliste erfolgt gemäß *[gemSpec_TI-Messenger-Dienst#8.2]*.
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Föderationszugehörigkeit eines Messenger-Service prüfen
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Akteur* |-
-|*Auslöser* |Der Messenger-Proxy empfängt oder sendet ein Matrix-Event und MUSS die im Request enthaltenen MXIDs auf Domain-Zugehörigkeit zur TI-Messenger-Föderation prüfen.
-|*Komponenten* a|
- * Messenger-Proxy,
- * Matrix-Homeserver
-|*Vorbedingungen* a| keine
-|*Eingangsdaten* |Matrix-Event
-|*Ergebnis* a|Der Messenger-Proxy ermittelt mittels der Föderationsliste, ob die Matrix-Domain des anderen Messenger-Service Teil der TI-Messenger-Föderation ist.
-|*Ausgangsdaten* |Status vom Matrix-Homeserver und Weiterleitung
-|===
-====
-.Sequenzdiagramm
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
diff --git a/docs/anwendungsfaelle/MS-AF10103-authentisieren-organisation.adoc b/docs/anwendungsfaelle/MS-AF10103-authentisieren-organisation.adoc
deleted file mode 100644
index 86832c96..00000000
--- a/docs/anwendungsfaelle/MS-AF10103-authentisieren-organisation.adoc
+++ /dev/null
@@ -1,59 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== AF_10103 - Authentisieren einer Organisation am TI-Messenger-Dienst
-Mit diesem Anwendungsfall authentisiert ein Akteur, in der Rolle "Org-Admin", seine Organisation bei einem Anbieter eines *TI-Messenger-Dienestes*. Für die Authentisierung einer Organisation stellt der *TI-Messenger-Fachdienst* die Schnittstelle `I_Registration` an seinem *Registrierungs-Dienst* bereit. Diese wird über das *Frontend des Registrierungs-Dienstes* für die Authentisierung verwendet. Die Authentisierung der Organisation erfolgt individuell und nutzungsabhängig durch einen Akteur in der Rolle "Org-Admin". Durch die Authentifizierung MUSS der Besitz einer gültigen SMC-B nachgewiesen werden, da nur Organisationen des Gesundheitswesens berechtigt sind einen *Messenger-Service* zu erhalten. Als Nachweis MUSS eins der folgenden Verfahren verwendet werden. Für die Verifizierung der Organisation MUSS
-
-* Verfahren 1: bei der Authentisierung am *zentralen IDP-Dienst* eine freigeschaltete SMC-B verwendet werden oder
-* Verfahren 2: eine KIM-Nachricht an die Adresse der Organisation mit der freigeschalteten SMC-B gesendet werden.
-
-Als Nachweis zur Prüfung auf eine gültige Organisation MUSS der *Registrierungs-Dienst* in beiden Verfahren prüfen, ob die `ProfessionOID` zu einer Organisation des Gesundheitswesens gehört. Bei erfolgreicher Verifizierung der Organisation wird ein Administrator-Account für die Organisation am *Registrierungs-Dienst* angelegt. Dies ermöglicht es einem Administrator *Messenger-Services* zu registrieren und seiner Organisation am *TI-Messenger-Dienst* teilzunehmen.
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Authentisieren einer Organisation am TI-Messenger-Dienst
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Akteur* |Beauftragter Mitarbeiter einer Organisation in der Rolle "Org-Admin"
-|*Auslöser* |Eine Organisation des deutschen Gesundheitswesens möchte am TI-Messenger-Dienst teilnehmen und benötigt die Berechtigung einen Messenger-Service zu registrieren
-|*Komponenten* a|
- * Frontend des Registrierungs-Dienstes,
- * Authenticator (Optional bei Verfahren 2),
- * Konnektor,
- * eHealth Kartenterminal mit gesteckter SMC-B,
- * Registrierungs-Dienst,
- * zentraler IDP-Dienst (Optional bei Verfahren 2)
- * KIM-Clientmodul und Mailclient (Optional bei Verfahren 1)
-|*Vorbedingungen* a|
- * Der Akteur kann über ein Frontend des Registrierungs-Dienstes für die Kommunikation auf den Registrierungs-Dienst zugreifen.
- * Verifizierung der Organisation:
- ** Verfahren 1: Der Akteur kann den Authenticator verwenden sowie das verwendete Frontend des Registrierungs-Dienstes, welches beim zentralen IDP-Dienst registriert ist.
- ** Verfahren 2: Der Anbieter des TI-Messenger verfügt über eine SMC-B Org und eine KIM-Adresse sowie ein eHealth Kartenterminal und einen Konnektor mit TI-Zugang. Der Akteur verfügt über eine SMC-B und eine KIM-Adresse sowie ein eHealth Kartenterminal und einen Konnektor mit TI-Zugang.
- * Die im eHealth Kartenterminal gesteckte SMC-B ist freigeschaltet.
-|*Eingangsdaten* |Identität der Organisation, SMC-B, Alternativ KIM-Adresse
-|*Ergebnis* a|Die Organisation wurde am Registrierungs-Dienst des TI-Messenger-Fachdienstes verifiziert
-|*Ausgangsdaten* |Admin-Account, Status
-|===
-====
-.Sequenzdiagramm
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
-
diff --git a/docs/anwendungsfaelle/MS-aktualisierung-foederationsliste.adoc b/docs/anwendungsfaelle/MS-aktualisierung-foederationsliste.adoc
deleted file mode 100644
index 8b447bbe..00000000
--- a/docs/anwendungsfaelle/MS-aktualisierung-foederationsliste.adoc
+++ /dev/null
@@ -1,86 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== A 8.2 - Aktualisierung der Föderationsliste
-Die folgende Sequenz beschreibt, wie der *Messenger-Proxy* seine lokal vorgehaltene Föderationsliste aktualisiert. Für die Aktualisierung der Föderationsliste MUSS der *Messenger-Proxy* diese beim *Registrierungs-Dienst* seines *TI-Messenger-Fachdienstes* anfragen. Die Häufigkeit der Anfrage einer neuen Liste wird durch den Anbieter festgelegt, Ziel sollte eine möglichst aktuelle Föderationsliste sein. Hierbei übergibt der *Messenger-Proxy* die durch ihn gespeicherte Version der Föderationsliste im Aufruf an den *Registrierungs-Dienst*. Bei Übereinstimmung der Version wird für den *Messenger-Proxy* keine neue Föderationsliste durch den *Registrierungs-Dienst* bereitgestellt. Ist die Version größer als die vom *Messenger-Proxy* übergebene, dann wird durch den *Registrierungs-Dienst* eine aktualisierte Föderationsliste zur Verfügung gestellt. Bei jeder Anfrage eines *Messenger-Proxys* beim *Registrierungs-Dienst* nach einer aktuellen Föderationsliste muss der *Registrierungs-Dienst* die Aktualität der durch ihn ausgelieferten Liste sicherstellen, indem er die von ihm gespeicherte Version der Föderationsliste im Bedarfsfall mit einer aktuelleren Version, die vom *FHIR-Proxy* bezogen wurde, überschreibt. Ein Download der Föderationsliste ist nur notwendig, wenn eine neuere Version auf dem *FHIR-Proxy* existiert. Die Struktur der Föderationsliste ist in https://github.com/gematik/api-vzd/blob/develop/src/schema/FederationList.json[JSON-Schemadefinition] beschrieben. Nach dem Abruf der Föderationsliste vom *Registrierungs-Dienst*, durch den *Messenger-Proxy*, muss dieser die Signatur der Föderationsliste prüfen.
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Aktualisierung der Föderationsliste
-[%header, cols="1,2"]
-|===
-| |Beschreibung
-|*Akteur* |System
-|*Auslöser* a|
- * Scheduler
- * Schnittstellenaufruf
-|*Komponenten* a|
- * Messenger-Proxy,
- * Registrierungs-Dienst,
- * FHIR-Proxy,
- * Auth-Service
-|*Vorbedingungen* a| keine
-|*Eingangsdaten* | Versionsnummer
-|*Ergebnis* | Der Messenger-Proxy erhält die Information eine aktuelle Liste zu besitzen oder eine neue Föderationsliste, sofern eine aktuellere Version vorliegt.
-|*Ausgangsdaten* |status, Föderationsliste, x5c-Zertifikatsliste
-|===
-====
-
-.Sequenzdiagramm "Föderationsliste aktualisieren"
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
-
-[caption=]
-Variablen, die vom Registrierungsdienst unterstützt werden.
-[%header, cols="1,1,2,1"]
-|===
-|Name|Type|Beschreibung|Wertebereich
-|`HealthState_VZD`|state|Hält den Gesundheitsstatus von Komponenten des VZD-FHIR-Directory in Abhängigkeit vom erhaltenen Antwortverhalten|[gesund, ungesund]
-|`HealthStateCheck_VZD`|Counter|Hält die Anzahlt der Versuche den Gesundheitsstatus des VZD-FHIR-Directory zu ermitteln|0\<= `HealthStateCheck_VZD`\<=3
-|`Alter_Föderationsliste`|Time in s |Hält das aktuelle Alter der Föderationsliste in Sekunden seit der letzten erfolgreichen Aktualisierung.
-|min: 0s
-|`TTL_Föderationsliste`|Time in h|Beschreibt das maximal erlaubte Alter der Föderationsliste.|Fester Wert: 72h
-|===
-
-Das in der Abbildung "Laufzeitansicht - Aktualisierung der Föderationsliste" referenzierte
-Sequenzdiagramm "Provider authentifizieren und Föderationsliste abrufen":
-
-.Sequenzdiagramm "Provider authentifizieren und Föderationsliste abrufen"
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
-
-Das in der Abbildung "Laufzeitansicht - Aktualisierung der Föderationsliste" referenzierte
-Sequenzdiagramm "Signatur der Föderationsliste prüfen":
-
-.Sequenzdiagramm "Signatur der Föderationsliste prüfen"
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
diff --git a/docs/anwendungsfaelle/MS-stufen-berechtigungspruefung.adoc b/docs/anwendungsfaelle/MS-stufen-berechtigungspruefung.adoc
deleted file mode 100644
index 8bbb9272..00000000
--- a/docs/anwendungsfaelle/MS-stufen-berechtigungspruefung.adoc
+++ /dev/null
@@ -1,69 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== A 8.3 - Stufen der Berechtigungsprüfung
-Die folgende Sequenz beschreibt, wie die Berechtigungsprüfung eingehender und ausgehender `Matrix-Events` am *Messenger-Proxy* erfolgen muss. Das Berechtigungskonzept basiert auf einer dreistufigen Prüfung.
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Stufen der Berechtigungsprüfung
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Akteur* |Messenger-Proxy
-|*Auslöser* | Matrix-Event
-|*Komponenten* a|
- * TI-Messenger-Client
- * Messenger-Proxy A+B,
- * Matrix-Homeserver A+B,
- * Registrierungs-Dienst,
- * VZD-FHIR-Directory
-|*Vorbedingungen* a| Der Akteur ist bei seinem Homeserver angemeldet.
-|*Eingangsdaten* |Matrix Event
-|*Ergebnis* a|Der TI-Messenger-Client erhält die Information, ob die Einladung erfolgreich prozessiert werden konnte.
-|*Ausgangsdaten* |status
-====
-.sequence diagram
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
-
-== Ablauf
-=== Prüfregeln Client-Server Kommunikation
-==== Stufe 1 - Prüfung der TI-Föderationszugehörigkeit
-* Bei der Client-Server Kommunikation prüft der *Messenger-Proxy* im `Invite`- und `createRoom`-Event enthaltene Matrix-Domains auf Föderationszugehörigkeit. Hierbei ist zu beachten, dass beim `createRoom`-Event das Attribut `invite` nur mit maximal einem Element befüllt sein darf. Nach erfolgreicher Prüfung wird das Event an den *Matrix-Homeserver* des Einladenden weitergeleitet. Der *Matrix-Homeserver* prüft daraufhin, ob die beteiligten Akteure auf demselben *Matrix-Homeserver* registriert sind. Ist dies nicht der Fall, wird das `Invite`-Event an den zuständigen *Messenger-Proxy* des Einzuladenden gerichtet, wobei die Regeln der Server-Server Kommunikation durchzuführen sind.
-
-=== Prüfregeln Server-Server Kommunikation
-Der *Messenger-Proxy* muss Prüfregeln für Server-Server Anfragen unterstützen und bei jedem `Event` den Inhalt der Anfrage prüfen. Im Folgenden werden die Prüfregeln beschrieben.
-
-==== Stufe 1 - Prüfung der TI-Föderationszugehörigkeit
-* In der 1. Stufe der Server-Server Kommunikation muss der *Messenger-Proxy* für alle `Events` eine Prüfung durchführen, die feststellt, ob die im `Event` enthaltenen Matrix-Domains zur TI-Föderation gehören. Zur Prüfung der Föderationszugehörigkeit muss der *Messenger-Proxy* im `Authorization-Header` die im Attribut `origin` enthaltene Domain (bei eingehender Kommunikation) und die im Attribut `destination` enthaltene Domain (bei ausgehender Kommunikation) gegen die Domains in der Föderationsliste prüfen. Bei erfolgreicher Prüfung erfolgt dann die Weiterverarbeitung gemäß der Stufe 2.
-
-==== Stufe 2 - Prüfung der Freigabeliste
-* In dieser Stufe prüft der *Messenger-Proxy* des Einzuladenden auf eine vorliegende Freigabe. Hierbei handelt es sich um eine Lookup-Table, in der alle erlaubten Akteure hinterlegt sind, von denen man eine Einladung in einen Chatraum akzeptiert. Ist ein Eintrag vom einladenden Akteur vorhanden, dann muss die beabsichtigte Einladung des Akteurs zugelassen werden. Ist dies nicht der Fall, muss die weitere Überprüfung gemäß der 3. Stufe erfolgen.
-
-==== Stufe 3 - Prüfung auf existierenden VZD-FHIR-Directory Eintrag
-* In der letzten Stufe erfolgt die Prüfung ausgehend von den Einträgen der beteiligten Akteure im *VZD-FHIR-Directory*. Die Einladung muss zugelassen werden, wenn:
-
-* die `MXID` des einzuladenden Akteurs im Organisationsverzeichnis hinterlegt und seine Sichtbarkeit in diesem Verzeichnis nicht eingeschränkt ist oder
-* der einladende sowie der einzuladende Akteur im Personenverzeichnis hinterlegt sind und der einzuladende Akteur seine Sichtbarkeit in diesem Verzeichnis nicht eingeschränkt hat.
-
-Ist die Prüfung nicht erfolgreich, dann muss die beabsichtigte Einladung des Akteurs vom *Messenger-Proxy* abgelehnt werden.
-
-
diff --git a/docs/anwendungsfaelle/TI-Messenger-Anwendungsfaelle.adoc b/docs/anwendungsfaelle/TI-Messenger-Anwendungsfaelle.adoc
deleted file mode 100644
index 36c63ea9..00000000
--- a/docs/anwendungsfaelle/TI-Messenger-Anwendungsfaelle.adoc
+++ /dev/null
@@ -1,57 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-:toc: macro
-:toclevels: 3
-:toc-title: Inhaltsverzeichnis
-:numbered:
-
-image:meta/gematik_logo.svg[width=70%]
-
-toc::[]
-
-= Anwendungsfälle
-Die folgende Seite gibt einen Überblick über die Anwendungsfälle des *TI-Messenger-Dienstes* die in *[gemSpec_TI-Messenger-Dienst]* beschrieben sind. Neben einer Einleitung enthält jedes Kapitel einen Link zu einer detaillierten Anwendungsfallbeschreibung und einem Sequenzdiagramm, das die Interaktion zwischen den beteiligten Komponenten visualisiert.
-
-TIP: Die Serviceaufrufe in den Sequenzdiagrammen enthalten möglicherweise nicht alle für den Aufruf erforderlichen Parameter. Die Sequenzdiagramme umfassen möglicherweise auch nicht alle Fehlerfälle. Sie konzentrieren sich auf die häufigsten Fehler für jeden einzelnen Anwendungsfall.
-
-== Bereitstellung und Administration eines Messenger-Service
-Um mit anderen Akteuren Nachrichten austauschen zu können, benötigt die Organisation einen *Messenger-Service* von einem Anbieter eines *TI-Messenger-Fachdienstes*. Die folgenden Anwendungsfälle erläutern die Bereitstellung eines: *Messenger-Service*, die Föderations-Prüfungen, die Verwaltung der Föderationsliste sowie die verschiedenen Ebenen der Berechtigungsprüfungen.
-
-* link:MS-AF10103-authentisieren-organisation.adoc[AF_10103 - Authentisieren einer Organisation am TI-Messenger-Dienst]
-
-* link:MS-AF10060-bereitstellung-messenger-service.adoc[AF_10060 - Bereitstellung eines Messenger-Service für eine Organisation]
-
-* link:COM-AF10057-anmeldung-am-messenger-service.adoc[AF_10057 - Anmeldung eines Akteurs am Messenger-Service]
-
-* link:MS-AF10064-foederation-pruefen.adoc[AF_10064 - Föderationszugehörigkeit eines Messenger-Service prüfen]
-
-* link:MS-aktualisierung-foederationsliste.adoc[A 8.2 - Aktualisierung der Föderationsliste]
-
-* link:MS-stufen-berechtigungspruefung.adoc[A 8.3 - Stufen der Berechtigungsprüfung]
-
-== Interaktion mit dem VZD-FHIR-Directory
-Das *VZD-FHIR-Directory* ist das zentrale Adressbuch für Organisationen und Personen im deutschen Gesundheitswesen. In den folgenden Anwendungsfällen wird detailliert erläutert, was erforderlich ist, um die Organisations- oder Practitioner-Informationen im *VZD-FHIR-Directory* - im Kontext des *TI-Messenger-Dienstes* - zu ändern bzw. um FHIR-Ressourcen zu suchen.
-
-* link:VZD-AF10059-organisation-hinzufuegen.adoc[AF_10059 - Organisationsressourcen im Verzeichnisdienst hinzufügen]
-
-* link:VZD-AF10058-practitioner-hinzufuegen.adoc[AF_10058 - Akteur (User-HBA) im Verzeichnisdienst hinzufügen]
-
-* link:VZD-suche.adoc[A 8.1 - Einträge im VZD-FHIR-Directory suchen]
-
-== Interaktion zwischen Akteuren
-Die folgenden Anwendungsfälle beschreiben den Anmeldevorgang, die Einladung anderer Akteure sowie den Austausch von Nachrichten. Sowohl die Einladungen als auch der Nachrichtenaustausch werden aus zwei Perspektiven erklärt. Die erste Perspektive konzentriert sich auf die Kommunikation innerhalb einer Organisation, die zweite Perspektive zeigt die Abläufe für eine Kommunikation mit mehr als einem beteiligten *Matrix-Homeserver*.
-
-* link:COM-AF10104-einladung-innerhalb.adoc[AF_10104 - Einladung von Akteuren innerhalb einer Organisation]
-
-* link:COM-AF10063-events-innerhalb.adoc[AF_10063 - Austausch von Events zwischen Akteuren innerhalb einer Organisation]
-
-* link:COM-AF10061-einladung-ausserhalb.adoc[AF_10061 - Einladung von Akteuren außerhalb einer Organisation]
-
-* link:COM-AF10062-events-ausserhalb.adoc[AF_10062 - Austausch von Events zwischen Akteuren ausserhalb einer Organisation]
diff --git a/docs/anwendungsfaelle/VZD-AF10058-practitioner-hinzufuegen.adoc b/docs/anwendungsfaelle/VZD-AF10058-practitioner-hinzufuegen.adoc
deleted file mode 100644
index 702d93d3..00000000
--- a/docs/anwendungsfaelle/VZD-AF10058-practitioner-hinzufuegen.adoc
+++ /dev/null
@@ -1,51 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== AF_10058 Akteur - (User-HBA) im Verzeichnisdienst hinzufügen
-Mit diesem Anwendungsfall wird ein Akteur in der Rolle "User-HBA" für andere Akteure anderer *Messenger-Services* auffindbar und erreichbar. Dafür werden FHIR-Ressourcen mit ihrer jeweiligen `MXID` im Personenverzeichnis (`PractitionerRole`) des *VZD-FHIR-Directory* hinterlegt. Zusätzlich besteht die Möglichkeit die Sichtbarkeit für andere Akteure einzuschränken. Dieser Anwendungsfall kann direkt mit dem initialen Anmeldevorgang eines Akteurs am *Messenger-Service* (siehe Anwendungsfall: link:/docs/anwendungsfaelle/COM-AF10057-anmeldung-am-messenger-service.adoc[AF_10057 - Anmeldung eines Akteurs am Messenger-Service]) kombiniert werden. Hierfür wird der Akteur in der Rolle "User-HBA" während des Anmeldevorgangs durch den *TI-Messenger-Client* gefragt, ob dieser im Besitz eines HBAs ist.
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Akteur (User-HBA) im Verzeichnisdienst hinzufügen
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Akteur* |Leistungserbringer, Mitarbeiter einer Organisation im Gesundheitswesen in der Rolle "User-HBA"
-|*Auslöser* |Ein Akteur in der Rolle "User-HBA" möchte sich im Personenverzeichnis erreichbar machen, indem er seine MXID im seinen Practitioner-Datensatz im VZD-FHIR-Directory hinterlegt.
-|*Komponenten* a|
- * TI-Messenger-Client,
- * Authenticator,
- * zentraler IDP-Dienst,
- * FHIR-Proxy,
- * Auth-service,
- * VZD-FHIR-Directory,
-|*Vorbedingungen* a|
- * Der Akteur ist bei einem gültigen Messenger-Service angemeldet.
- * Der Akteur verfügt über einen zugelassenen TI-Messenger-Client.
- * Das VZD-FHIR-Directory ist beim zentralen IDP-Dienst registriert.
- * Der Akteur kann sich am zentralen IDP-Dienst authentisieren.
-|*Eingangsdaten* |HBA, FHIR-Practitioner-Ressourcen
-|*Ergebnis* |FHIR-Practitioner-Ressourcen aktualisiert, Status
-|*Ausgangsdaten* |aktualisierter Practitioner-Datensatz
-|===
-====
-.Sequenzdiagramm
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
diff --git a/docs/anwendungsfaelle/VZD-AF10059-organisation-hinzufuegen.adoc b/docs/anwendungsfaelle/VZD-AF10059-organisation-hinzufuegen.adoc
deleted file mode 100644
index 8f46e377..00000000
--- a/docs/anwendungsfaelle/VZD-AF10059-organisation-hinzufuegen.adoc
+++ /dev/null
@@ -1,51 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== AF_10059 - Organisationsressourcen im Verzeichnisdienst hinzufügen
-Mit diesem Anwendungsfall macht ein Akteur in der Rolle "Org-Admin" Akteure seiner Organisation im *TI-Messenger-Dienst* für andere Akteure auffindbar und erreichbar. Dafür werden Endpoint-Ressourcen mit ihrer jeweiligen `MXID` im Organisationsverzeichnis (`HealthcareService`) des *VZD-FHIR-Directory* hinterlegt. Organisationen können mehrere FHIR-Ressourcen pro Organisation administrieren und somit eingehende Kommunikationsprozesse organisatorisch und thematisch strukturieren (siehe *[gemSpec_VZD_FHIR_Directory]*).
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Organisationsressourcen im Verzeichnisdienst hinzufügen
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Akteur* |Beauftragter Mitarbeiter einer Organisation in der Rolle "Org-Admin"
-|*Auslöser* |Der Administrator der Organisation (Org-Admin) möchte seine Organisation erreichbar machen indem die MXIDs der Akteure der Organisation im VZD-FHIR-Directory hinterlegt werden.
-|*Komponenten* a|
- * TI-Messenger-Client (mit erweiterter Org-Admin Funktionalität),
- * TI-Messenger Registrierungs-Dienst
- * Auth-Service
- * FHIR-Proxy
- * FHIR-Directory
-|*Vorbedingungen* a|
- * Für die Organisation wurde ein Messenger-Service bereitgestellt und es existiert ein Eintrag der Organisation im FHIR-Directory.
- * Der Administrator der Organisation verfügt über einen TI-Messenger-Client (mit erweiterter Org-Admin Funktionalität).
- * Es existiert eine Vertrauensbeziehung zwischen dem TI-Messenger Registrierungs-Dienst und dem VZD-FHIR-Directory (Übergabe des Zertifikates)
- * Der Administrator der Organisation wurde vom Registrierungs-Dienst authentifiziert.
-|*Eingangsdaten* | Org-Admin-Credentials, zweiter Faktor, FHIR-Organisations-Ressourcen
-|*Ergebnis* | FHIR-Organisations-Ressourcen aktualisiert, Status
-|*Ausgangsdaten* | Aktualisierte VZD-FHIR-Directory-Datensätze
-|===
-====
-
-.Sequenzdiagramm
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
diff --git a/docs/anwendungsfaelle/VZD-suche.adoc b/docs/anwendungsfaelle/VZD-suche.adoc
deleted file mode 100644
index 3422db2c..00000000
--- a/docs/anwendungsfaelle/VZD-suche.adoc
+++ /dev/null
@@ -1,52 +0,0 @@
-ifdef::env-github[]
-:tip-caption: :bulb:
-:note-caption: :information_source:
-:important-caption: :heavy_exclamation_mark:
-:caution-caption: :fire:
-:warning-caption: :warning:
-endif::[]
-
-:imagesdir: ../../images
-
-image:meta/gematik_logo.svg[width=70%]
-
-=== A 8.1 - Einträge im VZD-FHIR-Directory suchen
-Die folgende Sequenz beschreibt, wie ein Akteur im *VZD-FHIR-Directory* nach `HealthcareService`- und `PractitionerRole`-Ressourcen sucht. Dies setzt eine erfolgreiche Anmeldung des Akteurs an einem *Messenger-Service* voraus. Der dargestellte Ablauf zeigt alle prinzipiell notwendigen Kommunikationsbeziehungen. Weitergehende Informationen zum Ablauf sind in der *[gemSpec_VZD_FHIR_Directory]* zu finden. Für die Prüfung des `Matrix-OpenID-Tokens` muss der Zugriff auf den Endpunkt `/_matrix/federation/v1/openid/userinfo` ermöglicht werden.
-
-.Anwendungsfallbeschreibung
-[%collapsible%open]
-====
-[caption=]
-Einträge im VZD-FHIR-Directory suchen
-[%header, cols="1,1"]
-|===
-| |Beschreibung
-|*Akteur* |Anwender in der Rolle "User/User-HBA"
-|*Auslöser* |Ein Akteur in der Rolle "User"/"User-HBA" setzt eine Suche ab.
-|*Komponenten* a|
- * TI-Messenger-Client,
- * Messenger-Proxy,
- * Matrix-Homeserver
- * FHIR-Proxy,
- * Auth-Service,
- * VZD-FHIR-Directory,
-|*Vorbedingungen* a|
- * Der Akteuer ist bei seinem Homeserver eingeloggt.
- * Dem Matrix Homeserver wird vom VZD-FHR-Directory vertraut.
- * Der Aktuer darf sich mit seinem Matrix-OpenID-Token authentisieren.
- * Der Messenger-Proxy erlaubt dem VZD-FHIR-Directory Zugriff auf /_matrix/federation/v1/openid/userinfo, um den Token prüfen zu lassen.
-|*Eingangsdaten* |Search, Matrix OpenID Token
-|*Ergebnis* | Die gesuchten FHIR-Resourcen.
-|*Ausgangsdaten* | FHIR Datensätze
-|===
-
-====
-.Sequenzdiagramm
-[%collapsible%open]
-====
-++++
-
-
-
-++++
-====
diff --git a/images/diagrams/System_Overview-Allgemein.png b/images/diagrams/System_Overview-Allgemein.png
deleted file mode 100644
index a161cf0e..00000000
Binary files a/images/diagrams/System_Overview-Allgemein.png and /dev/null differ
diff --git a/images/diagrams/System_Overview-Allgemein.svg b/images/diagrams/System_Overview-Allgemein.svg
deleted file mode 100644
index b0d68411..00000000
--- a/images/diagrams/System_Overview-Allgemein.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Client/System_Overview-Client.png b/images/diagrams/TI-Messenger-Client/System_Overview-Client.png
deleted file mode 100644
index 01fc77d3..00000000
Binary files a/images/diagrams/TI-Messenger-Client/System_Overview-Client.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Client/System_Overview-Client.svg b/images/diagrams/TI-Messenger-Client/System_Overview-Client.svg
deleted file mode 100644
index 13cce1a9..00000000
--- a/images/diagrams/TI-Messenger-Client/System_Overview-Client.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.png
deleted file mode 100644
index 4cc0a8d5..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.svg
deleted file mode 100644
index 0fbcc879..00000000
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.png
deleted file mode 100644
index 99afdfa2..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.svg
deleted file mode 100644
index 8a3bc1a0..00000000
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.png
deleted file mode 100644
index e54b9a4e..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.svg
deleted file mode 100644
index dac15baf..00000000
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.png
deleted file mode 100644
index b721bc26..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.svg
deleted file mode 100644
index 82d838ab..00000000
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.png
deleted file mode 100644
index 09a89ece..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.svg
deleted file mode 100644
index d9571ee4..00000000
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.png
deleted file mode 100644
index 94d95b8c..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10103_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10103_Seq.png
deleted file mode 100644
index 19632e5b..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10103_Seq.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10103_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10103_Seq.svg
deleted file mode 100644
index c847b51b..00000000
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10103_Seq.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.png
deleted file mode 100644
index 4335cf1d..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.svg
deleted file mode 100644
index b7ac0137..00000000
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.png
deleted file mode 100644
index 186c4f22..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.svg
deleted file mode 100644
index 4bc5ce10..00000000
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.png
deleted file mode 100644
index 197f030a..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.svg
deleted file mode 100644
index 8cdc5c32..00000000
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.png
deleted file mode 100644
index 333f1acb..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.png
deleted file mode 100644
index 713f794d..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.svg
deleted file mode 100644
index cc176b14..00000000
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_org_admin.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.png b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.png
deleted file mode 100644
index 42da8c81..00000000
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.svg b/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.svg
deleted file mode 100644
index 1b243987..00000000
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.png b/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.png
deleted file mode 100644
index decb92f8..00000000
Binary files a/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.svg b/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.svg
deleted file mode 100644
index b925f168..00000000
--- a/images/diagrams/TI-Messenger-Fachdienst/API-Messenger-Service-API-Messenger-Service.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.png b/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.png
deleted file mode 100644
index 6b1fc55f..00000000
Binary files a/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.svg b/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.svg
deleted file mode 100644
index 4e2544c6..00000000
--- a/images/diagrams/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst-Registrierungs-Dienst.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.png b/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.png
deleted file mode 100644
index cd1f7283..00000000
Binary files a/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.svg b/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.svg
deleted file mode 100644
index b5911841..00000000
--- a/images/diagrams/TI-Messenger-Fachdienst/System_Overview-Fachdienst.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.png b/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.png
deleted file mode 100644
index cd31de6d..00000000
Binary files a/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.png and /dev/null differ
diff --git a/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.svg b/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.svg
deleted file mode 100644
index 1c603348..00000000
--- a/images/diagrams/TI-Messenger-Fachdienst/funktionalitaet_proxy-Proxy.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/images/generated/Other/Test/Anschaltung der Testtreiber Clients.png b/images/generated/Other/Test/Anschaltung der Testtreiber Clients.png
new file mode 100644
index 00000000..2a5c7125
Binary files /dev/null and b/images/generated/Other/Test/Anschaltung der Testtreiber Clients.png differ
diff --git a/images/generated/Other/Test/Anschaltung der Testtreiber Clients.svg b/images/generated/Other/Test/Anschaltung der Testtreiber Clients.svg
new file mode 100644
index 00000000..a2d4897f
--- /dev/null
+++ b/images/generated/Other/Test/Anschaltung der Testtreiber Clients.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/Test/HerstellerInstanz.png b/images/generated/Other/Test/HerstellerInstanz.png
new file mode 100644
index 00000000..10b93efd
Binary files /dev/null and b/images/generated/Other/Test/HerstellerInstanz.png differ
diff --git a/images/generated/Other/Test/HerstellerInstanz.svg b/images/generated/Other/Test/HerstellerInstanz.svg
new file mode 100644
index 00000000..c6beec7a
--- /dev/null
+++ b/images/generated/Other/Test/HerstellerInstanz.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/Test/IOP Pools.png b/images/generated/Other/Test/IOP Pools.png
new file mode 100644
index 00000000..9a7e9751
Binary files /dev/null and b/images/generated/Other/Test/IOP Pools.png differ
diff --git a/images/generated/Other/Test/IOP Pools.svg b/images/generated/Other/Test/IOP Pools.svg
new file mode 100644
index 00000000..ab356bc9
--- /dev/null
+++ b/images/generated/Other/Test/IOP Pools.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/Test/Testumgebung Basis.png b/images/generated/Other/Test/Testumgebung Basis.png
new file mode 100644
index 00000000..10e9e229
Binary files /dev/null and b/images/generated/Other/Test/Testumgebung Basis.png differ
diff --git a/images/generated/Other/Test/Testumgebung Basis.svg b/images/generated/Other/Test/Testumgebung Basis.svg
new file mode 100644
index 00000000..d9510a08
--- /dev/null
+++ b/images/generated/Other/Test/Testumgebung Basis.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/Test/Testumgebung ePA.png b/images/generated/Other/Test/Testumgebung ePA.png
new file mode 100644
index 00000000..7ae4b25d
Binary files /dev/null and b/images/generated/Other/Test/Testumgebung ePA.png differ
diff --git a/images/generated/Other/Test/Testumgebung ePA.svg b/images/generated/Other/Test/Testumgebung ePA.svg
new file mode 100644
index 00000000..4fbef307
--- /dev/null
+++ b/images/generated/Other/Test/Testumgebung ePA.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/Test/Zulassung TIM-Basis.png b/images/generated/Other/Test/Zulassung TIM-Basis.png
new file mode 100644
index 00000000..a2926c4a
Binary files /dev/null and b/images/generated/Other/Test/Zulassung TIM-Basis.png differ
diff --git a/images/generated/Other/Test/Zulassung TIM-Basis.svg b/images/generated/Other/Test/Zulassung TIM-Basis.svg
new file mode 100644
index 00000000..a7066303
--- /dev/null
+++ b/images/generated/Other/Test/Zulassung TIM-Basis.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/Test/Zulassung TIM-ePA.png b/images/generated/Other/Test/Zulassung TIM-ePA.png
new file mode 100644
index 00000000..f8a96abc
Binary files /dev/null and b/images/generated/Other/Test/Zulassung TIM-ePA.png differ
diff --git a/images/generated/Other/Test/Zulassung TIM-ePA.svg b/images/generated/Other/Test/Zulassung TIM-ePA.svg
new file mode 100644
index 00000000..40ed7ae0
--- /dev/null
+++ b/images/generated/Other/Test/Zulassung TIM-ePA.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/Test/nach_der_Zulassung.png b/images/generated/Other/Test/nach_der_Zulassung.png
new file mode 100644
index 00000000..599d9637
Binary files /dev/null and b/images/generated/Other/Test/nach_der_Zulassung.png differ
diff --git a/images/generated/Other/Test/nach_der_Zulassung.svg b/images/generated/Other/Test/nach_der_Zulassung.svg
new file mode 100644
index 00000000..75edda79
--- /dev/null
+++ b/images/generated/Other/Test/nach_der_Zulassung.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/Test/testtreiber-externes-Modul.png b/images/generated/Other/Test/testtreiber-externes-Modul.png
new file mode 100644
index 00000000..efde165e
Binary files /dev/null and b/images/generated/Other/Test/testtreiber-externes-Modul.png differ
diff --git a/images/generated/Other/Test/testtreiber-externes-Modul.svg b/images/generated/Other/Test/testtreiber-externes-Modul.svg
new file mode 100644
index 00000000..438a3e40
--- /dev/null
+++ b/images/generated/Other/Test/testtreiber-externes-Modul.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/Test/testtreiber-internes-Modul.png b/images/generated/Other/Test/testtreiber-internes-Modul.png
new file mode 100644
index 00000000..4f2aba04
Binary files /dev/null and b/images/generated/Other/Test/testtreiber-internes-Modul.png differ
diff --git a/images/generated/Other/Test/testtreiber-internes-Modul.svg b/images/generated/Other/Test/testtreiber-internes-Modul.svg
new file mode 100644
index 00000000..f6d28656
--- /dev/null
+++ b/images/generated/Other/Test/testtreiber-internes-Modul.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/Test/testumgebung-Gematik.png b/images/generated/Other/Test/testumgebung-Gematik.png
new file mode 100644
index 00000000..6e4e525f
Binary files /dev/null and b/images/generated/Other/Test/testumgebung-Gematik.png differ
diff --git a/images/generated/Other/Test/testumgebung-Gematik.svg b/images/generated/Other/Test/testumgebung-Gematik.svg
new file mode 100644
index 00000000..439a7f20
--- /dev/null
+++ b/images/generated/Other/Test/testumgebung-Gematik.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/Test/testumgebung-Hersteller.png b/images/generated/Other/Test/testumgebung-Hersteller.png
new file mode 100644
index 00000000..01725dff
Binary files /dev/null and b/images/generated/Other/Test/testumgebung-Hersteller.png differ
diff --git a/images/generated/Other/Test/testumgebung-Hersteller.svg b/images/generated/Other/Test/testumgebung-Hersteller.svg
new file mode 100644
index 00000000..0be69f60
--- /dev/null
+++ b/images/generated/Other/Test/testumgebung-Hersteller.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/UC_Directory_search_Seq.png b/images/generated/Other/UC_Directory_search_Seq.png
new file mode 100644
index 00000000..ce6a85e7
Binary files /dev/null and b/images/generated/Other/UC_Directory_search_Seq.png differ
diff --git a/images/generated/Other/UC_Directory_search_Seq.svg b/images/generated/Other/UC_Directory_search_Seq.svg
new file mode 100644
index 00000000..483e6fb8
--- /dev/null
+++ b/images/generated/Other/UC_Directory_search_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/Other/chatbot.png b/images/generated/Other/chatbot.png
new file mode 100644
index 00000000..df4692da
Binary files /dev/null and b/images/generated/Other/chatbot.png differ
diff --git a/images/generated/Other/chatbot.svg b/images/generated/Other/chatbot.svg
new file mode 100644
index 00000000..f7f76e51
--- /dev/null
+++ b/images/generated/Other/chatbot.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/Other/funktionalitaet_proxy.png b/images/generated/Other/funktionalitaet_proxy.png
new file mode 100644
index 00000000..06e8bc13
Binary files /dev/null and b/images/generated/Other/funktionalitaet_proxy.png differ
diff --git a/images/generated/Other/funktionalitaet_proxy.svg b/images/generated/Other/funktionalitaet_proxy.svg
new file mode 100644
index 00000000..541a5cd6
--- /dev/null
+++ b/images/generated/Other/funktionalitaet_proxy.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/idp.png b/images/generated/Other/idp.png
similarity index 99%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/idp.png
rename to images/generated/Other/idp.png
index cc218c1b..6f763b0c 100644
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/idp.png and b/images/generated/Other/idp.png differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/idp.svg b/images/generated/Other/idp.svg
similarity index 96%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/idp.svg
rename to images/generated/Other/idp.svg
index 01b15f6d..23f6a8c1 100644
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/idp.svg
+++ b/images/generated/Other/idp.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/API-Messenger-Service.png b/images/generated/TI-M_Basis/API-Messenger-Service.png
new file mode 100644
index 00000000..378a03e6
Binary files /dev/null and b/images/generated/TI-M_Basis/API-Messenger-Service.png differ
diff --git a/images/generated/TI-M_Basis/API-Messenger-Service.svg b/images/generated/TI-M_Basis/API-Messenger-Service.svg
new file mode 100644
index 00000000..3b90a47e
--- /dev/null
+++ b/images/generated/TI-M_Basis/API-Messenger-Service.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/Berechtigung_UI.png b/images/generated/TI-M_Basis/Berechtigung_UI.png
new file mode 100644
index 00000000..a739554b
Binary files /dev/null and b/images/generated/TI-M_Basis/Berechtigung_UI.png differ
diff --git a/images/generated/TI-M_Basis/Berechtigung_UI.svg b/images/generated/TI-M_Basis/Berechtigung_UI.svg
new file mode 100644
index 00000000..0ed57322
--- /dev/null
+++ b/images/generated/TI-M_Basis/Berechtigung_UI.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/Berechtigungen_setzen.png b/images/generated/TI-M_Basis/Berechtigungen_setzen.png
new file mode 100644
index 00000000..37c7211f
Binary files /dev/null and b/images/generated/TI-M_Basis/Berechtigungen_setzen.png differ
diff --git a/images/generated/TI-M_Basis/Berechtigungen_setzen.svg b/images/generated/TI-M_Basis/Berechtigungen_setzen.svg
new file mode 100644
index 00000000..175f54f8
--- /dev/null
+++ b/images/generated/TI-M_Basis/Berechtigungen_setzen.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/Pruefungen_Messenger_Proxy.png b/images/generated/TI-M_Basis/Pruefungen_Messenger_Proxy.png
new file mode 100644
index 00000000..bf335544
Binary files /dev/null and b/images/generated/TI-M_Basis/Pruefungen_Messenger_Proxy.png differ
diff --git a/images/generated/TI-M_Basis/Pruefungen_Messenger_Proxy.svg b/images/generated/TI-M_Basis/Pruefungen_Messenger_Proxy.svg
new file mode 100644
index 00000000..c0f1db51
--- /dev/null
+++ b/images/generated/TI-M_Basis/Pruefungen_Messenger_Proxy.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/Schnittstellen_am_Registrierungs-Dienst.png b/images/generated/TI-M_Basis/Schnittstellen_am_Registrierungs-Dienst.png
new file mode 100644
index 00000000..63eb1905
Binary files /dev/null and b/images/generated/TI-M_Basis/Schnittstellen_am_Registrierungs-Dienst.png differ
diff --git a/images/generated/TI-M_Basis/Schnittstellen_am_Registrierungs-Dienst.svg b/images/generated/TI-M_Basis/Schnittstellen_am_Registrierungs-Dienst.svg
new file mode 100644
index 00000000..73bc5262
--- /dev/null
+++ b/images/generated/TI-M_Basis/Schnittstellen_am_Registrierungs-Dienst.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/System_Overview.png b/images/generated/TI-M_Basis/System_Overview.png
new file mode 100644
index 00000000..995a99ad
Binary files /dev/null and b/images/generated/TI-M_Basis/System_Overview.png differ
diff --git a/images/generated/TI-M_Basis/System_Overview.svg b/images/generated/TI-M_Basis/System_Overview.svg
new file mode 100644
index 00000000..5c6cd8c5
--- /dev/null
+++ b/images/generated/TI-M_Basis/System_Overview.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/System_Overview_Client.png b/images/generated/TI-M_Basis/System_Overview_Client.png
new file mode 100644
index 00000000..4f5c91e2
Binary files /dev/null and b/images/generated/TI-M_Basis/System_Overview_Client.png differ
diff --git a/images/generated/TI-M_Basis/System_Overview_Client.svg b/images/generated/TI-M_Basis/System_Overview_Client.svg
new file mode 100644
index 00000000..9f2a2c14
--- /dev/null
+++ b/images/generated/TI-M_Basis/System_Overview_Client.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/System_Overview_Fachdienst.png b/images/generated/TI-M_Basis/System_Overview_Fachdienst.png
new file mode 100644
index 00000000..302e475f
Binary files /dev/null and b/images/generated/TI-M_Basis/System_Overview_Fachdienst.png differ
diff --git a/images/generated/TI-M_Basis/System_Overview_Fachdienst.svg b/images/generated/TI-M_Basis/System_Overview_Fachdienst.svg
new file mode 100644
index 00000000..6068face
--- /dev/null
+++ b/images/generated/TI-M_Basis/System_Overview_Fachdienst.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/UC_10057_Seq.png b/images/generated/TI-M_Basis/UC_10057_Seq.png
new file mode 100644
index 00000000..edacfcd2
Binary files /dev/null and b/images/generated/TI-M_Basis/UC_10057_Seq.png differ
diff --git a/images/generated/TI-M_Basis/UC_10057_Seq.svg b/images/generated/TI-M_Basis/UC_10057_Seq.svg
new file mode 100644
index 00000000..01e6c3a5
--- /dev/null
+++ b/images/generated/TI-M_Basis/UC_10057_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10060_Seq.png b/images/generated/TI-M_Basis/UC_10060_Seq.png
similarity index 99%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10060_Seq.png
rename to images/generated/TI-M_Basis/UC_10060_Seq.png
index a7346647..4df296cb 100644
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10060_Seq.png and b/images/generated/TI-M_Basis/UC_10060_Seq.png differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10060_Seq.svg b/images/generated/TI-M_Basis/UC_10060_Seq.svg
similarity index 95%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10060_Seq.svg
rename to images/generated/TI-M_Basis/UC_10060_Seq.svg
index 612b78a7..d9132551 100644
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10060_Seq.svg
+++ b/images/generated/TI-M_Basis/UC_10060_Seq.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/UC_10061_Seq.png b/images/generated/TI-M_Basis/UC_10061_Seq.png
new file mode 100644
index 00000000..0599d6f8
Binary files /dev/null and b/images/generated/TI-M_Basis/UC_10061_Seq.png differ
diff --git a/images/generated/TI-M_Basis/UC_10061_Seq.svg b/images/generated/TI-M_Basis/UC_10061_Seq.svg
new file mode 100644
index 00000000..991cfda2
--- /dev/null
+++ b/images/generated/TI-M_Basis/UC_10061_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/UC_10062_Seq.png b/images/generated/TI-M_Basis/UC_10062_Seq.png
new file mode 100644
index 00000000..04a849d6
Binary files /dev/null and b/images/generated/TI-M_Basis/UC_10062_Seq.png differ
diff --git a/images/generated/TI-M_Basis/UC_10062_Seq.svg b/images/generated/TI-M_Basis/UC_10062_Seq.svg
new file mode 100644
index 00000000..ca0789b3
--- /dev/null
+++ b/images/generated/TI-M_Basis/UC_10062_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/UC_10063_Seq.png b/images/generated/TI-M_Basis/UC_10063_Seq.png
new file mode 100644
index 00000000..1d94a35c
Binary files /dev/null and b/images/generated/TI-M_Basis/UC_10063_Seq.png differ
diff --git a/images/generated/TI-M_Basis/UC_10063_Seq.svg b/images/generated/TI-M_Basis/UC_10063_Seq.svg
new file mode 100644
index 00000000..9fd68812
--- /dev/null
+++ b/images/generated/TI-M_Basis/UC_10063_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/UC_10064_Seq.png b/images/generated/TI-M_Basis/UC_10064_Seq.png
new file mode 100644
index 00000000..8ea6f69a
Binary files /dev/null and b/images/generated/TI-M_Basis/UC_10064_Seq.png differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.svg b/images/generated/TI-M_Basis/UC_10064_Seq.svg
similarity index 60%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.svg
rename to images/generated/TI-M_Basis/UC_10064_Seq.svg
index 83606dfb..c567df15 100644
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.svg
+++ b/images/generated/TI-M_Basis/UC_10064_Seq.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/UC_10103_Seq.png b/images/generated/TI-M_Basis/UC_10103_Seq.png
new file mode 100644
index 00000000..b7ae8e09
Binary files /dev/null and b/images/generated/TI-M_Basis/UC_10103_Seq.png differ
diff --git a/images/generated/TI-M_Basis/UC_10103_Seq.svg b/images/generated/TI-M_Basis/UC_10103_Seq.svg
new file mode 100644
index 00000000..ef59c643
--- /dev/null
+++ b/images/generated/TI-M_Basis/UC_10103_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/UC_10235_Seq.png b/images/generated/TI-M_Basis/UC_10235_Seq.png
new file mode 100644
index 00000000..f02506e2
Binary files /dev/null and b/images/generated/TI-M_Basis/UC_10235_Seq.png differ
diff --git a/images/generated/TI-M_Basis/UC_10235_Seq.svg b/images/generated/TI-M_Basis/UC_10235_Seq.svg
new file mode 100644
index 00000000..a4b1f190
--- /dev/null
+++ b/images/generated/TI-M_Basis/UC_10235_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/UC_Approvel_List_Seq.png b/images/generated/TI-M_Basis/UC_Approvel_List_Seq.png
new file mode 100644
index 00000000..6c8a4923
Binary files /dev/null and b/images/generated/TI-M_Basis/UC_Approvel_List_Seq.png differ
diff --git a/images/generated/TI-M_Basis/UC_Approvel_List_Seq.svg b/images/generated/TI-M_Basis/UC_Approvel_List_Seq.svg
new file mode 100644
index 00000000..02bb4b21
--- /dev/null
+++ b/images/generated/TI-M_Basis/UC_Approvel_List_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.png b/images/generated/TI-M_Basis/UC_Update_Federationlist_Seq.png
similarity index 98%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.png
rename to images/generated/TI-M_Basis/UC_Update_Federationlist_Seq.png
index 14a213e9..8ebcfa7a 100644
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.png and b/images/generated/TI-M_Basis/UC_Update_Federationlist_Seq.png differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.svg b/images/generated/TI-M_Basis/UC_Update_Federationlist_Seq.svg
similarity index 95%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.svg
rename to images/generated/TI-M_Basis/UC_Update_Federationlist_Seq.svg
index 7576d558..94d2dc72 100644
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.svg
+++ b/images/generated/TI-M_Basis/UC_Update_Federationlist_Seq.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/UC_Update_Federationlist_SignCheck.png b/images/generated/TI-M_Basis/UC_Update_Federationlist_SignCheck.png
new file mode 100644
index 00000000..9aff52ba
Binary files /dev/null and b/images/generated/TI-M_Basis/UC_Update_Federationlist_SignCheck.png differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.svg b/images/generated/TI-M_Basis/UC_Update_Federationlist_SignCheck.svg
similarity index 64%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.svg
rename to images/generated/TI-M_Basis/UC_Update_Federationlist_SignCheck.svg
index 4273425f..4407a8d5 100644
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.svg
+++ b/images/generated/TI-M_Basis/UC_Update_Federationlist_SignCheck.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.png b/images/generated/TI-M_Basis/UC_Update_Federationlist_auth_retrieve.png
similarity index 99%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.png
rename to images/generated/TI-M_Basis/UC_Update_Federationlist_auth_retrieve.png
index a1f3a907..1761ac9e 100644
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.png and b/images/generated/TI-M_Basis/UC_Update_Federationlist_auth_retrieve.png differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.svg b/images/generated/TI-M_Basis/UC_Update_Federationlist_auth_retrieve.svg
similarity index 94%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.svg
rename to images/generated/TI-M_Basis/UC_Update_Federationlist_auth_retrieve.svg
index 038e8454..d6d78d6b 100644
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.svg
+++ b/images/generated/TI-M_Basis/UC_Update_Federationlist_auth_retrieve.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/UC_tim_specific_comm.png b/images/generated/TI-M_Basis/UC_tim_specific_comm.png
new file mode 100644
index 00000000..2a035d10
Binary files /dev/null and b/images/generated/TI-M_Basis/UC_tim_specific_comm.png differ
diff --git a/images/generated/TI-M_Basis/UC_tim_specific_comm.svg b/images/generated/TI-M_Basis/UC_tim_specific_comm.svg
new file mode 100644
index 00000000..7dada879
--- /dev/null
+++ b/images/generated/TI-M_Basis/UC_tim_specific_comm.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/push_notifications_delivery.png b/images/generated/TI-M_Basis/push_notifications_delivery.png
new file mode 100644
index 00000000..c1180f40
Binary files /dev/null and b/images/generated/TI-M_Basis/push_notifications_delivery.png differ
diff --git a/images/generated/TI-M_Basis/push_notifications_delivery.svg b/images/generated/TI-M_Basis/push_notifications_delivery.svg
new file mode 100644
index 00000000..bbe64e2b
--- /dev/null
+++ b/images/generated/TI-M_Basis/push_notifications_delivery.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Basis/push_notifications_registration.png b/images/generated/TI-M_Basis/push_notifications_registration.png
new file mode 100644
index 00000000..3fda6e05
Binary files /dev/null and b/images/generated/TI-M_Basis/push_notifications_registration.png differ
diff --git a/images/generated/TI-M_Basis/push_notifications_registration.svg b/images/generated/TI-M_Basis/push_notifications_registration.svg
new file mode 100644
index 00000000..0d3bc288
--- /dev/null
+++ b/images/generated/TI-M_Basis/push_notifications_registration.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Pro/API-Messenger-Service.png b/images/generated/TI-M_Pro/API-Messenger-Service.png
new file mode 100644
index 00000000..1e583443
Binary files /dev/null and b/images/generated/TI-M_Pro/API-Messenger-Service.png differ
diff --git a/images/generated/TI-M_Pro/API-Messenger-Service.svg b/images/generated/TI-M_Pro/API-Messenger-Service.svg
new file mode 100644
index 00000000..112a082a
--- /dev/null
+++ b/images/generated/TI-M_Pro/API-Messenger-Service.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Pro/Berechtigung_UI.png b/images/generated/TI-M_Pro/Berechtigung_UI.png
new file mode 100644
index 00000000..5cf35435
Binary files /dev/null and b/images/generated/TI-M_Pro/Berechtigung_UI.png differ
diff --git a/images/generated/TI-M_Pro/Berechtigung_UI.svg b/images/generated/TI-M_Pro/Berechtigung_UI.svg
new file mode 100644
index 00000000..37336333
--- /dev/null
+++ b/images/generated/TI-M_Pro/Berechtigung_UI.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10058_Seq.png b/images/generated/TI-M_Pro/UC_10058_Seq.png
similarity index 99%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10058_Seq.png
rename to images/generated/TI-M_Pro/UC_10058_Seq.png
index 3a7885f7..9b7dbc3c 100644
Binary files a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10058_Seq.png and b/images/generated/TI-M_Pro/UC_10058_Seq.png differ
diff --git a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10058_Seq.svg b/images/generated/TI-M_Pro/UC_10058_Seq.svg
similarity index 95%
rename from images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10058_Seq.svg
rename to images/generated/TI-M_Pro/UC_10058_Seq.svg
index b0ac397f..0d858ff0 100644
--- a/images/diagrams/TI-Messenger-Dienst/Ressourcen/UC_10058_Seq.svg
+++ b/images/generated/TI-M_Pro/UC_10058_Seq.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Pro/UC_10059_Seq.png b/images/generated/TI-M_Pro/UC_10059_Seq.png
new file mode 100644
index 00000000..cb4e9812
Binary files /dev/null and b/images/generated/TI-M_Pro/UC_10059_Seq.png differ
diff --git a/images/generated/TI-M_Pro/UC_10059_Seq.svg b/images/generated/TI-M_Pro/UC_10059_Seq.svg
new file mode 100644
index 00000000..808bf980
--- /dev/null
+++ b/images/generated/TI-M_Pro/UC_10059_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Pro/UC_10104_Seq.png b/images/generated/TI-M_Pro/UC_10104_Seq.png
new file mode 100644
index 00000000..66dcb8f0
Binary files /dev/null and b/images/generated/TI-M_Pro/UC_10104_Seq.png differ
diff --git a/images/generated/TI-M_Pro/UC_10104_Seq.svg b/images/generated/TI-M_Pro/UC_10104_Seq.svg
new file mode 100644
index 00000000..fa67d45d
--- /dev/null
+++ b/images/generated/TI-M_Pro/UC_10104_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Pro/UC_10376_Seq.png b/images/generated/TI-M_Pro/UC_10376_Seq.png
new file mode 100644
index 00000000..86f1a181
Binary files /dev/null and b/images/generated/TI-M_Pro/UC_10376_Seq.png differ
diff --git a/images/generated/TI-M_Pro/UC_10376_Seq.svg b/images/generated/TI-M_Pro/UC_10376_Seq.svg
new file mode 100644
index 00000000..bf7297ec
--- /dev/null
+++ b/images/generated/TI-M_Pro/UC_10376_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Pro/UC_10377_Seq.png b/images/generated/TI-M_Pro/UC_10377_Seq.png
new file mode 100644
index 00000000..f49ef527
Binary files /dev/null and b/images/generated/TI-M_Pro/UC_10377_Seq.png differ
diff --git a/images/generated/TI-M_Pro/UC_10377_Seq.svg b/images/generated/TI-M_Pro/UC_10377_Seq.svg
new file mode 100644
index 00000000..e2fc44a0
--- /dev/null
+++ b/images/generated/TI-M_Pro/UC_10377_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Pro/UC_org_admin.png b/images/generated/TI-M_Pro/UC_org_admin.png
new file mode 100644
index 00000000..cc6fc884
Binary files /dev/null and b/images/generated/TI-M_Pro/UC_org_admin.png differ
diff --git a/images/generated/TI-M_Pro/UC_org_admin.svg b/images/generated/TI-M_Pro/UC_org_admin.svg
new file mode 100644
index 00000000..86698134
--- /dev/null
+++ b/images/generated/TI-M_Pro/UC_org_admin.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_Pro/UC_user_HBA.png b/images/generated/TI-M_Pro/UC_user_HBA.png
new file mode 100644
index 00000000..0165e76f
Binary files /dev/null and b/images/generated/TI-M_Pro/UC_user_HBA.png differ
diff --git a/images/generated/TI-M_Pro/UC_user_HBA.svg b/images/generated/TI-M_Pro/UC_user_HBA.svg
new file mode 100644
index 00000000..12a6efc9
--- /dev/null
+++ b/images/generated/TI-M_Pro/UC_user_HBA.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_ePA/Komponentendiagramm_Client_fdv.png b/images/generated/TI-M_ePA/Komponentendiagramm_Client_fdv.png
new file mode 100644
index 00000000..8528c350
Binary files /dev/null and b/images/generated/TI-M_ePA/Komponentendiagramm_Client_fdv.png differ
diff --git a/images/generated/TI-M_ePA/Komponentendiagramm_Client_fdv.svg b/images/generated/TI-M_ePA/Komponentendiagramm_Client_fdv.svg
new file mode 100644
index 00000000..063bf686
--- /dev/null
+++ b/images/generated/TI-M_ePA/Komponentendiagramm_Client_fdv.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_ePA/Komponentendiagramm_fdv.png b/images/generated/TI-M_ePA/Komponentendiagramm_fdv.png
new file mode 100644
index 00000000..f7c7208e
Binary files /dev/null and b/images/generated/TI-M_ePA/Komponentendiagramm_fdv.png differ
diff --git a/images/generated/TI-M_ePA/Komponentendiagramm_fdv.svg b/images/generated/TI-M_ePA/Komponentendiagramm_fdv.svg
new file mode 100644
index 00000000..c15b71fe
--- /dev/null
+++ b/images/generated/TI-M_ePA/Komponentendiagramm_fdv.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.png b/images/generated/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.png
new file mode 100644
index 00000000..3d7006a9
Binary files /dev/null and b/images/generated/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.png differ
diff --git a/images/generated/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.svg b/images/generated/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.svg
new file mode 100644
index 00000000..de09c5ed
--- /dev/null
+++ b/images/generated/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_ePA/Push_Komponeten_fdv.png b/images/generated/TI-M_ePA/Push_Komponeten_fdv.png
new file mode 100644
index 00000000..0e36cbcf
Binary files /dev/null and b/images/generated/TI-M_ePA/Push_Komponeten_fdv.png differ
diff --git a/images/generated/TI-M_ePA/Push_Komponeten_fdv.svg b/images/generated/TI-M_ePA/Push_Komponeten_fdv.svg
new file mode 100644
index 00000000..98ed0a52
--- /dev/null
+++ b/images/generated/TI-M_ePA/Push_Komponeten_fdv.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.png b/images/generated/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.png
new file mode 100644
index 00000000..2e9a1c52
Binary files /dev/null and b/images/generated/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.png differ
diff --git a/images/generated/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.svg b/images/generated/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.svg
new file mode 100644
index 00000000..5233a4bd
--- /dev/null
+++ b/images/generated/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/images/generated/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.png b/images/generated/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.png
new file mode 100644
index 00000000..29c9b84a
Binary files /dev/null and b/images/generated/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.png differ
diff --git a/images/generated/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.svg b/images/generated/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.svg
new file mode 100644
index 00000000..b90675cc
--- /dev/null
+++ b/images/generated/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_ePA/UC_10233_Seq.png b/images/generated/TI-M_ePA/UC_10233_Seq.png
new file mode 100644
index 00000000..c453784b
Binary files /dev/null and b/images/generated/TI-M_ePA/UC_10233_Seq.png differ
diff --git a/images/generated/TI-M_ePA/UC_10233_Seq.svg b/images/generated/TI-M_ePA/UC_10233_Seq.svg
new file mode 100644
index 00000000..55eb3c47
--- /dev/null
+++ b/images/generated/TI-M_ePA/UC_10233_Seq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/generated/TI-M_ePA/UC_Approvel_List_Seq_fdv.png b/images/generated/TI-M_ePA/UC_Approvel_List_Seq_fdv.png
new file mode 100644
index 00000000..56bc9c19
Binary files /dev/null and b/images/generated/TI-M_ePA/UC_Approvel_List_Seq_fdv.png differ
diff --git a/images/generated/TI-M_ePA/UC_Approvel_List_Seq_fdv.svg b/images/generated/TI-M_ePA/UC_Approvel_List_Seq_fdv.svg
new file mode 100644
index 00000000..e0204a4e
--- /dev/null
+++ b/images/generated/TI-M_ePA/UC_Approvel_List_Seq_fdv.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/drawio/System_Overview.drawio b/src/drawio/System_Overview.drawio
deleted file mode 100644
index d281f39a..00000000
--- a/src/drawio/System_Overview.drawio
+++ /dev/null
@@ -1,257 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/drawio/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst.drawio b/src/drawio/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst.drawio
deleted file mode 100644
index 7b2c5875..00000000
--- a/src/drawio/TI-Messenger-Fachdienst/Schnittstellen_am_Registrierungs-Dienst.drawio
+++ /dev/null
@@ -1,317 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/drawio/TI-Messenger-Fachdienst/System_Overview.drawio b/src/drawio/TI-Messenger-Fachdienst/System_Overview.drawio
deleted file mode 100644
index 85ccdc7c..00000000
--- a/src/drawio/TI-Messenger-Fachdienst/System_Overview.drawio
+++ /dev/null
@@ -1,257 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/images/Other/Test/Anschaltung der Testtreiber Clients.drawio b/src/images/Other/Test/Anschaltung der Testtreiber Clients.drawio
new file mode 100644
index 00000000..e403f965
--- /dev/null
+++ b/src/images/Other/Test/Anschaltung der Testtreiber Clients.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/images/Other/Test/HerstellerInstanz.drawio b/src/images/Other/Test/HerstellerInstanz.drawio
new file mode 100644
index 00000000..c28cdb94
--- /dev/null
+++ b/src/images/Other/Test/HerstellerInstanz.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/images/Other/Test/IOP Pools.drawio b/src/images/Other/Test/IOP Pools.drawio
new file mode 100644
index 00000000..b43ea1de
--- /dev/null
+++ b/src/images/Other/Test/IOP Pools.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/images/Other/Test/Testumgebung Basis.drawio b/src/images/Other/Test/Testumgebung Basis.drawio
new file mode 100644
index 00000000..5601e13c
--- /dev/null
+++ b/src/images/Other/Test/Testumgebung Basis.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/images/Other/Test/Testumgebung ePA.drawio b/src/images/Other/Test/Testumgebung ePA.drawio
new file mode 100644
index 00000000..fe7e6130
--- /dev/null
+++ b/src/images/Other/Test/Testumgebung ePA.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/images/Other/Test/Zulassung TIM-Basis.drawio b/src/images/Other/Test/Zulassung TIM-Basis.drawio
new file mode 100644
index 00000000..d3baa294
--- /dev/null
+++ b/src/images/Other/Test/Zulassung TIM-Basis.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/images/Other/Test/Zulassung TIM-ePA.drawio b/src/images/Other/Test/Zulassung TIM-ePA.drawio
new file mode 100644
index 00000000..02d6a602
--- /dev/null
+++ b/src/images/Other/Test/Zulassung TIM-ePA.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/images/Other/Test/nach_der_Zulassung.drawio b/src/images/Other/Test/nach_der_Zulassung.drawio
new file mode 100644
index 00000000..ca191b62
--- /dev/null
+++ b/src/images/Other/Test/nach_der_Zulassung.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/images/Other/Test/testtreiber-externes-Modul.drawio b/src/images/Other/Test/testtreiber-externes-Modul.drawio
new file mode 100644
index 00000000..9028c435
--- /dev/null
+++ b/src/images/Other/Test/testtreiber-externes-Modul.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/images/Other/Test/testtreiber-internes-Modul.drawio b/src/images/Other/Test/testtreiber-internes-Modul.drawio
new file mode 100644
index 00000000..ba084033
--- /dev/null
+++ b/src/images/Other/Test/testtreiber-internes-Modul.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/images/Other/Test/testumgebung-Gematik.drawio b/src/images/Other/Test/testumgebung-Gematik.drawio
new file mode 100644
index 00000000..bf1a70ac
--- /dev/null
+++ b/src/images/Other/Test/testumgebung-Gematik.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/images/Other/Test/testumgebung-Hersteller.drawio b/src/images/Other/Test/testumgebung-Hersteller.drawio
new file mode 100644
index 00000000..c34613e0
--- /dev/null
+++ b/src/images/Other/Test/testumgebung-Hersteller.drawio
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.puml b/src/images/Other/UC_Directory_search_Seq.puml
similarity index 83%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.puml
rename to src/images/Other/UC_Directory_search_Seq.puml
index 029ddd97..a9a7cf2b 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Directory_search_Seq.puml
+++ b/src/images/Other/UC_Directory_search_Seq.puml
@@ -1,10 +1,3 @@
-/'
-# TI-Messenger 1.1
-# TI-Messenger-Dienst
-# Sequence Diagram
-# Name: Einträge im VZD-FHIR-Directory suchen
-'/
-
@startuml
skinparam sequenceMessageAlign direction
skinparam minClassWidth 200
@@ -33,7 +26,7 @@ ActorFontSize 20
}
autonumber
-actor U as "Akteur in der Rolle\nUser / User-HBA"
+actor U as "Akteur in der Rolle\nUser"
participant cl as "TI-Messenger-Client"
participant mp as "Messenger Proxy"
participant hs as "Matrix-Homeserver"
@@ -73,9 +66,9 @@ alt#LightGrey #AliceBlue kein gültiges search-accesstoken vorhandenau: Prüfe ob \nMatrix Server Name in \nder Föderation enthalten ist
|||
-opt#LightGrey #MistyRose Abbruch
+break#LightGrey #MistyRose Matrix Server Name nicht in der Föderation enthalten
|||
- au-->cl: Matrix Server Name nicht in der Föderation enthalten
+ au-->cl: Fehlermeldung
end
|||
@@ -102,16 +95,19 @@ end
activate fp
fp->fp: prüfe search-accesstoken
|||
- opt#LightGrey #MistyRose Abbruch
- fp-->cl: kein gültiges search-accesstoken
+ break#LightGrey #MistyRose kein gültiges search-accesstoken
+ fp-->cl: HTTP 401 Fehlermeldung
|||
end
|||
alt#LightGrey #AliceBlue HealthcareService-Einträge werden gesucht
|||
- fp->fd: POST /search/HealthcareService/? \nFinde Datensatz für TelematikID
+ fp->fd: POST /search/HealthcareService/?
activate fd
+ note left
+ Finde Datensatz für TelematikID
+ end note
fd-->fp: Suchergebnis (FHIR Bundle)
deactivate fd
|||
@@ -120,8 +116,11 @@ end
|||
alt#LightGrey #AliceBlue PractitionerRole-Einträge werden gesucht
|||
- fp->fd: POST /search/PractitionerRole/? \n Finde Datensatz für MXID
+ fp->fd: POST /search/PractitionerRole/?
activate fd
+ note left
+ Finde Datensatz für MXID
+ end note
fd-->fp: Suchergebnis (FHIR Bundle)
deactivate fd
|||
diff --git a/src/images/Other/chatbot.drawio b/src/images/Other/chatbot.drawio
new file mode 100644
index 00000000..4957c9ce
--- /dev/null
+++ b/src/images/Other/chatbot.drawio
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/drawio/TI-Messenger-Fachdienst/funktionalitaet_proxy.drawio b/src/images/Other/funktionalitaet_proxy.drawio
similarity index 100%
rename from src/drawio/TI-Messenger-Fachdienst/funktionalitaet_proxy.drawio
rename to src/images/Other/funktionalitaet_proxy.drawio
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/idp.puml b/src/images/Other/idp.puml
similarity index 100%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/idp.puml
rename to src/images/Other/idp.puml
diff --git a/src/images/TI-M_Basis/API-Messenger-Service.drawio b/src/images/TI-M_Basis/API-Messenger-Service.drawio
new file mode 100644
index 00000000..cf0be6c7
--- /dev/null
+++ b/src/images/TI-M_Basis/API-Messenger-Service.drawio
@@ -0,0 +1,215 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/images/TI-M_Basis/Berechtigung_UI.drawio b/src/images/TI-M_Basis/Berechtigung_UI.drawio
new file mode 100644
index 00000000..4703fbf7
--- /dev/null
+++ b/src/images/TI-M_Basis/Berechtigung_UI.drawio
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/images/TI-M_Basis/Berechtigungen_setzen.puml b/src/images/TI-M_Basis/Berechtigungen_setzen.puml
new file mode 100644
index 00000000..a4467911
--- /dev/null
+++ b/src/images/TI-M_Basis/Berechtigungen_setzen.puml
@@ -0,0 +1,30 @@
+@startuml
+title Setzen von Berechtigungen im Client
+skinparam ConditionEndStyle hline
+start
+:Client starten;
+:Berechtigungen einrichten;
+
+if ("Allow all" or "Block all") then (Allow all)
+ if(Beschränkungen einrichten) then (Ja)
+ if(BlockedUser-Liste bearbeiten) then (Hinzufügen)
+ :User/Server hinzufügen;
+ else (Entfernen)
+ :User/Server entfernen;
+ endif
+ else(Nein)
+ endif
+else (Block all)
+ if(Erlaubnisse einrichten) then (Ja)
+ if(AllowedUser-Liste bearbeiten) then (Hinzufügen)
+ :User/Server hinzufügen;
+ else (Entfernen)
+ :User/Server entfernen;
+ endif
+ else(Nein)
+ endif
+endif
+:Konfiguration auf dem Server sichern;
+stop
+
+@enduml
diff --git a/src/images/TI-M_Basis/Pruefungen_Messenger_Proxy.drawio b/src/images/TI-M_Basis/Pruefungen_Messenger_Proxy.drawio
new file mode 100644
index 00000000..beffb591
--- /dev/null
+++ b/src/images/TI-M_Basis/Pruefungen_Messenger_Proxy.drawio
@@ -0,0 +1,461 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/images/TI-M_Basis/Schnittstellen_am_Registrierungs-Dienst.drawio b/src/images/TI-M_Basis/Schnittstellen_am_Registrierungs-Dienst.drawio
new file mode 100644
index 00000000..034ed362
--- /dev/null
+++ b/src/images/TI-M_Basis/Schnittstellen_am_Registrierungs-Dienst.drawio
@@ -0,0 +1,317 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/images/TI-M_Basis/System_Overview.drawio b/src/images/TI-M_Basis/System_Overview.drawio
new file mode 100644
index 00000000..4a391644
--- /dev/null
+++ b/src/images/TI-M_Basis/System_Overview.drawio
@@ -0,0 +1,980 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/images/TI-M_Basis/System_Overview_Client.drawio b/src/images/TI-M_Basis/System_Overview_Client.drawio
new file mode 100644
index 00000000..3364681e
--- /dev/null
+++ b/src/images/TI-M_Basis/System_Overview_Client.drawio
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/images/TI-M_Basis/System_Overview_Fachdienst.drawio b/src/images/TI-M_Basis/System_Overview_Fachdienst.drawio
new file mode 100644
index 00000000..f4872a2e
--- /dev/null
+++ b/src/images/TI-M_Basis/System_Overview_Fachdienst.drawio
@@ -0,0 +1,341 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.puml b/src/images/TI-M_Basis/UC_10057_Seq.puml
similarity index 52%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.puml
rename to src/images/TI-M_Basis/UC_10057_Seq.puml
index 5182bc5a..06da5d15 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10057_Seq.puml
+++ b/src/images/TI-M_Basis/UC_10057_Seq.puml
@@ -12,6 +12,7 @@ skinparam minClassWidth 200
skinparam BoxPadding 1
skinparam sequenceReferenceHeaderBackgroundColor palegreen
scale max 2048 width
+autonumber
skinparam sequence {
ArrowColor black
@@ -22,47 +23,30 @@ LifeLineBackgroundColor Gainsboro
ParticipantBorderColor Motivation
ParticipantBackgroundColor Motivation
-ParticipantFontName Impact
ParticipantFontSize 20
ParticipantFontColor black
ParticipantBorderColor Black
ParticipantBackgroundColor MOTIVATION
+
+
ActorBackgroundColor Gainsboro
ActorFontColor black
ActorFontSize 20
ActorFontName Aapex
}
- actor U as "Akteur in der Rolle\nUser / User-HBA"
+ actor U as "Akteur in der\nRolle User"
participant C as "TI-Messenger-Client"
box Messenger-Service #WhiteSmoke
participant MP as "Messenger Proxy"
participant MH as "Matrix-Homeserver"
end box
- box VZD-FHIR-Directory #WhiteSmoke
- participant Auth as "Auth-Service"
- end box
|||
U->C: Eingabe Messenger-Service
Activate C
C->MP: GET /_matrix/client/login
- Activate MP
- MP->MP: TLS-Terminierung
- |||
- MP->MP: prüfe client_id
-
-|||
-alt#LightGrey #AliceBlue TI-Messenger Client wird vom Anbieter nicht unterstützt (kein gültiges client_secret)
-|||
-
- MP-->C: HTTP 401 Unauthroized
- C-->U: Anmeldung \nnicht erfolgreich
-
- |||
- else TI-Messenger Client wird vom Anbieter unterstützt (gültiges client_secret)
- |||
-
+ Activate MP
MP->MH: HTTP(S) Forward
Activate MH
@@ -97,50 +81,15 @@ note over U, MH: Die Authentifizierungsverfahren werden für jeden \nDie Überprüfung ist abhängig vom \ngewählten Authentifizierungsverfahren
|||
- MH->MH: erstelle \nMatrix-ACCESS_TOKEN, \ndevice_id, \nMXID
- MH-->MP: Matrix-ACCESS_TOKEN, \ndevice_ID, MXID
- Deactivate MH
- MP-->C: HTTP(S) Forward
- Deactivate MP
- |||
- C->C: Speichere \nMatrix-ACCESS_TOKEN
-
- |||
- C->MP: POST /_matrix/client\n/user/{userId}/\nopenid/request_token
- Activate MP
- MP->MH: HTTP(S) Forward
- Activate MH
- MH->MH: Erstelle \nMatrix-OpenID-Token
- MH-->MP: Matrix-OpenID-Token
+ MH->MH: erstelle \nMatrix-ACCESS_TOKEN, \nMatrix-REFRESH_TOKEN
+ MH-->MP: :Matrix-ACCESS_TOKEN, \n:Matrix-REFRESH_TOKEN
Deactivate MH
MP-->C: HTTP(S) Forward
Deactivate MP
-
|||
- C->Auth: GET /tim-authenticate (Matrix-OpenID-Token)
- Activate Auth
- Auth->Auth: Prüfung, ob \nMatrix-Domain \nin Föderation \nenthalten ist
-
- |||
- alt#LightGrey #LightBlue nicht valider Messenger-Service, da Matrix-Homeserver nicht in der Föderations enthalten ist
- |||
-
- Auth-->C: HTTP 401 \nUnauthorized
- C->C: Abmelden Session \nMatrix-ACCESS_TOKEN \nlöschen
- C-->U: Anmeldung \nnicht erfolgreich
-
- |||
- else valider Messenger-Service, da Matrix-Homeserver in der Föderation enthalten ist
- |||
- Auth-->C: HTTP 200
- Deactivate Auth
- C-->U: Anmeldung \nerfolgreich
- Deactivate C
- |||
-
- end
- |||
-end
-|||
+ C->C: Speichere \nMatrix-ACCESS_TOKEN, \nMatrix-REFRESH_TOKEN
+ C-->U: Anmeldung \nerfolgreich
+ Deactivate C
+ |||
@enduml
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10060_Seq.puml b/src/images/TI-M_Basis/UC_10060_Seq.puml
similarity index 100%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10060_Seq.puml
rename to src/images/TI-M_Basis/UC_10060_Seq.puml
diff --git a/src/images/TI-M_Basis/UC_10061_Seq.puml b/src/images/TI-M_Basis/UC_10061_Seq.puml
new file mode 100644
index 00000000..f7ae56e0
--- /dev/null
+++ b/src/images/TI-M_Basis/UC_10061_Seq.puml
@@ -0,0 +1,151 @@
+/'
+# TI-Messenger-Dienst
+# UC - 10061
+# Name: Einladung von Akteuren außerhalb einer Organisation
+'/
+
+@startuml
+skinparam sequenceMessageAlign direction
+skinparam minClassWidth 200
+skinparam BoxPadding 15
+skinparam sequenceReferenceHeaderBackgroundColor palegreen
+skinparam sequenceReferenceBackgroundColor Beige
+
+scale max 2048 width
+
+skinparam sequence {
+ArrowColor black
+ArrowFontSize 17
+ActorBorderColor black
+LifeLineBorderColor black
+LifeLineBackgroundColor Gainsboro
+
+ParticipantBorderColor Motivation
+ParticipantBackgroundColor Motivation
+ParticipantFontSize 20
+ParticipantFontColor black
+ParticipantBorderColor Black
+ParticipantBackgroundColor MOTIVATION
+
+ActorBackgroundColor Gainsboro
+ActorFontColor black
+ActorFontSize 20
+}
+ actor U1 as "\nAkteur A in\nder Rolle User" #AliceBlue
+ participant C1 as "TI-Messenger-\nClient" #AliceBlue
+ box Messenger-Service A #WhiteSmoke
+ participant MP1 as "Messenger-\nProxy"
+ participant MH1 as "Matrix-\nHomeserver"
+ end box
+ box Messenger-Service B #WhiteSmoke
+ participant MP2 as "Messenger-\nProxy"
+ participant MH2 as "Matrix-\nHomeserver"
+ end box
+ participant PG2 as "Push-\nGateway"
+ participant C2 as "TI-Messenger-\nClient" #TECHNOLOGY
+ actor U2 as "\nAkteur B in\nder Rolle User" #TECHNOLOGY
+
+|||
+note over U1, MH1: \nDer Akteur A ist erfolgreich beim Messenger Service A angemeldet\n
+note over U2, MP2: \nDer Akteur B ist erfolgreich beim Messenger Service B angemeldet\n
+|||
+
+ opt#LightGrey #AliceBlue Suche über VZD-FHIR-Directory
+ |||
+ ref over U1, MH1 : Einträge im VZD-FHIR-Directory suchen\n
+ |||
+ end
+ |||
+ note over U1, MH1: \nEin Chatraum wurde bereits durch den Akteur A eingerichtet.\n
+
+ autonumber
+
+ |||
+ C1->MP1: POST /_matrix/client/v3/rooms/{roomId}/invite
+ activate MP1
+ |||
+ ref over MP1, MP1: Berechtigungsprüfung\n
+ |||
+ break#LightGrey #MistyRose Abbruch
+ |||
+ MP1-->C1: HTTP 403 Forbidden
+ C1-->U1: Einladung nicht \nerfolgreich
+ |||
+ end
+ |||
+
+ MP1->MH1: HTTP(S) Forward
+ activate MH1
+ MH1->MH1: Invite verarbeiten
+ MH1->MP1: POST /_matrix/federation/v1\n/invite/{roomId}/{eventId}
+
+ |||
+ ref over MP1, MP1: Berechtigungsprüfung\n
+ |||
+ MP1->MP2: HTTP(S) Forward
+ |||
+ activate MP2
+ ref over MP2, MP2: Berechtigungsprüfung\n
+ |||
+
+ break#LightGrey #MistyRose Abbruch
+ |||
+ MP2-->MP1: HTTP 403 Forbidden
+ MP1-->C1: HTTP(S) forward
+ C1-->U1: Einladung nicht \nerfolgreich
+ |||
+ end
+ |||
+ MP2->MH2: HTTP(S) Forward
+ activate MH2
+ MH2->MH2: Invite verarbeiten
+ |||
+ opt#LightGrey #AliceBlue Pushbenachrichtigung
+ |||
+ MH2->PG2: POST /_matrix/push/notify
+ activate PG2
+ PG2->C2: Notification
+ PG2-->MH2: Status
+ deactivate PG2
+ |||
+ end
+ |||
+ MH2-->MP2: Status
+ deactivate MH2
+ MP2-->MP1: HTTP(S) Forward
+ deactivate MP2
+ MP1-->MH1: HTTP(S) Forward
+ MH1-->MP1: Status
+ deactivate MH1
+ MP1-->C1: Nutzer in den\nRaum eingeladen
+ deactivate MP1
+ deactivate C1
+
+ C2->MP2: GET /_matrix/client/v3/sync
+ activate C2 #TECHNOLOGY
+ activate MP2
+ MP2->MH2: HTTP(S) Forward
+ activate MH2
+ MH2-->MP2: Status
+ deactivate MH2
+ MP2-->C2: HTTP(S) Forward
+ deactivate MP2
+
+ C2->U2: Einladung anzeigen
+ U2-->C2: Einladung bestätigen
+
+ C2->MP2: POST /_matrix/client/v3/join/{roomId}
+ activate MP2
+ MP2-->MH2: HTTP(S) Forward
+ activate MH2
+ MH2-->MH2: Invite auslösen
+ MH2-->MP2: Status
+ deactivate MH2
+ MP2-->C2: Status
+ deactivate MP2
+
+ C2-->U2: Nutzer ist dem \nRaum beigetreten
+ deactivate C2
+ |||
+|||
+@enduml
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.puml b/src/images/TI-M_Basis/UC_10062_Seq.puml
similarity index 60%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.puml
rename to src/images/TI-M_Basis/UC_10062_Seq.puml
index 35ae61b1..cfe51eec 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10062_Seq.puml
+++ b/src/images/TI-M_Basis/UC_10062_Seq.puml
@@ -1,8 +1,6 @@
/'
-# TI-Messenger 1.1
# TI-Messenger-Dienst
# UC - 10062
-# Sequence Diagram
# Name: Austausch von Events zwischen Akteuren außerhalb einer Organisation
'/
@@ -11,6 +9,7 @@ skinparam sequenceMessageAlign direction
skinparam minClassWidth 200
skinparam BoxPadding 15
skinparam sequenceReferenceHeaderBackgroundColor palegreen
+skinparam sequenceReferenceBackgroundColor Beige
scale max 2048 width
skinparam sequence {
@@ -22,7 +21,6 @@ LifeLineBackgroundColor Gainsboro
ParticipantBorderColor Motivation
ParticipantBackgroundColor Motivation
-ParticipantFontName Impact
ParticipantFontSize 20
ParticipantFontColor black
ParticipantBorderColor Black
@@ -31,9 +29,11 @@ ParticipantBackgroundColor MOTIVATION
ActorBackgroundColor Gainsboro
ActorFontColor black
ActorFontSize 20
-ActorFontName Aapex
}
- actor U1 as "\nAkteur - A in der Rolle\nUser / User-HBA\n"
+
+autonumber
+
+ actor U1 as "\nAkteur A in\nder Rolle User" #AliceBlue
participant C1 as "TI-Messenger-\nClient" #AliceBlue
box Messenger-Service A #WhiteSmoke
participant MP1 as "Messenger-\nProxy"
@@ -42,13 +42,14 @@ ActorFontName Aapex
box Messenger-Service B #WhiteSmoke
participant MP2 as "Messenger-\nProxy"
participant MH2 as "Matrix-\nHomeserver"
- participant PG2 as "Push-\nGateway"
end box
+ participant PG2 as "Push-\nGateway"
participant C2 as "TI-Messenger-\nClient" #TECHNOLOGY
- actor U2 as "\nAkteur - B in der Rolle\nUser / User-HBA\n"
+ actor U2 as "\nAkteur B in\nder Rolle User" #TECHNOLOGY
|||
-note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.\nEbenfalls sind beide Akteure einem gemeinsamen Raum beigetreten.\n
+note over U1, MH1: \nDer Akteur A ist erfolgreich beim Messenger Service A angemeldet\n
+note over U2, MP2: \nDer Akteur B ist erfolgreich beim Messenger Service B angemeldet\n
|||
U1->C1: Akteur A löst\nMatrix-Event aus
@@ -59,27 +60,29 @@ note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service a
activate MH1
MH1->MH1: Event \nverarbeiten
|||
+ MH1-->MP1: Status
+ MP1-->C1: HTTP(S) Forward
+ deactivate MP1
+ C1-->U1: Status
+ deactivate C1
+
MH1->MP1: Matrix-Request
- deactivate MH1
+ activate MP1
|||
- ref over MP1, MP1: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n
- note left: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation
+ ref over MP1, MP1: Berechtigungsprüfung\n
|||
MP1-[#red]>MP2: HTTP(S) Forward
activate MP2
|||
- ref over MP2, MP2: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n
- note right: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation
+ ref over MP2, MP2: Berechtigungsprüfung\n
|||
- MP2-[#red]>MH2: HTTP(S) Foward
+ MP2-[#red]>MH2: HTTP(S) Forward
|||
activate MH2
- MH2->MH2: Event \nverarbeiten
- |||
-
- opt#LightGrey #AliceBlue Pushbenachrichtigung
+ MH2->MH2: Event\nverarbeiten
|||
+ opt#LightGrey #AliceBlue Pushbenachrichtigung
MH2->PG2: POST /_matrix/push/notify
activate PG2
PG2->C2: Notification
@@ -89,24 +92,26 @@ note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service a
end
|||
- MH2->MP2: Matrix-Request \nan Client-B)
- MP2->C2: HTTP(S) Forward
- activate C2 #TECHNOLOGY
- C2->C2: Event verarbeiten
+ MH2-->MP2: Status
+ deactivate MH2
+ MP2-->MP1: HTTP(S) Forward
+ deactivate MP2
+ MP1-->MH1: Status
+ deactivate MP1
+ deactivate MH1
- C2-->MP2: Status
- |||
- MP2-->MH2: HTTP(S) Forward \n(Status Client-B)
+ C2->MP2: GET /_matrix/client/v3/sync
+ activate C2 #TECHNOLOGY
+ activate MP2
+ MP2->MH2: HTTP(S) Forward
+ activate MH2
MH2--[#red]>MP2: Status (Matrix-Request)
deactivate MH2
MP2-->C2: HTTP(S) Forward
+ deactivate MP2
+
+ C2->C2: Event\nverarbeiten
C2->U2: Status
deactivate C2
- MP2-->MP1: HTTP(S) Forward
- deactivate MP2
- MP1-->C1: Status
- deactivate MP1
- deactivate C1
|||
-|||
@enduml
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.puml b/src/images/TI-M_Basis/UC_10063_Seq.puml
similarity index 71%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.puml
rename to src/images/TI-M_Basis/UC_10063_Seq.puml
index 159a8e06..995f0339 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10063_Seq.puml
+++ b/src/images/TI-M_Basis/UC_10063_Seq.puml
@@ -1,12 +1,9 @@
+@startuml
/'
-# TI-Messenger 1.1
-# TI-Messenger-Dienst
# UC - 10063
-# Sequence Diagram
# Name: Austausch von Events zwischen Akteuren innerhalb einer Organisation
'/
-@startuml
skinparam sequenceMessageAlign direction
skinparam minClassWidth 200
skinparam BoxPadding 1
@@ -22,7 +19,6 @@ LifeLineBackgroundColor Gainsboro
ParticipantBorderColor Motivation
ParticipantBackgroundColor Motivation
-ParticipantFontName Impact
ParticipantFontSize 20
ParticipantFontColor black
ParticipantBorderColor Black
@@ -31,59 +27,63 @@ ParticipantBackgroundColor MOTIVATION
ActorBackgroundColor Gainsboro
ActorFontColor black
ActorFontSize 20
-ActorFontName Aapex
}
- actor U1 as "Akteur - A in der Rolle\nUser / User-HBA"
+ actor U1 as "Akteur A in der\nRolle User"
participant C1 as "TI-Messenger-\nClient A" #AliceBlue
box Messenger-Service #WhiteSmoke
participant MP as "Messenger-\nProxy"
participant MH as "Matrix-Homeserver \n(inklusive Nutzerverzeichnis)"
- participant PG as "Push-Gateway"
end box
+ participant PG as "Push-\nGateway"
participant C2 as "TI-Messenger-\nClient B" #TECHNOLOGY
- actor U2 as "Akteur - B in der Rolle\nUser / User-HBA"
-
+ actor U2 as "Akteur B in der\nRolle User"
+
+autonumber
+
|||
note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.\nEbenfalls sind beide Akteure einem gemeinsamen Raum beigetreten.\n
|||
-
U1->C1: Akteur A löst \nMatrix-Event aus
activate C1 #AliceBlue
- C1-[#red]>MP: Matrix-Request
+ C1->MP: Matrix-Request
activate MP
- MP-[#red]>MH: HTTP(S) Foward
+ MP->MH: HTTP(S) Forward
activate MH
- MH->MH: Event \nverarbeiten
+ MH->MH: Event verarbeiten
+
+ MH-->MP: Matrix-Request Status
+ MP-->C1: HTTP(S) Forward
+ deactivate MP
+ C1-->U1: Status
+ deactivate C1
+
|||
- opt#LightGrey #AliceBlue Pushbenachrichtigung
+ opt#LightGrey #AliceBlue Push-Benachrichtigung
|||
MH->PG: POST /_matrix/push/notify
activate PG
PG->C2: Notification
PG-->MH: Status
deactivate PG
+ deactivate MH
|||
end
|||
- MH->MP: Matrix-Request \nan Client-B
- MP->C2: HTTP(S) Forward
+ C2->MP: GET /_matrix/client/v3/sync
+ activate MP
activate C2 #TECHNOLOGY
- C2->C2: Event \nverarbeiten
- C2-->MP: Status
- MP-->MH: HTTP(S) Forward \n(Status Client-B)
- |||
- MH-[#red]->MP: Status (Matrix-Request)
+ MP->MH: HTTP(S) Forward
+ activate MH
+ MH-->MP: Status
deactivate MH
+ MP-->C2: HTTP(S) Forward
+ deactivate MP
+ C2->C2: Event\nverarbeiten
|||
- MP-->C2: HTTP(S) Forward
C2-->U2: Status
deactivate C2
- MP-->C1: HTTP(S) Forward
- deactivate MP
- C1-->U1: Status
- deactivate C1
|||
-@enduml
+@enduml
\ No newline at end of file
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.puml b/src/images/TI-M_Basis/UC_10064_Seq.puml
similarity index 90%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.puml
rename to src/images/TI-M_Basis/UC_10064_Seq.puml
index e6ffe320..66030546 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10064_Seq.puml
+++ b/src/images/TI-M_Basis/UC_10064_Seq.puml
@@ -22,16 +22,11 @@ LifeLineBackgroundColor Gainsboro
ParticipantBorderColor Motivation
ParticipantBackgroundColor Motivation
-'ParticipantFontName Impact
ParticipantFontSize 20
ParticipantFontColor black
ParticipantBorderColor Black
ParticipantBackgroundColor MOTIVATION
-ActorBackgroundColor Gainsboro
-ActorFontColor black
-ActorFontSize 20
-'ActorFontName Aapex
}
autonumber
@@ -60,7 +55,7 @@ alt#LightGrey Matrix-Domain ist in der Föderationsliste enthalten ODE
else Matrix-Domain ist nicht in der Föderationsliste enthalten
|||
- ref over MP, VZD: **Anhang B** - Aktualisierung der Föderationsliste\n
+ ref over MP, VZD: Aktualisierung der Föderationsliste\n
|||
MP->MP: prüfe ob Matrix-Domain \nder MXID \nin der **aktualisierten** \nFöderationsliste vorhanden ist
|||
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10103_Seq.puml b/src/images/TI-M_Basis/UC_10103_Seq.puml
similarity index 98%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10103_Seq.puml
rename to src/images/TI-M_Basis/UC_10103_Seq.puml
index fd39c586..af7c997d 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10103_Seq.puml
+++ b/src/images/TI-M_Basis/UC_10103_Seq.puml
@@ -38,7 +38,7 @@ actor oa as "Akteur in der Rolle\nOrg-Admin"
participant wb as "Frontend des \nRegistrierungs-Dienstes"
participant au as "Authenticator"
end box
-participant ko as "Konnektor"
+participant ko as "Konnektor /\n Basis-Consumer"
participant rd as "Registrierungs-Dienst"
participant ip as "zentraler \nIDP-Dienst"
diff --git a/src/images/TI-M_Basis/UC_10235_Seq.puml b/src/images/TI-M_Basis/UC_10235_Seq.puml
new file mode 100644
index 00000000..8581c983
--- /dev/null
+++ b/src/images/TI-M_Basis/UC_10235_Seq.puml
@@ -0,0 +1,104 @@
+@startuml
+skinparam sequenceMessageAlign direction
+skinparam minClassWidth 200
+skinparam BoxPadding 1
+skinparam sequenceReferenceHeaderBackgroundColor palegreen
+skinparam sequenceReferenceBackgroundColor Beige
+scale max 2048 width
+
+skinparam sequence {
+ArrowColor black
+ArrowFontSize 17
+ActorBorderColor black
+LifeLineBorderColor black
+LifeLineBackgroundColor Gainsboro
+
+ParticipantBorderColor Motivation
+ParticipantBackgroundColor Motivation
+ParticipantFontSize 20
+ParticipantFontColor black
+ParticipantBorderColor Black
+ParticipantBackgroundColor MOTIVATION
+
+ActorBackgroundColor Gainsboro
+ActorFontColor black
+ActorFontSize 20
+}
+
+autonumber
+
+actor U as "Akteur in der\nRolle User"
+participant cl as "TI-Messenger Client"
+participant ms as "Messenger Service"
+box VZD-FHIR-Directory #WhiteSmoke
+ participant fp as "FHIR-Proxy"
+ participant au as "Auth-Service"
+ participant fd as "FHIR-Directory"
+end box
+
+|||
+note over U, ms: \nDer Akteur ist erfolgreich beim Messenger-Service angemeldet\n
+|||
+activate cl
+U->cl:Suchparameter für \nFHIR-Ressourcen \n eingeben
+|||
+group#LightGrey Prüfung/Erhalt search-accesstoken
+ |||
+ ref over U, cl, ms, fp, au, fd
+ gemSpec_VZD_FHIR_Directory#AF_10036-01
+ (Der Akteur entspricht dem "Nutzer" im referenzierten Anwendungsfall)
+ |||
+ end ref
+ |||
+end group
+
+alt#LightGrey gültiges search-accesstoken erhalten
+|||
+ alt#LightGrey #AliceBlue HealthcareService-Einträge werden gesucht
+ |||
+ cl->fp: GET {Search-Schnittstelle}/HealthcareService/\n?organization.active=true&...(search-accesstoken)
+ note left
+ Finde Datensatz für
+ TelematikID
+ end note
+ activate fp
+ fp->fp: prüfe search-accesstoken
+ |||
+ fp->fd: GET {Search-Schnittstelle}/HealthcareService/\n?organization.active=true&...
+ activate fd
+ fd-->fp: HTTP 200 (:Suchergebnis FHIR-Bundle)
+ deactivate fd
+ fp-->cl: HTTP 200 (:Suchergebnis FHIR-Bundle)
+ deactivate fp
+ cl-->U: Suchergebnis
+ |||
+ else PractitionerRole-Einträge werden gesucht
+ |||
+ cl->fp: GET {Search-Schnittstelle}/PractitionerRole/\n?practitioner.active=true&...(search-accesstoken)
+ note left
+ Finde Datensatz für MXID
+ end note
+ activate fp
+ fp->fp: prüfe search-accesstoken
+ |||
+ fp->fd: GET {Search-Schnittstelle}/PractitionerRole/\n?practitioner.active=true&...
+ activate fd
+ fd-->fp: HTTP 200 (:Suchergebnis FHIR-Bundle)
+ deactivate fd
+ fp-->cl: HTTP 200 (:Suchergebnis FHIR-Bundle)
+ deactivate fp
+ cl-->U: Suchergebnis
+ |||
+ end
+|||
+else kein gültiges search-accesstoken
+ break#LightGrey #MistyRose
+ cl->fp++: GET {Search-Schnittstelle} (search-accesstoken)
+ fp-->cl--: HTTP 401
+ cl-->U: Fehlermeldung
+ |||
+ end
+|||
+end
+
+@enduml
diff --git a/src/images/TI-M_Basis/UC_Approvel_List_Seq.puml b/src/images/TI-M_Basis/UC_Approvel_List_Seq.puml
new file mode 100644
index 00000000..0e5caf23
--- /dev/null
+++ b/src/images/TI-M_Basis/UC_Approvel_List_Seq.puml
@@ -0,0 +1,103 @@
+/'
+# TI-Messenger für Versicherte
+# TI-Messenger-Dienst
+# Sequence Diagram
+# Name: Stufen der Berechtigungsprüfung ePA
+'/
+
+@startuml
+skinparam sequenceMessageAlign direction
+skinparam minClassWidth 200
+skinparam BoxPadding 15
+skinparam sequenceReferenceHeaderBackgroundColor palegreen
+scale max 2048 width
+
+skinparam sequence {
+ ArrowColor black
+ ArrowFontSize 17
+ ActorBorderColor black
+ LifeLineBorderColor black
+ LifeLineBackgroundColor Gainsboro
+
+ ParticipantBorderColor Motivation
+ ParticipantBackgroundColor Motivation
+
+ ParticipantFontSize 20
+ ParticipantFontColor black
+ ParticipantBorderColor Black
+ ParticipantBackgroundColor MOTIVATION
+
+ ActorBackgroundColor Gainsboro
+ ActorFontColor black
+ ActorFontSize 20
+ ActorFontName Aapex
+}
+box Messenger-Service\ndes einladenden Akteurs\n #WhiteSmoke
+participant MS as "Messenger-Service"
+end box
+box Messenger-Service\ndes eingeladenen Akteurs\n #WhiteSmoke
+participant MS2 as "Messenger-Service"
+end box
+box Push-Gateway des eingeladenden Akteurs\n #WhiteSmoke
+participant PG as "Push-\nGateway"
+end box
+box Messenger Client\ndes eingeladenen Akteurs\n #WhiteSmoke
+participant MC2 as "Messenger-Client"
+end box
+MS->MS2:Matrix-Invite-Event
+activate MS2
+activate MS
+|||
+== Berechtigungskonzept - Stufe 1 ==
+|||
+break #MistyRose Matrix-Domain nicht in der Föderation enthalten
+ MS2->MS2:Abbruch, \nVerbindung wird \nabgelehnt
+ MS2-->MS: HTTP 403
+ |||
+end
+
+== Berechtigungskonzept - Stufe 2 ==
+MS2-->MS2: Invite-Event \nverarbeiten
+opt #SkyBlue Durchsetzen der akteursspezifischen Berechtigungskonfiguration
+MS2->MS2: Prüfung, ob die Einladung erlaubt ist
+break #MistyRose Der Akteur hat "allow all" konfiguriert und der einladende Akteur\n ist auf der BlockedUser-Liste (Direkt oder als Teil einer Domain)
+ |||
+ MS2->MS2:Einladung ist abzulehnen
+ |||
+ end
+
+ break #MistyRose Der Akteur hat "block all" konfiguriert und der einladende Akteur\n ist nicht auf der AllowedUser-Liste (Direkt oder als Teil einer Domain)
+ |||
+ MS2->MS2:Einladung ist abzulehnen
+ |||
+ end
+end
+
+ MS2->PG++: Push Notification
+ PG->MC2: Push Notification
+ activate MC2
+ PG-->MS2: Response
+ deactivate PG
+
+ MC2->MS2: Abfrage neuer Events
+ MS2-->MC2: Bereitstellung neuer Events
+
+ opt #SkyBlue Durchsetzen der akteursspezifischen Berechtigungskonfiguration
+ MC2->MC2: Prüfung, ob die Einladung erlaubt ist
+ break #MistyRose Der Akteur hat "allow all" konfiguriert und der einladende Akteur\n ist auf der BlockedUser-Liste (Direkt oder als Teil einer Domain)
+ |||
+ MC2->MC2:Einladung ist abzulehnen
+ |||
+ end
+
+ break #MistyRose Der Akteur hat "block all" konfiguriert und der einladende Akteur\n ist nicht auf der AllowedUser-Liste (Direkt oder als Teil einer Domain)
+ |||
+ MC2->MC2:Einladung ist abzulehnen
+ |||
+ end
+end
+|||
+MC2-->MS2: Einladungsergebnis
+MS2-->MS: Einladungsergebnis
+|||
+@enduml
\ No newline at end of file
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.puml b/src/images/TI-M_Basis/UC_Update_Federationlist_Seq.puml
similarity index 95%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.puml
rename to src/images/TI-M_Basis/UC_Update_Federationlist_Seq.puml
index b2c503d1..c0f1c7c8 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_Seq.puml
+++ b/src/images/TI-M_Basis/UC_Update_Federationlist_Seq.puml
@@ -16,22 +16,16 @@ scale max 2048 width
skinparam sequence {
ArrowColor black
ArrowFontSize 17
-ActorBorderColor black
LifeLineBorderColor black
LifeLineBackgroundColor Gainsboro
ParticipantBorderColor Motivation
ParticipantBackgroundColor Motivation
-'ParticipantFontName Impact
ParticipantFontSize 20
ParticipantFontColor black
ParticipantBorderColor Black
ParticipantBackgroundColor MOTIVATION
-ActorBackgroundColor Gainsboro
-ActorFontColor black
-ActorFontSize 20
-'ActorFontName Aapex
}
autonumber
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.puml b/src/images/TI-M_Basis/UC_Update_Federationlist_SignCheck.puml
similarity index 50%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.puml
rename to src/images/TI-M_Basis/UC_Update_Federationlist_SignCheck.puml
index 8a0f929a..c12cd468 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_SignCheck.puml
+++ b/src/images/TI-M_Basis/UC_Update_Federationlist_SignCheck.puml
@@ -16,7 +16,6 @@ scale max 2048 width
skinparam sequence {
ArrowColor black
ArrowFontSize 17
-ActorBorderColor black
LifeLineBorderColor black
LifeLineBackgroundColor Gainsboro
@@ -27,9 +26,6 @@ ParticipantFontColor black
ParticipantBorderColor Black
ParticipantBackgroundColor MOTIVATION
-ActorBackgroundColor Gainsboro
-ActorFontColor black
-ActorFontSize 20
}
autonumber
@@ -37,24 +33,17 @@ autonumber
box Messenger-Service\n #WhiteSmoke
participant MP as "Messenger-Proxy"
end box
-participant OCSP as "Public OCSP-Responder"
-
-legend bottom right
- __Legende__
- nicht anzuwenden in dieser Spezifikationsversion,
- sondern erst, sobald der Public OCSP-Responder verfügbar ist
- (bezieht sich auf die im diesem Diagramm blau dargestellten Prüfungen und Komponenten)
-endlegend
+participant OCSP as "Public OCSP-Responder"
activate MP
MP->MP++: Signatur der Föderationsliste prüfen\n(Föderationsliste, x5c-Zertifikatsliste[1])
return Signaturprüfergebnis
|||
-loop#LightGrey für jeden Eintrag von x5c-Zertifikatsliste
- MP->OCSP: Public-OCSP-Zertifikatsprüf-Request stellen(x5c-Zertifikat)
- MP<--OCSP: OCSP-Response
+loop#LightGrey für jeden Eintrag von x5c-Zertifikatsliste
+ MP->OCSP: Public-OCSP-Zertifikatsprüf-Request stellen(x5c-Zertifikat)
+ MP<--OCSP: OCSP-Response
end
-alt#LightGrey Signaturprüfergebnis=gültig UND jeder OCSP-Response.CertificateStatusValue=good
+alt#LightGrey Signaturprüfergebnis=gültig UND jeder OCSP-Response.CertificateStatusValue=good
MP->MP: Föderationsliste aktualisieren(Föderationsliste)
end
deactivate MP
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.puml b/src/images/TI-M_Basis/UC_Update_Federationlist_auth_retrieve.puml
similarity index 96%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.puml
rename to src/images/TI-M_Basis/UC_Update_Federationlist_auth_retrieve.puml
index 132d8676..328eddc5 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Update_Federationlist_auth_retrieve.puml
+++ b/src/images/TI-M_Basis/UC_Update_Federationlist_auth_retrieve.puml
@@ -16,7 +16,6 @@ scale max 2048 width
skinparam sequence {
ArrowColor black
ArrowFontSize 17
-ActorBorderColor black
LifeLineBorderColor black
LifeLineBackgroundColor Gainsboro
@@ -27,9 +26,6 @@ ParticipantFontColor black
ParticipantBorderColor Black
ParticipantBackgroundColor MOTIVATION
-ActorBackgroundColor Gainsboro
-ActorFontColor black
-ActorFontSize 20
}
autonumber
diff --git a/src/images/TI-M_Basis/UC_tim_specific_comm.puml b/src/images/TI-M_Basis/UC_tim_specific_comm.puml
new file mode 100644
index 00000000..85a13fa0
--- /dev/null
+++ b/src/images/TI-M_Basis/UC_tim_specific_comm.puml
@@ -0,0 +1,58 @@
+@startuml
+!pragma layout smetana
+skinparam actorStyle awesome
+left to right direction
+scale 6/3
+
+skinparam sequence {
+ArrowColor black
+ArrowFontSize 17
+ActorBorderColor black
+LifeLineBorderColor black
+LifeLineBackgroundColor Gainsboro
+
+ParticipantBorderColor Motivation
+ParticipantBackgroundColor Motivation
+ParticipantFontName Impact
+ParticipantFontSize 20
+ParticipantFontColor black
+ParticipantBorderColor Black
+ParticipantBackgroundColor MOTIVATION
+
+ActorBackgroundColor Gainsboro
+ActorFontColor black
+ActorFontSize 13
+}
+
+package Rolle {
+actor "User" as u
+}
+
+package "TI-M spezifische Kommunikation" {
+
+usecase ucbasis as "Basis-Anwendungsfall für\nTI-M spezifische Kommunikation
+
+--Merkmale--
+Nutzung zusätzlicher Chatroom-Eigenschaften
+(Custom State Events und/oder
+Custom Room Types)
+..
+Unterstützung von FHIR-Resources
+zur strukturierten Kommunikation
+"
+
+usecase "Fallbezogene\nKommunikation" as ucfallbezug
+usecase "Föderierte und intersektorale\nKommunikation" as ucfedcomm
+}
+
+u --> ucbasis
+ucbasis <. ucfallbezug : <>
+ucbasis <. ucfedcomm : <>
+
+
+note bottom of (u)
+jeder Akteur, der an der Kommunikation
+in der TI-M Föderation teilnimmt
+end note
+
+@enduml
diff --git a/src/images/TI-M_Basis/push_notifications_delivery.puml b/src/images/TI-M_Basis/push_notifications_delivery.puml
new file mode 100644
index 00000000..d6f176ed
--- /dev/null
+++ b/src/images/TI-M_Basis/push_notifications_delivery.puml
@@ -0,0 +1,58 @@
+@startuml
+skinparam sequenceMessageAlign direction
+skinparam minClassWidth 200
+skinparam BoxPadding 1
+skinparam sequenceReferenceHeaderBackgroundColor palegreen
+scale max 2048 width
+skinparam maxMessageSize 300
+
+skinparam sequence {
+ArrowColor black
+ArrowFontSize 17
+ActorBorderColor black
+LifeLineBorderColor black
+LifeLineBackgroundColor Gainsboro
+
+ParticipantBorderColor Motivation
+ParticipantBackgroundColor Motivation
+ParticipantFontSize 20
+ParticipantFontColor black
+ParticipantBorderColor Black
+ParticipantBackgroundColor MOTIVATION
+
+ActorBackgroundColor Gainsboro
+ActorFontColor black
+ActorFontSize 20
+}
+
+autonumber
+
+ actor v as "Akteur in der Rolle User"
+ participant fdv [
+ TI-Messenger Client App
+ ----
+ Inhaber PushAnbieter-App Token
+ ]
+ participant pa as "Push-Anbieter"
+ participant pg as "Push-Gateway"
+ participant fd as "Fachdienst"
+
+activate fd
+fd->pg: Benachrichtigung(App_ID, PushAnbieter-AppToken, EventID)
+activate pg
+pg->pa: Benachrichtigung(PushAnbieter-AppToken, EventID)
+activate pa
+pa-->pg: Response
+pg-->fd: Response
+deactivate pg
+pa->fdv: Benachrichtigung an Empfänger(PushAnbieter-AppToken, EventID)
+deactivate pa
+activate fdv
+fdv->fd: Abfrage der Daten zu Event(EventID)
+fd-->fdv: Verschlüsselte Benachrichtigungsinhalte
+deactivate fd
+fdv->fdv:Entschlüssele \n(Verschlüsselte Benachrichtigungsinhalte)
+fdv->fdv:erzeuge Anwenderbenachrichtigung mit\n den entschlüsselten Inhalten
+fdv->v:Zeige Benachrichtigung
+
+@enduml
diff --git a/src/images/TI-M_Basis/push_notifications_registration.puml b/src/images/TI-M_Basis/push_notifications_registration.puml
new file mode 100644
index 00000000..30ec2778
--- /dev/null
+++ b/src/images/TI-M_Basis/push_notifications_registration.puml
@@ -0,0 +1,60 @@
+@startuml
+skinparam sequenceMessageAlign direction
+skinparam minClassWidth 200
+skinparam BoxPadding 1
+skinparam sequenceReferenceHeaderBackgroundColor palegreen
+scale max 2048 width
+skinparam maxMessageSize 450
+
+skinparam sequence {
+ArrowColor black
+ArrowFontSize 17
+ActorBorderColor black
+LifeLineBorderColor black
+LifeLineBackgroundColor Gainsboro
+
+ParticipantBorderColor Motivation
+ParticipantBackgroundColor Motivation
+ParticipantFontSize 20
+ParticipantFontColor black
+ParticipantBorderColor Black
+ParticipantBackgroundColor MOTIVATION
+
+ActorBackgroundColor Gainsboro
+ActorFontColor black
+ActorFontSize 20
+}
+autonumber
+
+actor v as "Akteur in der Rolle User"
+
+participant c as "TI-Messenger Client App"
+participant pa as "Push-Anbieter"
+participant fd as "Fachdienst"
+participant g as "Push-Gateway"
+actor a as "Ersteller TI-Messenger Client App"
+
+|||
+activate fd
+a->g: konfiguriert unter einer eindeutigen App_ID den Zugang zum Push-Anbieter
+ activate g
+ g->g: speichere Konfiguration
+ deactivate g
+ a->c: hinterlege App_ID & Push-Gateway URL in der App
+
+ v->c: installiert TI-Messenger Client App\n auf dem Smartphone
+ activate c
+ c-->v: Wollen Sie Push-Nachrichten empfangen?
+ v->c: stimmt dem Empfang von Push-Nachrichten zu
+ c->pa: registriert die App beim Push-Anbieter
+ activate pa
+ pa-->c: eindeutiges PushAnbieter-AppToken\nfür die App Instanz
+ deactivate pa
+ c->c: speichere \n PushAnbieter-AppToken
+ c->fd: konfiguriere zu verwendendes Gateway(Gateway-Url,App_ID, PushAnbieter-AppToken)
+ fd-->c: Konfiguration übernommen
+|||
+
+ deactivate fd
+ deactivate c
+@enduml
diff --git a/src/drawio/TI-Messenger-Fachdienst/API-Messenger-Service.drawio b/src/images/TI-M_Pro/API-Messenger-Service.drawio
similarity index 100%
rename from src/drawio/TI-Messenger-Fachdienst/API-Messenger-Service.drawio
rename to src/images/TI-M_Pro/API-Messenger-Service.drawio
diff --git a/src/images/TI-M_Pro/Berechtigung_UI.drawio b/src/images/TI-M_Pro/Berechtigung_UI.drawio
new file mode 100644
index 00000000..4dbf009d
--- /dev/null
+++ b/src/images/TI-M_Pro/Berechtigung_UI.drawio
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10058_Seq.puml b/src/images/TI-M_Pro/UC_10058_Seq.puml
similarity index 100%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10058_Seq.puml
rename to src/images/TI-M_Pro/UC_10058_Seq.puml
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.puml b/src/images/TI-M_Pro/UC_10059_Seq.puml
similarity index 99%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.puml
rename to src/images/TI-M_Pro/UC_10059_Seq.puml
index 95e2e872..81fef36a 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10059_Seq.puml
+++ b/src/images/TI-M_Pro/UC_10059_Seq.puml
@@ -12,6 +12,7 @@ skinparam minClassWidth 200
skinparam BoxPadding 5
skinparam sequenceReferenceHeaderBackgroundColor palegreen
scale max 2048 width
+autonumber
skinparam sequence {
ArrowColor black
@@ -27,6 +28,8 @@ ParticipantFontColor black
ParticipantBorderColor Black
ParticipantBackgroundColor MOTIVATION
+
+
ActorBackgroundColor Gainsboro
ActorFontColor black
ActorFontSize 20
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.puml b/src/images/TI-M_Pro/UC_10104_Seq.puml
similarity index 55%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.puml
rename to src/images/TI-M_Pro/UC_10104_Seq.puml
index 095ea29f..07684a59 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10104_Seq.puml
+++ b/src/images/TI-M_Pro/UC_10104_Seq.puml
@@ -1,8 +1,5 @@
/'
-# TI-Messenger 1.1
-# TI-Messenger-Dienst
# UC - 10104
-# Sequence Diagram
# Name: Einladung von Akteuren innerhalb einer Organisation
'/
@@ -11,6 +8,7 @@ skinparam sequenceMessageAlign direction
skinparam minClassWidth 200
skinparam BoxPadding 1
skinparam sequenceReferenceHeaderBackgroundColor palegreen
+skinparam sequenceReferenceBackgroundColor Beige
scale max 2048 width
skinparam sequence {
@@ -22,7 +20,6 @@ LifeLineBackgroundColor Gainsboro
ParticipantBorderColor Motivation
ParticipantBackgroundColor Motivation
-ParticipantFontName Impact
ParticipantFontSize 20
ParticipantFontColor black
ParticipantBorderColor Black
@@ -31,92 +28,92 @@ ParticipantBackgroundColor MOTIVATION
ActorBackgroundColor Gainsboro
ActorFontColor black
ActorFontSize 20
-ActorFontName Aapex
}
- actor U1 as "Akteur - A in der Rolle\nUser / User-HBA"
+autonumber
+
+ actor U1 as "Akteur - A in\nder Rolle User"
participant C1 as "TI-Messenger-\nClient A" #AliceBlue
box Messenger-Service #WhiteSmoke
participant MP as "Messenger-\nProxy"
participant MH as "Matrix-Homeserver \n(inklusive Nutzerverzeichnis)"
- participant PG as "Push-Gateway"
end box
+ participant PG as "Push-\nGateway"
participant C2 as "TI-Messenger-\nClient B"#TECHNOLOGY
- actor U2 as "Akteur - B in der Rolle\nUser / User-HBA"
+ actor U2 as "Akteur - B in\nder Rolle User"
-|||
-note over U1, U2: \nDie Akteure sind auf dem selben Messenger-Service angemeldet und im Besitz eines zugelassenen TI-Messenger-Clients.\nEin Chatraum wurde durch den Einladenen eingerichtet.\n
-|||
-
opt#LightGrey #AliceBlue Akteur suchen
|||
U1->C1: Suche Akteur B
- activate C1 #AliceBlue
+ activate C1
C1->MP: POST /_matrix/client/\nuser_directory/search
activate MP
- MP->MP: TLS-Terminierung
MP->MH: HTTP(S) Forward
activate MH
MH-->MH: Nutzerverzeichnis \ndurchsuchen
MH-->MP: MXID
deactivate MH
MP-->C1: HTTP(S) Forward
+ deactivate MP
|||
end
|||
U1->C1: Akteur B einladen
- C1->MP: POST /_matrix/client/r0/rooms/\n{roomId}/invite (roomId)
+ C1->MP: POST /_matrix/client/v3/\nrooms/{roomId}/invite
+ activate MP
|||
- ref over MP, MP: **AF_10064** - Föderationszugehörigkeit eines Messenger-Service prüfen\n
+ ref over MP, MP: Berechtigungsprüfung\n
|||
-
- alt#LightGrey #AliceBlue Matrix-Domain nicht in der Föderation enthalten
- |||
- MP-->C1: HTTP 401 \nUnauthorized
- |||
- C1-->C1: Abmeldung der Session
- |||
- C1-->U1: Anmeldung nicht \nerfolgreich
- |||
-
- else Matrix-Domain in der Föderation enthalten
-
- MP->MH: HTTP(S) Foward
+
+
+ MP->MH: HTTP(S) Forward
activate MH
MH->MH: Invite verarbeiten
+ MH-->MP: HTTP 200
+ MP-->C1: HTTP(S) Forward
+ deactivate MP
|||
- opt#LightGrey #LightBlue Pushbenachrichtigung
+ opt#LightGrey #LightBlue Push-Benachrichtigung
|||
MH->PG: POST /_matrix/push/notify
activate PG
PG->C2: Notification
+ activate C2
PG-->MH: Status
deactivate PG
|||
end
|||
- MH->MP: Invite Request
- MP->C2: HTTP(S) Forward
- activate C2 #TECHNOLOGY
+
+ C2->MP: Sync Request
+ activate MP
+ MP->MH: HTTP(S) Forward
+ MH-->MP: Sync Response
+ MP-->C2: HTTP(S) Forward
+
C2->U2: Einladung anzeigen
U2-->C2: Einladung bestätigen
- C2->MP: commit
- |||
- MP->MP: TLS Terminierung
+ C2->MP: join
MP-->MH: HTTP(S) Forward
- MH-->MH: Invite auslösen
- MH-->MP: Status
+ MH->MH: join verarbeiten
+ MH-->MP: Room ID
deactivate MH
- MP-->C1: Status
- C1-->U1: Nutzer in den \nRaum hinzugefügt
- deactivate C1
- MP-->C2: Status
+ MP-->C2: HTTP(S) Forward
deactivate MP
C2-->U2: Nutzer ist dem \nRaum beigetreten
deactivate C2
+ C1->MP: Sync Request
+ activate MP
+ MP->MH: HTTP(S) Forward
+ activate MH
+ MH-->MP: Sync Response
+ deactivate MH
+ MP-->C1: HTTP(S) Forward
+ deactivate MP
+ C1-->U1: Akteur B ist dem Raum\nRaum beigetreten
+ deactivate C1
|||
- end
|||
@enduml
diff --git a/src/images/TI-M_Pro/UC_10376_Seq.puml b/src/images/TI-M_Pro/UC_10376_Seq.puml
new file mode 100644
index 00000000..8000ed41
--- /dev/null
+++ b/src/images/TI-M_Pro/UC_10376_Seq.puml
@@ -0,0 +1,82 @@
+/'
+# Sequence Diagram
+# Name: Sichtbarkeit für Versicherte setzen
+'/
+
+@startuml
+skinparam sequenceMessageAlign direction
+skinparam minClassWidth 200
+skinparam BoxPadding 1
+skinparam sequenceReferenceHeaderBackgroundColor palegreen
+scale max 2048 width
+
+skinparam sequence {
+ArrowColor black
+ArrowFontSize 17
+ActorBorderColor black
+LifeLineBorderColor black
+LifeLineBackgroundColor Gainsboro
+
+ParticipantBorderColor Motivation
+ParticipantBackgroundColor Motivation
+ParticipantFontSize 20
+ParticipantFontColor black
+ParticipantBorderColor Black
+
+ActorBackgroundColor Gainsboro
+ActorFontColor black
+ActorFontSize 20
+}
+
+autonumber
+
+actor U as "Akteur in der Rolle\nUser-HBA"
+box Endgerät #WhiteSmoke
+ participant C as "TI-Messenger-Client"
+end box
+
+box VZD-FHIR-Directory #WhiteSmoke
+ participant FP as "FHIR-Proxy"
+ participant VZD as "FHIR-Directory"
+end box
+
+|||
+group VZD-FHIR-Directory Eintrag
+ |||
+ group Sichtbarkeit für Versicherte abschalten
+ U->C: Deaktiviere Sichtbarkeit für Versicherte
+
+ Activate C
+ |||
+ C->FP: PUT /owner/Endpoint/?... \nSetze Endpoint.extension:endpointVisibility auf "code": "hide-versicherte"
+ Activate FP
+ FP->FP: prüfe \nowner-accesstoken
+ FP->VZD: HTTPS Forward
+ Activate VZD
+ VZD-->FP: result body json
+ Deactivate VZD
+ FP-->C: result body json
+ Deactivate FP
+ |||
+ C->U: Ihre MXID ist für Versicherte nicht mehr sichtbar.
+ Deactivate C
+ end
+ |||
+ group Sichtbarkeit für Versicherte anschalten
+ |||
+ U->C: Aktiviere Sichtbarkeit für Versicherte
+ Activate C
+ C->FP: PUT /owner/Endpoint/?... \nEntferne Endpoint.extension:endpointVisibility
+ Activate FP
+ FP->FP: prüfe \nowner-accesstoken
+ FP->VZD: HTTPS Forward
+ Activate VZD
+ VZD-->FP: result body json
+ Deactivate VZD
+ FP-->C: result body json
+ Deactivate FP
+ |||
+ C->U: Ihre MXID ist für Versicherte wieder sichtbar.
+ Deactivate C
+ end
+@enduml
diff --git a/src/images/TI-M_Pro/UC_10377_Seq.puml b/src/images/TI-M_Pro/UC_10377_Seq.puml
new file mode 100644
index 00000000..211919da
--- /dev/null
+++ b/src/images/TI-M_Pro/UC_10377_Seq.puml
@@ -0,0 +1,81 @@
+/'
+# Sequence Diagram
+# Name: Organisation Sichtbarkeit für Versicherte setzen
+'/
+
+@startuml
+skinparam sequenceMessageAlign direction
+skinparam minClassWidth 200
+skinparam BoxPadding 1
+skinparam sequenceReferenceHeaderBackgroundColor palegreen
+scale max 2048 width
+
+skinparam sequence {
+ArrowColor black
+ArrowFontSize 17
+ActorBorderColor black
+LifeLineBorderColor black
+LifeLineBackgroundColor Gainsboro
+
+ParticipantBorderColor Motivation
+ParticipantBackgroundColor Motivation
+ParticipantFontSize 20
+ParticipantFontColor black
+ParticipantBorderColor Black
+
+ActorBackgroundColor Gainsboro
+ActorFontColor black
+ActorFontSize 20
+}
+
+autonumber
+
+actor U as "Akteur in der Rolle\nOrg-Admin"
+box Endgerät #WhiteSmoke
+ participant C as "TI-Messenger-Client"
+end box
+
+box VZD-FHIR-Directory #WhiteSmoke
+ participant FP as "FHIR-Proxy"
+ participant VZD as "FHIR-Directory"
+end box
+
+group VZD-FHIR-Directory Eintrag
+ |||
+ group Sichtbarkeit für Versicherte abschalten
+ U->C: Deaktiviere Sichtbarkeit für Versicherte
+
+ Activate C
+ |||
+ C->FP: PUT /owner/Endpoint/?... \nSetze Endpoint.extension:endpointVisibility auf "code": "hide-versicherte"
+ Activate FP
+ FP->FP: prüfe \nowner-accesstoken
+ FP->VZD: HTTPS Forward
+ Activate VZD
+ VZD-->FP: result body json
+ Deactivate VZD
+ FP-->C: result body json
+ Deactivate FP
+ |||
+ C->U: Der Endpunkt mit der MXID ist für Versicherte nicht mehr sichtbar.
+ Deactivate C
+ end
+ |||
+ group Sichtbarkeit für Versicherte anschalten
+ |||
+ U->C: Aktiviere Sichtbarkeit für Versicherte
+ Activate C
+ C->FP: PUT /owner/Endpoint/?... \nEntferne Endpoint.extension:endpointVisibility
+ Activate FP
+ FP->FP: prüfe \nowner-accesstoken
+ FP->VZD: HTTPS Forward
+ Activate VZD
+ VZD-->FP: result body json
+ Deactivate VZD
+ FP-->C: result body json
+ Deactivate FP
+ |||
+ C->U: Der Endpunkt mit der MXID ist für Versicherte wieder sichtbar.
+ Deactivate C
+ end
+@enduml
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_org_admin.puml b/src/images/TI-M_Pro/UC_org_admin.puml
similarity index 98%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_org_admin.puml
rename to src/images/TI-M_Pro/UC_org_admin.puml
index 8d66044e..4b0d9d64 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_org_admin.puml
+++ b/src/images/TI-M_Pro/UC_org_admin.puml
@@ -5,7 +5,7 @@
# Use Case Diagram
# Name: Org-Admin - Anwendungsfaelle
'/
-
+!pragma layout smetana
skinparam actorStyle awesome
left to right direction
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.puml b/src/images/TI-M_Pro/UC_user_HBA.puml
similarity index 98%
rename from src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.puml
rename to src/images/TI-M_Pro/UC_user_HBA.puml
index 894be4e0..18f0dddd 100644
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_user_HBA.puml
+++ b/src/images/TI-M_Pro/UC_user_HBA.puml
@@ -6,6 +6,7 @@
'/
@startuml
+!pragma layout smetana
skinparam actorStyle awesome
left to right direction
scale 6/3
diff --git a/src/images/TI-M_ePA/Komponentendiagramm_Client_fdv.drawio b/src/images/TI-M_ePA/Komponentendiagramm_Client_fdv.drawio
new file mode 100644
index 00000000..83bb1ca9
--- /dev/null
+++ b/src/images/TI-M_ePA/Komponentendiagramm_Client_fdv.drawio
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/drawio/TI-Messenger-Client/System_Overview.drawio b/src/images/TI-M_ePA/Komponentendiagramm_fdv.drawio
similarity index 55%
rename from src/drawio/TI-Messenger-Client/System_Overview.drawio
rename to src/images/TI-M_ePA/Komponentendiagramm_fdv.drawio
index c10c8373..aa2200f0 100644
--- a/src/drawio/TI-Messenger-Client/System_Overview.drawio
+++ b/src/images/TI-M_ePA/Komponentendiagramm_fdv.drawio
@@ -1,67 +1,52 @@
-
-
+
+
-
+
-
+
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
+
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
@@ -69,52 +54,47 @@
-
-
-
-
-
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
@@ -123,13 +103,13 @@
-
+
-
+
@@ -138,7 +118,7 @@
-
+
@@ -158,7 +138,7 @@
-
+
@@ -167,28 +147,22 @@
-
+
-
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
+
+
@@ -225,13 +199,13 @@
-
+
-
+
@@ -239,18 +213,128 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/images/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.drawio b/src/images/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.drawio
new file mode 100644
index 00000000..55a0b657
--- /dev/null
+++ b/src/images/TI-M_ePA/Pruefungen_Messenger_Proxy_fdv.drawio
@@ -0,0 +1,461 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/images/TI-M_ePA/Push_Komponeten_fdv.drawio b/src/images/TI-M_ePA/Push_Komponeten_fdv.drawio
new file mode 100644
index 00000000..09cb3d81
--- /dev/null
+++ b/src/images/TI-M_ePA/Push_Komponeten_fdv.drawio
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/images/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.drawio b/src/images/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.drawio
new file mode 100644
index 00000000..07cd10ee
--- /dev/null
+++ b/src/images/TI-M_ePA/TI-M_Kontextabgrenzung_fdv.drawio
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/images/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.puml b/src/images/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.puml
new file mode 100644
index 00000000..3e033fc3
--- /dev/null
+++ b/src/images/TI-M_ePA/TI-Messenger_OIDC_login_fdv_simplified.puml
@@ -0,0 +1,125 @@
+@startuml
+skinparam sequenceMessageAlign direction
+skinparam WrapWidth 300
+skinparam BoxPadding 1
+skinparam ParticipantPadding 25
+skinparam sequenceReferenceHeaderBackgroundColor palegreen
+scale max 2048 width
+skinparam maxMessageSize 400
+
+skinparam sequence {
+ArrowColor black
+ArrowFontSize 17
+ActorBorderColor black
+LifeLineBorderColor black
+LifeLineBackgroundColor Gainsboro
+
+ParticipantBorderColor Motivation
+ParticipantBackgroundColor Motivation
+ParticipantFontSize 20
+ParticipantFontColor black
+ParticipantBorderColor Black
+ParticipantBackgroundColor MOTIVATION
+
+ActorBackgroundColor Gainsboro
+ActorFontColor black
+ActorFontSize 20
+}
+
+autonumber
+
+actor us as "Akteur in der\nRolle Versicherter"
+box Endgerät #WhiteSmoke
+ participant app [
+ ePA-FdV
+ ----
+ TI-M Client
+ ]
+ participant auth [
+ ePA-FdV
+ ----
+ Authenticator-Modul
+ ]
+end box
+note left of auth
+Die Grafik zeigt exemplarisch das Authenticator-Modul als Teil des ePA-FdV. Zulässig ist ebenfalls ein Authenticator-Modul als eigenständige App auf dem Endgerät.
+end note
+participant hs as "Messenger-Service\n(Relying party für IDP)"
+
+participant idp as "Sektoraler\nIDP"
+
+|||
+
+us -> app: starte App
+
+activate app
+ group OIDC Login
+ app -> hs ++: GET ""{homeserver_client_api_url}""/login
+ hs --> app --: 200 OK (:Login Types)
+ note right
+ enthalten: ID des sektoralen IDP: ""{sidp}""
+ end note
+ |||
+ opt #LightYellow Auswahl durch Akteur: Registrierungs- statt Login-Funktion
+ app -> hs ++: POST ""{homeserver_client_api_url}""/register (initial_device_display_name, refresh_token)
+ hs --> app --: 401 Unauthorized
+ note right
+ Homeserver benötigt zusätzliche Authentisierungsinformationen
+ end note
+ |||
+ end
+ |||
+ app -> hs++: GET ""{homeserver_client_api_url}""/login/sso/redirect/""{sidp}""
+ |||
+ group #Linen Verhaltensänderung, da der sektorale IDP OIDC PAR erfordert
+ hs -> idp ++: POST ""{sektoraler_idp_url}""/par (response_type, redirect_uri, code_challenge, scope)
+ idp --> hs --: 201 CREATED (:request_uri)
+ hs --> app --: 302 Redirect ""{sektoraler_idp_url}""/login/oauth/authorize (:request_uri)
+ |||
+ end
+ |||
+ group #LightBlue IDP Authentisierung mit nutzerspezifischer Authentifizierung
+ app -> auth ++ : Authorization Request(request_uri)
+
+ |||
+ group #DarkGray Authenticator Modul IDP-sek
+ auth -> idp ++: GET ""{sektoraler_idp_url}""/login/oauth/authorize (request_uri)
+ idp --> auth: Challenge
+ auth -> us: Consent Page
+ us --> auth: Approval
+ auth -> idp: Response
+ note left
+ Nutzung von Identifikationsmerkmalen,
+ die vom IDP vorgegeben sind
+ end note
+ idp --> auth --: 302 Redirect ""{redirect_uri}"" (:auth_code, :state)
+ |||
+ end
+ |||
+ auth ->app: Redirect(redirect_uri, AUTH_CODE)
+ |||
+ end
+ |||
+ app -> hs ++: GET ""{redirect_uri}"" (auth_code, state)
+ |||
+ hs -> idp ++: POST ""{sektoraler_idp_url}""/token-endpoint (auth_code, code_verifier)
+ idp --> hs --: 200 OK (:id_token)
+ opt #LightYellow kein passender Benutzer-Account zum id_token vorhanden
+ hs -> hs: Benutzer-Account anlegen
+ |||
+ else Display Name aus dem id_token stimmt nicht mit den Daten im Benutzer-Account überein.
+ hs -> hs: Display Name im Benutzer-Account aktualisieren
+ end
+ |||
+ hs --> app --: 200 OK (:loginToken)
+ note right
+ HTML Consent Page, Zugriff
+ TIM-Web-App auf Matrix Account
+ end note
+ |||
+ app -> hs ++: POST ""{homeserver_client_api_url}""/login (loginToken, initial_device_display_name)
+ hs --> app --: 200 OK (:user_id, :access_token, :home_server, :device_id, :well_known)
+ |||
+ end
+ app --> us: Login erfolgreich
+@enduml
diff --git a/src/images/TI-M_ePA/UC_10233_Seq.puml b/src/images/TI-M_ePA/UC_10233_Seq.puml
new file mode 100644
index 00000000..2d237b80
--- /dev/null
+++ b/src/images/TI-M_ePA/UC_10233_Seq.puml
@@ -0,0 +1,57 @@
+/'
+# TI-Messenger 1.1
+# TI-Messenger-Dienst
+# UC - XXX
+# Sequence Diagram
+# Name: Versichertenzugehörigkeit prüfen
+'/
+
+@startuml
+skinparam sequenceMessageAlign direction
+skinparam minClassWidth 200
+skinparam BoxPadding 1
+skinparam sequenceReferenceHeaderBackgroundColor palegreen
+scale max 2048 width
+
+skinparam sequence {
+ArrowColor black
+ArrowFontSize 17
+ActorBorderColor black
+LifeLineBorderColor black
+LifeLineBackgroundColor Gainsboro
+
+ParticipantBorderColor Motivation
+ParticipantBackgroundColor Motivation
+ParticipantFontSize 20
+ParticipantFontColor black
+ParticipantBorderColor Black
+ParticipantBackgroundColor MOTIVATION
+
+ActorBackgroundColor Gainsboro
+ActorFontColor black
+ActorFontSize 20
+
+}
+
+autonumber
+
+ box Messenger-Service\n#WhiteSmoke
+ participant MP as "Messenger-Proxy"
+ participant MH as "Matrix-Homeserver"
+ end box
+
+
+|||
+Activate MP
+MP->MP: prüfe den Sender und den Empfänger des Invite-Event\n auf Zugehörigkeit zu einer Versichertendomain
+|||
+break #MistyRose Sender und Empfänger sind beide Versicherte
+MP->MP: HTTP 403 Forbidden
+end
+
+MP->MH: HTTP(S) Forward
+Activate MH
+MH-->MP: Status
+Deactivate MH
+
+@enduml
diff --git a/src/images/TI-M_ePA/UC_Approvel_List_Seq_fdv.puml b/src/images/TI-M_ePA/UC_Approvel_List_Seq_fdv.puml
new file mode 100644
index 00000000..993f4c7d
--- /dev/null
+++ b/src/images/TI-M_ePA/UC_Approvel_List_Seq_fdv.puml
@@ -0,0 +1,108 @@
+/'
+# TI-Messenger für Versicherte
+# TI-Messenger-Dienst
+# Sequence Diagram
+# Name: Stufen der Berechtigungsprüfung ePA
+'/
+
+@startuml
+skinparam sequenceMessageAlign direction
+skinparam minClassWidth 200
+skinparam BoxPadding 15
+skinparam sequenceReferenceHeaderBackgroundColor palegreen
+scale max 2048 width
+
+skinparam sequence {
+ ArrowColor black
+ ArrowFontSize 17
+ ActorBorderColor black
+ LifeLineBorderColor black
+ LifeLineBackgroundColor Gainsboro
+
+ ParticipantBorderColor Motivation
+ ParticipantBackgroundColor Motivation
+
+ ParticipantFontSize 20
+ ParticipantFontColor black
+ ParticipantBorderColor Black
+ ParticipantBackgroundColor MOTIVATION
+
+ ActorBackgroundColor Gainsboro
+ ActorFontColor black
+ ActorFontSize 20
+ ActorFontName Aapex
+}
+box Messenger-Service\ndes einladenden Akteurs\n #WhiteSmoke
+participant MS as "Messenger-Service"
+end box
+box Messenger-Service\ndes eingeladenen Akteurs\n #WhiteSmoke
+participant MS2 as "Messenger-Service"
+end box
+box Push-Gateway des eingeladenden Akteurs\n #WhiteSmoke
+participant PG as "Push-\nGateway"
+end box
+box Messenger Client\ndes eingeladenen Akteurs\n #WhiteSmoke
+participant MC2 as "Messenger-Client"
+end box
+MS->MS2:Matrix-Invite-Event
+activate MS2
+activate MS
+|||
+== Berechtigungskonzept - Stufe 1 ==
+|||
+break #MistyRose Matrix-Domain nicht in der Föderation enthalten
+ MS2->MS2:Abbruch, \nVerbindung wird \nabgelehnt
+ MS2-->MS: HTTP 403
+ |||
+ end
+break #MistyRose Einladender und der Eingeladene sind beide Versicherte
+ MS2->MS2:Abbruch, \nVerbindung wird \nabgelehnt
+ MS2->MS: HTTP 403
+ |||
+ end
+
+== Berechtigungskonzept - Stufe 2 ==
+MS2-->MS2: Invite-Event \nverarbeiten
+opt #SkyBlue Durchsetzen der akteursspezifischen Berechtigungskonfiguration
+MS2->MS2: Prüfung, ob die Einladung erlaubt ist
+break #MistyRose Der Akteur hat "allow all" konfiguriert und der einladende Akteur\n ist auf der BlockedUser-Liste (Direkt oder als Teil einer Domain)
+ |||
+ MS2->MS2:Einladung ist abzulehnen
+ |||
+ end
+
+ break #MistyRose Der Akteur hat "block all" konfiguriert und der einladende Akteur\n ist nicht auf der AllowedUser-Liste (Direkt oder als Teil einer Domain)
+ |||
+ MS2->MS2:Einladung ist abzulehnen
+ |||
+ end
+end
+
+ MS2->PG++: Push Notification
+ PG->MC2: Push Notification
+ activate MC2
+ PG-->MS2: Response
+ deactivate PG
+
+ MC2->MS2: Abfrage neuer Events
+ MS2-->MC2: Bereitstellung neuer Events
+
+ opt #SkyBlue Durchsetzen der akteursspezifischen Berechtigungskonfiguration
+ MC2->MC2: Prüfung, ob die Einladung erlaubt ist
+ break #MistyRose Der Akteur hat "allow all" konfiguriert und der einladende Akteur\n ist auf der BlockedUser-Liste (Direkt oder als Teil einer Domain)
+ |||
+ MC2->MC2:Einladung ist abzulehnen
+ |||
+ end
+
+ break #MistyRose Der Akteur hat "block all" konfiguriert und der einladende Akteur\n ist nicht auf der AllowedUser-Liste (Direkt oder als Teil einer Domain)
+ |||
+ MC2->MC2:Einladung ist abzulehnen
+ |||
+ end
+end
+|||
+MC2-->MS2: Einladungsergebnis
+MS2-->MS: Einladungsergebnis
+|||
+@enduml
\ No newline at end of file
diff --git a/src/openapi/TiMessengerContactManagement.yaml b/src/openapi/TiMessengerContactManagement.yaml
index d01b2a93..78f280af 100644
--- a/src/openapi/TiMessengerContactManagement.yaml
+++ b/src/openapi/TiMessengerContactManagement.yaml
@@ -104,7 +104,7 @@ paths:
$ref: "#/components/schemas/Contact"
responses:
"200":
- description: "Contact setting for {mxid successfully created"
+ description: "Contact setting for {mxid} successfully created"
content:
application/json:
schema:
diff --git a/src/openapi/TiMessengerInformation.yaml b/src/openapi/TiMessengerInformation.yaml
new file mode 100644
index 00000000..4d428790
--- /dev/null
+++ b/src/openapi/TiMessengerInformation.yaml
@@ -0,0 +1,186 @@
+openapi: 3.0.3
+info:
+ title: I_TiMessengerInformation
+ description: |
+ This is a REST interface that provides information to TI-Messenger clients.
+
+ The client uses a Matrix-OpenID-Token for authentication on all REST
+ operations. The bearer token can be obtained from the homeserver via
+ POST /_matrix/client/v3/user/{userId}/openid/request_token).
+ version: 1.0.0
+ ### 1.0.0
+ # - initial version
+ contact:
+ name: gematik GmbH
+ email: software-development@gematik.de
+ url: "https://www.gematik.de"
+ license:
+ name: Apache 2.0
+ url: "https://www.apache.org/licenses/LICENSE-2.0"
+
+externalDocs:
+ description: TI-Messenger-API
+ url: https://github.com/gematik/api-ti-messenger
+
+servers:
+ - url: https://{server}/tim-information
+ variables:
+ server:
+ description: "The server hosting this interface."
+ default: tobereplaced.de
+
+tags:
+ - name: info
+ description: "Information about this interface itself."
+ - name: lookUpServer
+ description: "Operations for server lookup."
+
+paths:
+ /:
+ get:
+ tags:
+ - info
+ summary: "Retrieve metadata about this interface."
+ responses:
+ "200":
+ description: "OK"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/InfoObject"
+ "403":
+ $ref: "#/components/responses/Forbidden"
+
+ /v1/server/findByIk:
+ get:
+ tags:
+ - lookUpServer
+ summary: "Resolve an IK number to the associated TI-Messenger server name."
+ parameters:
+ - in: query
+ name: ikNumber
+ description: "IK number to look up."
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: "OK"
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - serverName
+ properties:
+ serverName:
+ type: string
+ description: "The TI-Messenger server name for the given IK number."
+ example: "gematiker-kk.de"
+ "400":
+ $ref: "#/components/responses/BadRequest"
+ "401":
+ $ref: "#/components/responses/Unauthorized"
+ "404":
+ $ref: "#/components/responses/NotFound"
+
+ /v1/server/isInsurance:
+ get:
+ tags:
+ - lookUpServer
+ summary: "Check whether a TI-Messenger server name represents an insurance."
+ parameters:
+ - in: query
+ name: serverName
+ description: "The server name to query."
+ required: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: "OK"
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - isInsurance
+ properties:
+ isInsurance:
+ type: boolean
+ description: "`true` if the server name represents an insurance or `false` otherwise."
+ "400":
+ $ref: "#/components/responses/BadRequest"
+ "401":
+ $ref: "#/components/responses/Unauthorized"
+
+# Descriptions of common components
+components:
+ responses:
+ NotFound:
+ description: "The specified resource was not found"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ Unauthorized:
+ description: "Unauthorized"
+ Forbidden:
+ description: "Forbidden - you are not allowed to do this"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+ BadRequest:
+ description: "Bad Request"
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/Error"
+
+ schemas:
+ InfoObject:
+ required:
+ - title
+ - version
+ readOnly: true
+ type: object
+ properties:
+ title:
+ type: string
+ description: "The service's title."
+ example: "Contact Information API des TI-Messengers"
+ description:
+ type: string
+ description: "Short description of the service."
+ example: "Contact Information API des TI-Messengers. Betreiber: "
+ contact:
+ type: string
+ description: "Contact information of the operator."
+ version:
+ type: string
+ description: "Version of the `TiMessengerContactInformation.yaml` interface."
+ example: "1.0.0"
+
+ Error:
+ type: object
+ properties:
+ errorCode:
+ description: "A code identifying this error."
+ type: string
+ errorMessage:
+ description: "A readable message describing the error."
+ type: string
+ required:
+ - errorCode
+ - errorMessage
+
+ securitySchemes:
+ bearerMatrixOpenIdTokenAuth: # arbitrary name for the security scheme
+ type: http
+ scheme: bearer
+ bearerFormat: JWT # optional, arbitrary value for documentation purposes
+
+# the security applies to all operations
+security:
+ - bearerMatrixOpenIdTokenAuth: [] # use the same name as above
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.puml
deleted file mode 100644
index 31ac0ea6..00000000
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_10061_Seq.puml
+++ /dev/null
@@ -1,196 +0,0 @@
-/'
-# TI-Messenger 1.1
-# TI-Messenger-Dienst
-# UC - 10061
-# Sequence Diagram
-# Name: Einladung von Akteuren außerhalb einer Organisation
-'/
-
-@startuml
-skinparam sequenceMessageAlign direction
-skinparam minClassWidth 200
-skinparam BoxPadding 15
-skinparam sequenceReferenceHeaderBackgroundColor palegreen
-scale max 2048 width
-
-skinparam sequence {
-ArrowColor black
-ArrowFontSize 17
-ActorBorderColor black
-LifeLineBorderColor black
-LifeLineBackgroundColor Gainsboro
-
-ParticipantBorderColor Motivation
-ParticipantBackgroundColor Motivation
-ParticipantFontSize 20
-ParticipantFontColor black
-ParticipantBorderColor Black
-ParticipantBackgroundColor MOTIVATION
-
-ActorBackgroundColor Gainsboro
-ActorFontColor black
-ActorFontSize 20
-}
- actor U1 as "\nAkteur - A in der Rolle\nUser / User-HBA\n"
- participant C1 as "TI-Messenger-\nClient" #AliceBlue
- box Messenger-Service A #WhiteSmoke
- participant MP1 as "Messenger-\nProxy"
- participant MH1 as "Matrix-\nHomeserver"
- end box
- box Messenger-Service B #WhiteSmoke
- participant MP2 as "Messenger-\nProxy"
- participant MH2 as "Matrix-\nHomeserver"
- participant PG2 as "Push-\nGateway"
- end box
- participant C2 as "TI-Messenger-\nClient" #TECHNOLOGY
- actor U2 as "\nAkteur - B in der Rolle\nUser / User-HBA\n"
-
-|||
-note over U1, MH1: \nDer Akteur A ist erfolgreich beim Messenger Service A angemeldet\n
-note over U2, MP2: \nDer Akteur B ist erfolgreich beim Messenger Service B angemeldet\n
-|||
-
- alt#LightGrey #AliceBlue Suche über VZD-FHIR-Directory
- |||
- ref over U1, MH1 : Anhang B - Einträge im VZD-FHIR-Directory suchen\n
- |||
-
- else Direktaustausch über QR-Code Scan
- |||
- note over U1, U2: \nAkteur A und Akteur B treffen sich persönlich\n
- |||
- autonumber
- U1-[#0000FF]>C1: QR-Code teilen
- activate C1 #AliceBlue
- U2-[#DarkGreen]>C2: QR-Code scannen
- activate C2 #TECHNOLOGY
- C2-[#DarkGreen]>C1: GET /scan
- C1--[#0000FF]>C2: MXID von Akteur A
- |||
- group MXID in Freigabeliste eintragen
- |||
- C2->MP2: POST /tim-contact-mgmt/createContactSetting \n(MXID, start, end, Matrix-OpenID-Token)
- activate MP2
- |||
- MP2->MH2: GET /openid/userinfo/\n?Matrix-OpenID-Token
- activate MH2
- MH2->MH2: prüfe \nMatrix-OpenID-Token
- MH2-->MP2: status
- deactivate MH2
- |||
- MP2->MP2: MXID von Akteur A \nin Freigabeliste \nfür Akteur B \naufnehmen
- |||
- MP2-->C2: status
- deactivate MP2
- |||
- end
- |||
- U2-[#DarkGreen]>C2: QR-Code teilen
- U1-[#0000FF]>C1: QR-Code scannen
- C1-[#0000FF]>C2: GET /scan
- C2--[#DarkGreen]>C1: MXID von Akteur B
- deactivate C2
- |||
- group MXID in Freigabeliste eintragen
- |||
- C1->MP1: POST /tim-contact-mgmt/createContactSetting \n(MXID, start, end, Matrix-OpenID-Token)
- activate MP1
- MP1->MH1: GET /openid/userinfo/\n?Matrix-OpenID-Token
- activate MH1
- MH1->MH1: prüfe \nMatrix-OpenID-Token
- MH1-->MP1: status
- deactivate MH1
- |||
- MP1->MP1: MXID von Akteur B \nin Freigabeliste \nfür Akteur A \naufnehmen
- |||
- MP1-->C1: status
- deactivate MP2
- deactivate C2
- |||
- end
- |||
- end
- |||
- note over U1, MH1: \nEin Chatraum wurde bereits durch den Akteur A eingerichtet.\n
-
- |||
- C1->MP1: POST /_matrix/client/r0/\nrooms/{roomId}/invite
- |||
- ref over MP1, MP1: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n
- note right: Stufe 1 - Prüfung gemäß \nClient-Server Kommunikation
- |||
- break#LightGrey #MistyRose Abbruch
- |||
- MP1-->C1: HTTP 403 \nForbidden
- |||
- C1-->U1: Einladung nicht \nerfolgreich
- |||
- end
- |||
-
- MP1->MH1: HTTP(S) Forward
- activate MH1
- MH1->MH1: Invite verarbeiten
- MH1->MP1: POST /_matrix/federation/v1\n/invite/{roomId}/{eventId}
- deactivate MH1
- |||
- ref over MP1, MP1: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n
- note left: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation
- |||
- MP1->MP2: HTTP(S) Forward
- note right: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation
- |||
- activate MP2
- ref over MP2, MP2: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n
- |||
-
- break#LightGrey #MistyRose Abbruch
- |||
- MP2-->MP1: HTTP 403 \nForbidden
- |||
- MP1-->C1: HTTP(S) forward
- |||
- C1-->U1: Einladung nicht \nerfolgreich
- |||
- end
-
- |||
- ref over MP2, MH2 : Anhang B - Stufen der Berechtigungsprüfung\n Stufe 2 und 3\n
- |||
- MP2->MH2: HTTP(S) Forward
- activate MH2
- MH2->MH2: Invite verarbeiten
- |||
- opt#LightGrey #AliceBlue Pushbenachrichtigung
- |||
- MH2->PG2: POST /_matrix/push/notify
- activate PG2
- PG2->C2: Notification
- PG2-->MH2: Status
- deactivate PG2
- |||
- end
- |||
- MH2->MP2: Invite Request
- MP2->C2: HTTP(S) Forward
- activate C2 #TECHNOLOGY
- C2->U2: Einladung anzeigen
- U2-->C2: Einladung bestätigen
- C2->MP2: commit
- MP2->MP2: TLS Terminierung
- MP2-->MH2: HTTP(S) Forward
- MH2-->MH2: Invite auslösen
- MH2-->MP2: Status
- deactivate MH2
-
- MP2-->C2: Status
- C2-->U2: Nutzer ist dem \nRaum beigetreten
- deactivate C2
- MP2-->MP1: Status
- deactivate MP2
- MP1-->C1: Nutzer in den \nRaum hinzugefügt
- deactivate MP1
- deactivate C1
- |||
-|||
-@enduml
diff --git a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.puml b/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.puml
deleted file mode 100644
index 7dd27031..00000000
--- a/src/plantuml/TI-Messenger-Dienst/Ressourcen/UC_Approvel_List_Seq.puml
+++ /dev/null
@@ -1,167 +0,0 @@
-/'
-# TI-Messenger 1.1
-# TI-Messenger-Dienst
-# Sequence Diagram
-# Name: Stufen der Berechtigungsprüfung
-'/
-
-@startuml
-skinparam sequenceMessageAlign direction
-skinparam minClassWidth 200
-skinparam BoxPadding 15
-skinparam sequenceReferenceHeaderBackgroundColor palegreen
-scale max 2048 width
-
-skinparam sequence {
-ArrowColor black
-ArrowFontSize 17
-ActorBorderColor black
-LifeLineBorderColor black
-LifeLineBackgroundColor Gainsboro
-
-ParticipantBorderColor Motivation
-ParticipantBackgroundColor Motivation
-ParticipantFontName Impact
-ParticipantFontSize 20
-ParticipantFontColor black
-ParticipantBorderColor Black
-ParticipantBackgroundColor MOTIVATION
-
-ActorBackgroundColor Gainsboro
-ActorFontColor black
-ActorFontSize 20
-ActorFontName Aapex
-}
- participant C as "TI-Messenger-\nClient"
- box Messenger-Service\n #WhiteSmoke
- participant MP as "Messenger-\nProxy"
- participant MH as "Matrix-\nHomeserver"
- end box
- box Messenger-Service\n #WhiteSmoke
- participant MP2 as "Messenger-\nProxy"
- participant RD2 as "Registrierungs-\nDienst"
- participant MH2 as "Matrix-\nHomeserver"
- end box
- participant VZD as "VZD-FHIR-\nDirectory"
-
-|||
-C->MP: Invite-Event
- activate MP #LIGHTGREEN
-
-== Berechtigungskonzept - Stufe 1 ==
- |||
- ref over MP, MP: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n
- note right: Stufe 1 - Prüfung gemäß \nClient-Server Kommunikation
- |||
-
-alt#LightGrey #MISTYROSE Matrix-Domain nicht in der Föderation enthalten
-|||
- |||
- MP-->C: HTTP 403 \nForbidden
- activate C
- |||
- C-->C: Abmeldung der Session
- deactivate C
-|||
-end
-
-|||
-MP->MH: HTTP(S) Forward
- activate MH
-
-|||
-MH->MH: Prüfung auf \nOrganisationszugehörigkeit
-
-|||
- alt#LightGrey #AliceBlue Akteure gehören einer gemeinsamen Organisation an
- |||
- MH->MH: Invite wird \nverarbeitet
- MH-->MP: status
- MP-->C: status
- |||
-
- else Akteure gehören nicht einer gemeinsamen Organisation an
- |||
- MH->MP: Matrix-Invite-Event \nwird weitergeleitet
- deactivate MH
- |||
- ref over MP, MP: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n
- note left: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation
- |||
- MP->MP2: Matrix-Invite-Event \nwird weitergeleitet
- activate MP2 #SALMON
-
- |||
- == Berechtigungskonzept - Stufe 1 ==
- |||
-
- ref over MP2, MP2: **AF_10064** - \tFöderationszugehörigkeit eines \n \tMessenger-Service prüfen\n
- note right: Stufe 1 - Prüfung gemäß \nServer-Server Kommunikation
- |||
-
- alt#LightGrey #MISTYROSE Matrix-Domain nicht in der Föderation enthalten
- |||
- |||
- MP2-->MP: HTTP 403 \nForbidden
- MP-->C: HTTP(S) forward
- activate C
- |||
- C-->C: Abmeldung der Session
- deactivate C
- |||
- end
-
- |||
- == Berechtigungskonzept - Stufe 2 ==
-
- activate MP2
- MP2->MP2: \nPrüfung, ob MXID \ndes Einladenden \nin der Freigabeliste \nenthalten ist
- |||
-
- alt#LightGrey #MOTIVATION MXID des Einladenden ist in der Freigabeliste enthalten
- |||
- MP2->MH2: HTTP(S) Forward
- activate MH2
- |||
- else MXID des Einladenden ist nicht in der Freigabeliste enthalten
- |||
- == Berechtigungskonzept - Stufe 3 ==
- MP2->RD2: \nPrüfung, ob MXID \nder Akteure im \nVZD-FHIR-Dirctory \nenthalten ist
- activate RD2
- RD2->VZD: POST /tim-provider-services/whereIs
- activate VZD
- VZD->VZD: Suche
- VZD-->RD2: Ergebnis, status
- deactivate VZD
- RD2->RD2: Prüfung
- RD2-->MP2: Ergebnis, status
- deactivate RD2
- |||
- alt#LightGrey #LightBlue MXID ist im VZD-FHIR-Directory und Ergebnis == true
- |||
- MP2->MH2: HTTP(S) Forward
- |||
- else MXID ist nicht im VZD-FHIR-Directory enthalten
- |||
- MP2->MP2: Abbruch, \nVerbindung wird \nabgelehnt
- |||
- end
- |||
- end
- |||
- end
- |||
-
-
-MH2-->MH2: Invite-Event \nverarbeiten
-|||
-MH2-->MP2: status
-deactivate MH2
-MP2-->MP: status
-deactivate MP2
-
-MP-->C: status
-deactivate MP
-
-|||
-@enduml
\ No newline at end of file
diff --git a/src/schema/TI-M_Pro/permissionConfig_V1.json b/src/schema/TI-M_Pro/permissionConfig_V1.json
new file mode 100644
index 00000000..04b24d70
--- /dev/null
+++ b/src/schema/TI-M_Pro/permissionConfig_V1.json
@@ -0,0 +1,53 @@
+{
+ "$id": "https://gematik.de/ti-m/permissionConfig.json",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Permission Configuration",
+ "type": "object",
+ "properties": {
+ "defaultSetting": {
+ "type": "string",
+ "enum": [
+ "allow all",
+ "block all"
+ ]
+ },
+ "serverExceptions": {
+ "type": "object",
+ "description": "The map of servers to in-/exclude. This is a mapping of Matrix server name (https://spec.matrix.org/v1.3/appendices/#server-name) to empty object.",
+ "patternProperties": {
+ "^.*$": {
+ "type": "object",
+ "description": "An empty object for future enhancement"
+ }
+ },
+ "additionalProperties": false
+ },
+ "userExceptions": {
+ "type": "object",
+ "description": "The map of users to in-/exclude. This is a mapping of Matrix user ID (https://spec.matrix.org/v1.3/appendices/#user-identifiers) to empty object.",
+ "patternProperties": {
+ "^@.*$": {
+ "type": "object",
+ "description": "An empty object for future enhancement"
+ }
+ },
+ "additionalProperties": false
+ },
+ "groupExceptions": {
+ "type": "array",
+ "uniqueItems": true,
+ "items": {
+ "groupName": {
+ "description": "The name of the group to be in-/excluded",
+ "type": "string",
+ "enum": [
+ "isInsuredPerson"
+ ]
+ }
+ }
+ }
+ },
+ "required": [
+ "defaultSetting"
+ ]
+}
\ No newline at end of file
diff --git a/src/schema/TI-M_ePA/permissionConfig_V1.json b/src/schema/TI-M_ePA/permissionConfig_V1.json
new file mode 100644
index 00000000..b626bdef
--- /dev/null
+++ b/src/schema/TI-M_ePA/permissionConfig_V1.json
@@ -0,0 +1,40 @@
+{
+ "$id": "https://gematik.de/ti-m/permissionConfig.json",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Permission Configuration",
+ "type": "object",
+ "properties": {
+ "defaultSetting": {
+ "type": "string",
+ "enum": [
+ "allow all",
+ "block all"
+ ]
+ },
+ "serverExceptions": {
+ "type": "object",
+ "description": "The map of servers to in-/exclude. This is a mapping of Matrix server name (https://spec.matrix.org/v1.3/appendices/#server-name) to empty object.",
+ "patternProperties": {
+ "^.*$": {
+ "type": "object",
+ "description": "An empty object for future enhancement"
+ }
+ },
+ "additionalProperties": false
+ },
+ "userExceptions": {
+ "type": "object",
+ "description": "The map of users to in-/exclude. This is a mapping of Matrix user ID (https://spec.matrix.org/v1.3/appendices/#user-identifiers) to empty object.",
+ "patternProperties": {
+ "^@.*$": {
+ "type": "object",
+ "description": "An empty object for future enhancement"
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "defaultSetting"
+ ]
+}
\ No newline at end of file
diff --git a/src/schema/examples/permissionConfig.group-exception.json b/src/schema/examples/permissionConfig.group-exception.json
new file mode 100644
index 00000000..715b4a24
--- /dev/null
+++ b/src/schema/examples/permissionConfig.group-exception.json
@@ -0,0 +1,8 @@
+{
+ "defaultSetting": "allow all",
+ "groupExceptions": [
+ {
+ "groupName": "isInsuredPerson"
+ }
+ ]
+}