From a43a8b9b42385b8cf566f0ca24d19565ea1c45af Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Wed, 3 May 2023 20:47:50 +0200 Subject: [PATCH] Updated the documentation --- docs/images/groups-roles.png | Bin 0 -> 44821 bytes docs/system.md | 182 ++++++++++++++++++++++++++++++++--- misc/.$diagrams.drawio.dtmp | 98 +++++++++++++++++++ misc/diagrams.drawio | 99 ++++++++++++++++++- 4 files changed, 364 insertions(+), 15 deletions(-) create mode 100644 docs/images/groups-roles.png create mode 100644 misc/.$diagrams.drawio.dtmp diff --git a/docs/images/groups-roles.png b/docs/images/groups-roles.png new file mode 100644 index 0000000000000000000000000000000000000000..3c73de60a81e3a9f1343b3f39f4f373daa42b680 GIT binary patch literal 44821 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 Q1_lNOPgg&ebxsLQ05I!1Hvj+t literal 0 HcmV?d00001 diff --git a/docs/system.md b/docs/system.md index e423074..326570d 100644 --- a/docs/system.md +++ b/docs/system.md @@ -53,7 +53,8 @@ Very specific to the deployment of the organization. In our reference implementa markup language* (SAML) service provider and use our institutional SAML identity provider for obtaining account data through an encrypted channel. -From version 1.2 onwards we use Keycloak for authentication and deprecated the previous Spring Boot application. Consequently, +From version 1.2 onwards we use Keycloak for authentication and deprecated the previous Spring Boot application. +Consequently, the authentication will be through Keycloak. !!! warning "Unsupported Keycloak features" @@ -63,17 +64,163 @@ the authentication will be through Keycloak. * E-Mail verification * Temporary passwords -By default, the Authentication Service comes with a self-signed certificate valid 3 months from build date. For deployment -it is *highly encouraged* to use your own certificate, properly issued by a trusted PKI, e.g. GEÁNT. For local deployments -you can use the self-signed certificate. You need to accept the risk in most browsers when visiting the -[admin panel](https://localhost:8443/admin/). +By default, the Authentication Service comes with a self-signed certificate valid 3 months from build date. For +deployment it is *highly encouraged* to use your own certificate, properly issued by a trusted PKI, e.g. GEÁNT. For +local deployments you can use the self-signed certificate. You need to accept the risk in most browsers when visiting +the [admin panel](https://localhost:8443/admin/). -Sign in with the default credentials (username `fda`, password `fda`) or the one you configured during set-up. Be default, -users are created using the frontend and the sign-up page. But it is also possible to create users from Keycloak, they will -still act as "self-sign-up" created users. Since we do not support all features of Keycloak, leave out required user actions -as they will not be enforced, also the temporary password. +Sign in with the default credentials (username `fda`, password `fda`) or the one you configured during set-up. Be +default, users are created using the frontend and the sign-up page. But it is also possible to create users from +Keycloak, they will still act as "self-sign-up" created users. Since we do not support all features of Keycloak, leave +out required user actions as they will not be enforced, also the temporary password. -#### Obtain Access Token +Each user has attributes associated to them. In case you manually create a user in Keycloak directly, you need to add +them in Users > Add user > Attributes: + +* `theme_dark` (*boolean*, default: false) +* `orcid` (*string*) +* `affiliation` (*string*) + +#### Groups + +The authorization scheme follows a group-based access control (GBAC). Users are organized in three distinct +(non-overlapping) groups: + +1. Researchers (*default*) +2. Developers +3. Data Stewards + +Based on the membership in one of these groups, the user is assigned a set of roles that authorize specific actions. By +default, all users are assigned to the `researchers` group. + +#### Roles + +We organize the roles into default- and escalated composite roles. There are three composite roles, one for each group. +Each of the composite role has a set of other associated composite roles. + +<figure markdown> + +<figcaption>Three groups (Researchers, Developers, Data Stewards) and their composite roles associated.</figcaption> +</figure> + +There is one role for one specific action in the services. For example: the `create-database` role authorizes a user to +create a database in a Docker container. Therefore, +the [`DatabaseEndpoint.java`](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/blob/a5bdd1e2169bae6497e2f7eee82dad8b9b059850/fda-database-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java#L78) +endpoint requires a JWT access token with this authority. + +```java +@PostMapping +@PreAuthorize("hasAuthority('create-database')") +public ResponseEntity<DatabaseBriefDto> create(@NotNull Long containerId, + @Valid @RequestBody DatabaseCreateDto createDto, + @NotNull Principal principal) { +... +} +``` + +##### Default Container Handling + +| Name | Description | +|--------------------------|--------------------------------------| +| `create-container` | Can create a container | +| `find-container` | Can find a specific container | +| `list-containers` | Can list all containers | +| `modify-container-state` | Can start and stop the own container | + +##### Default Database Handling + +| Name | Description | +|------------------------------|------------------------------------------------------| +| `check-database-access` | Can check the access to a database of a user | +| `create-database` | Can create a database | +| `create-database-access` | Can give a new access to a database of a user | +| `delete-database-access` | Can delete the access to a database of a user | +| `find-database` | Can find a specific database in a container | +| `list-databases` | Can list all databases in a container | +| `modify-database-visibility` | Can modify the database visibility (public, private) | +| `modify-database-owner` | Can modify the database owner | +| `update-database-access` | Can update the access to a database of a user | + +##### Default Table Handling + +| Name | Description | +|---------------------------------|------------------------------------------------------| +| `create-table` | Can create a table | +| `find-tables` | Can list a specific table in a database | +| `list-tables` | Can list all tables | +| `modify-table-column-semantics` | Can modify the column semantics of a specific column | + +##### Default Query Handling + +| Name | Description | +|---------------------------|-----------------------------------------------| +| `create-database-view` | Can create a view in a database | +| `delete-database-view` | Can delete a view in a database | +| `delete-table-data` | Can delete data in a table | +| `execute-query` | Can execute a query statement | +| `export-query-data` | Can export the data that a query has produced | +| `export-table-data` | Can export the data stored in a table | +| `find-database-view` | Can find a specific database view | +| `find-query` | Can find a specific query in the query store | +| `insert-table-data` | Can insert data into a table | +| `list-database-views` | Can list all database views | +| `list-queries` | Can list all queries in the query store | +| `persist-query` | Can persist a query in the query store | +| `re-execute-query` | Can re-execute a query to reproduce a result | +| `view-database-view-data` | Can view the data produced by a database view | +| `view-table-data` | Can view the data in a table | +| `view-table-history` | Can view the data history of a table | + +##### Default Identifier Handling + +| Name | Description | +|---------------------|---------------------------------------------| +| `create-identifier` | Can create an identifier (subset, database) | +| `find-identifier` | Can find a specific identifier | +| `list-identifier` | Can list all identifiers | + +##### Default User Handling + +| Name | Description | +|---------------------------|-----------------------------------------| +| `modify-user-theme` | Can modify the user theme (light, dark) | +| `modify-user-information` | Can modify the user information | + +##### Escalated Container Handling + +| Name | Description | +|----------------------------------|----------------------------------------------| +| `delete-container` | Can delete any container | +| `modify-foreign-container-state` | Can modify any container state (start, stop) | + +##### Escalated Database Handling + +| Name | Description | +|-------------------|------------------------------------------| +| `delete-database` | Can delete any database in any container | + +##### Escalated Table Handling + +| Name | Description | +|----------------|--------------------------------------| +| `delete-table` | Can delete any table in any database | + +##### Escalated Query Handling + +| Name | Description | +|------|-------------| + +##### Escalated Identifier Handling + +| Name | Description | +|------------------------------|---------------------------------------------------| +| `create-foreign-identifier` | Can create an identifier to any database or query | +| `delete-identifier` | Can delete any identifier | +| `modify-identifier-metadata` | Can modify any identifier metadata | + +#### API + +##### Obtain Access Token Access tokens are needed for almost all operations. @@ -101,7 +248,7 @@ Access tokens are needed for almost all operations. print(auth.json()["access_token"]) ``` -#### Refresh Access Token +##### Refresh Access Token Using the response from above, a new access token can be created via the refresh token provided. @@ -139,6 +286,11 @@ It holds exchanges and topics responsible for holding AMQP messages for later co use [RabbitMQ](https://www.rabbitmq.com/) in the reference implementation. The AMQP endpoint listens to port `5672` for regular declares and offers a management interface at port `15672`. +The default credentials are: + +* Username: `fda` +* Password: `fda` + ### Container Service !!! debug "Debug Information" @@ -213,13 +365,15 @@ identifier* (DOI) through our institutional library soon. * Ports: 3306/tcp, 9100/tcp * Prometheus: `http://:9100/metrics` -It is the core component of the project. It is a relational database that contains metadata about all researcher databases +It is the core component of the project. It is a relational database that contains metadata about all researcher +databases created in the database repository like column names, check expressions, value enumerations or key/value constraints and relevant data for citing data sets. Additionally, the concept, e.g. URI of units of measurements of numerical columns is stored in the Metadata Database in order to provide semantic knowledge context. We use MariaDB for its rich capabilities in the reference implementation. -The default credentials are `root:dbrepo` for the database `fda`. Connect to the database via the JDBC connector on port `3306`. +The default credentials are `root:dbrepo` for the database `fda`. Connect to the database via the JDBC connector on +port `3306`. ### Metadata Service @@ -264,7 +418,7 @@ Service. It processes search requests from the Gateway Service for full-text lookups in the Metadata Database. We use [Elasticsearch](https://www.elastic.co/) in the reference implementation. The Search Service implements Elastic Search -and creates a retrievable index on all databases that is getting updated with each save operation on databases in the +and creates a retrievable index on all databases that is getting updated with each save operation on databases in the metadata database. All requests need to be authenticated, by default the credentials `elastic:elastic` are used. diff --git a/misc/.$diagrams.drawio.dtmp b/misc/.$diagrams.drawio.dtmp new file mode 100644 index 0000000..263e415 --- /dev/null +++ b/misc/.$diagrams.drawio.dtmp @@ -0,0 +1,98 @@ +<mxfile host="Electron" modified="2023-05-03T17:30:20.676Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.1.2 Chrome/106.0.5249.199 Electron/21.4.3 Safari/537.36" etag="vHet0lnKQv43rmJkCjy7" version="21.1.2" type="device"> + <diagram id="knNdf-EWXshwNRS6GdW0" name="groups-roles"> + <mxGraphModel dx="1434" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="585" pageHeight="520" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="p7gkXpudOZQYVS-MGniQ-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-26" target="p7gkXpudOZQYVS-MGniQ-22"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-28" value="include" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="p7gkXpudOZQYVS-MGniQ-27"> + <mxGeometry x="-0.2248" y="1" relative="1" as="geometry"> + <mxPoint x="-9" y="-1" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-26" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=7;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="223.5" y="156" width="141" height="360" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-22" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=7;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2" y="156" width="141" height="360" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-1" target="p7gkXpudOZQYVS-MGniQ-4"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-1" value="Researchers" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="12" y="4" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-2" target="p7gkXpudOZQYVS-MGniQ-5"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-2" value="Developers" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="234" y="4" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-3" target="p7gkXpudOZQYVS-MGniQ-6"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-3" value="Data Steward" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="452" y="4" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-4" target="p7gkXpudOZQYVS-MGniQ-22"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-4" value="default-researcher-roles" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12" y="74" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-5" target="p7gkXpudOZQYVS-MGniQ-26"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="294.17499999999995" y="155.27999999999997" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-5" value="default-developer-roles" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="234" y="74" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-6" target="p7gkXpudOZQYVS-MGniQ-30"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-6" value="default-data-steward-roles" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="452" y="74" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-11" value="default-user-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="466" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-12" value="default-identifier-handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="406" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-13" value="default-database-handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="226" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-14" value="default-container-handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="166" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-15" value="default-table-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="286" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-17" value="default-query-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="346" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-18" value="escalated-container-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="234" y="166" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-19" value="escalated-database-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="234" y="226" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-20" value="escalated-query-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="234" y="346" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-21" value="escalated-table-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="234" y="286" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-30" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=7;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="441.5" y="156" width="141" height="360" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-31" value="escalated-identifier-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="452" y="166" width="120" height="40" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> diff --git a/misc/diagrams.drawio b/misc/diagrams.drawio index 71be41b..f9e4ecf 100644 --- a/misc/diagrams.drawio +++ b/misc/diagrams.drawio @@ -1 +1,98 @@ -<mxfile host="Electron" modified="2022-04-22T06:22:19.022Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/17.4.2 Chrome/100.0.4896.60 Electron/18.0.1 Safari/537.36" etag="kMcGUnc7b8fgl017WGgv" version="17.4.2" type="device" pages="2"><diagram id="31b32b95-0358-9bc7-6ba0-a27c054ed1a7" name="Page-1">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</diagram><diagram id="SixR3OZ22FMnOk72hDml" name="Architecture">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</diagram></mxfile> \ No newline at end of file +<mxfile host="Electron" modified="2023-05-03T17:30:17.440Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.1.2 Chrome/106.0.5249.199 Electron/21.4.3 Safari/537.36" etag="4X_A0JANa8ZCwBx5qeTt" version="21.1.2" type="device"> + <diagram id="knNdf-EWXshwNRS6GdW0" name="groups-roles"> + <mxGraphModel dx="1434" dy="822" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="585" pageHeight="520" math="0" shadow="0"> + <root> + <mxCell id="0" /> + <mxCell id="1" parent="0" /> + <mxCell id="p7gkXpudOZQYVS-MGniQ-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-26" target="p7gkXpudOZQYVS-MGniQ-22"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-28" value="include" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="p7gkXpudOZQYVS-MGniQ-27"> + <mxGeometry x="-0.2248" y="1" relative="1" as="geometry"> + <mxPoint x="-9" y="-1" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-26" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=7;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="223.5" y="156" width="141" height="360" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-22" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=7;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="2" y="156" width="141" height="360" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-1" target="p7gkXpudOZQYVS-MGniQ-4"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-1" value="Researchers" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="12" y="4" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-2" target="p7gkXpudOZQYVS-MGniQ-5"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-2" value="Developers" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="234" y="4" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-3" target="p7gkXpudOZQYVS-MGniQ-6"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-3" value="Data Steward" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="452" y="4" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-4" target="p7gkXpudOZQYVS-MGniQ-22"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-4" value="default-researcher-roles" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12" y="74" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-5" target="p7gkXpudOZQYVS-MGniQ-26"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="294.17499999999995" y="155.27999999999997" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-5" value="default-developer-roles" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="234" y="74" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="p7gkXpudOZQYVS-MGniQ-6" target="p7gkXpudOZQYVS-MGniQ-30"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-6" value="default-data-steward-roles" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="452" y="74" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-11" value="default-user-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="466" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-12" value="default-identifier-handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="406" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-13" value="default-database-handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="226" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-14" value="default-container-handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="166" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-15" value="default-table-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="286" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-17" value="default-query-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="12.5" y="346" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-18" value="escalated-container-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="234" y="166" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-19" value="escalated-database-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="234" y="226" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-20" value="escalated-query-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="234" y="346" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-21" value="escalated-table-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="234" y="286" width="120" height="40" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-30" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=7;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#000000;" vertex="1" parent="1"> + <mxGeometry x="441.5" y="156" width="141" height="360" as="geometry" /> + </mxCell> + <mxCell id="p7gkXpudOZQYVS-MGniQ-31" value="escalated-identifier-<br>handling" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="452" y="166" width="120" height="40" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> -- GitLab