Skip to content
Snippets Groups Projects
Commit 51c0ae4c authored by Martin Weise's avatar Martin Weise
Browse files

Generate metadata

parent 57c8382a
No related branches found
No related tags found
4 merge requests!277Dev,!275Dev,!270Dev,!269Generate metadata
Showing
with 4136 additions and 11290 deletions
#!/bin/bash
mvn -f ./dbrepo-metadata-service/pom.xml install
mvn -f ./dbrepo-data-service/pom.xml -pl rest-service -Dtest="PrometheusEndpointMvcTest" test
mvn -f ./dbrepo-metadata-service/pom.xml -pl rest-service -Dtest="PrometheusEndpointMvcTest" test
components:
securitySchemes:
basicAuth:
in: header
scheme: basic
type: http
bearerAuth:
bearerFormat: JWT
in: header
scheme: bearer
type: http
externalDocs:
description: Sourcecode Documentation
url: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/__APPVERSION__/
info:
contact:
email: andreas.rauber@tuwien.ac.at
name: Prof. Andreas Rauber
description: Service that analyses data structures
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
title: Database Repository Analyse Service API
version: __APPVERSION__
openapi: 3.0.0
paths:
/api/analyse/database/{database_id}/table/{table_id}/statistics:
get:
operationId: analyse_table_stat
parameters:
- example: 1
in: path
name: database_id
required: true
schema:
format: int64
type: integer
- example: 1
in: path
name: table_id
required: true
schema:
format: int64
type: integer
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/TableStats'
description: Determined statistics
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
description: Missing parameters
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
description: Table not found
security:
- bearerAuth: []
- basicAuth: []
summary: Determine table statistics
tags:
- analyse-endpoint
/api/analyse/datatypes:
get:
consumes:
- application/json
description: This is a simple API which returns the datatypes of a (path) csv
file
operationId: analyse_datatypes
parameters:
- example: filename_s3_key
in: query
name: filename
required: true
schema:
type: string
- example: ','
in: query
name: separator
required: true
schema:
type: string
- example: 'false'
in: query
name: enum
required: false
schema:
type: boolean
- example: '2.5'
in: query
name: enum_tol
required: false
schema:
type: float
produces:
- application/json
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/DataTypesDto'
description: Determined data types successfully
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
description: Failed to determine data types
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
description: Failed to find file in Storage Service
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
description: Unexpected system error
summary: Determine datatypes
tags:
- analyse-endpoint
/api/analyse/keys:
get:
consumes:
- application/json
description: This is a simple API which returns the primary keys + ranking of
a (path) csv file
operationId: analyse_keys
parameters:
- example: filename_s3_key
in: query
name: filename
required: true
schema:
type: string
- example: ','
in: query
name: separator
required: true
schema:
type: string
produces:
- application/json
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/KeysDto'
description: Determined keys successfully
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
description: Failed to determine keys
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
description: Failed to find file in Storage Service or is empty
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDto'
description: Unexpected system error
summary: Determine primary keys
tags:
- analyse-endpoint
/health:
get:
consumes:
- application/json
description: This is a simple API which checks if the application is healthy
produces:
- application/json
responses:
'200':
description: OK
schema:
properties:
status:
example: UP
type: string
type: object
summary: Check if application is running
tags:
- health-endpoint
servers:
- description: Generated server url
url: http://localhost:5000
- description: Sandbox
url: https://test.dbrepo.tuwien.ac.at
This diff is collapsed.
This diff is collapsed.
components:
securitySchemes:
basicAuth:
in: header
scheme: basic
type: http
bearerAuth:
bearerFormat: JWT
in: header
scheme: bearer
type: http
externalDocs:
description: Sourcecode Documentation
url: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/__APPVERSION__/
info:
contact:
email: andreas.rauber@tuwien.ac.at
name: Prof. Andreas Rauber
description: Service that searches the search database
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
title: Database Repository Search Service API
version: __APPVERSION__
openapi: 3.0.0
paths:
/api/search:
get:
consumes:
- application/json
description: Performs a fuzzy search
operationId: post_fuzzy_search
parameters:
- in: query
required: true
schema:
properties:
q:
example: air quality
type: string
type: string
produces:
- application/json
responses:
'200':
content:
application/json:
schema:
properties:
results:
items:
type: object
type: array
type: object
description: OK, contains the elements formatted as an array of JSON arrays
'415':
description: Wrong accept type
summary: Performs a fuzzy search
tags:
- search-endpoint
/api/search/database/{database_id}:
delete:
consumes:
- application/json
description: Deletes a database
operationId: delete_database
produces:
- application/json
responses:
'202':
content:
application/json:
schema:
properties:
id:
example: 1
implementation: int64
type: integer
required:
- id
type: object
description: Deleted database successfully
'404':
content:
application/json:
schema:
properties:
message:
example: Message
type: string
success:
example: false
type: boolean
required:
- success
- message
type: object
description: Database not found
security:
- bearerAuth: []
- basicAuth: []
summary: Deletes a database
tags:
- database-endpoint
put:
consumes:
- application/json
description: Updates a database
operationId: update_database
parameters:
- in: body
name: body
required: true
schema:
properties:
internal_name:
example: air_quality_abcd
type: string
name:
example: Air Quality
type: string
type: object
produces:
- application/json
responses:
'202':
content:
application/json:
schema:
properties:
id:
example: 1
implementation: int64
type: integer
required:
- id
type: object
description: Updated database successfully
'400':
content:
application/json:
schema:
properties:
message:
example: Message
type: string
success:
example: false
type: boolean
required:
- success
- message
type: object
description: Invalid schema
'404':
content:
application/json:
schema:
properties:
message:
example: Message
type: string
success:
example: false
type: boolean
required:
- success
- message
type: object
description: Database not found
security:
- bearerAuth: []
- basicAuth: []
summary: Updates a database
tags:
- database-endpoint
/api/search/{index}:
get:
consumes:
- application/json
description: Gets the index
operationId: get_index
parameters:
- description: The search type.
in: path
name: type
required: true
schema:
enum:
- database
- table
- view
- column
- user
- identifier
- concept
- unit
type: string
- in: body
name: body
required: true
schema:
properties:
field_value_pairs:
type: object
search_term:
example: air quality
type: string
t1:
example: 0
type: integer
t2:
example: 100
type: integer
type: object
produces:
- application/json
responses:
'200':
content:
application/json:
schema:
properties:
results:
items:
type: object
type: array
type:
description: Same as the requested type
enum:
- database
- table
- view
- column
- user
- identifier
- concept
- unit
type: string
type: object
description: OK, contains the elements formatted as an array of JSON arrays
summary: Gets the index
tags:
- search-endpoint
/api/search/{type}:
post:
consumes:
- application/json
description: Performs a general search
operationId: post_general_search
parameters:
- description: The search type.
in: path
name: type
required: true
schema:
enum:
- database
- table
- view
- column
- user
- identifier
- concept
- unit
type: string
- in: query
name: t1
schema:
type: integer
- in: query
name: t2
schema:
type: integer
- in: body
name: body
required: true
schema:
properties:
field_value_pairs:
type: object
search_term:
example: air quality
type: string
type: object
produces:
- application/json
responses:
'200':
content:
application/json:
schema:
properties:
results:
items:
type: object
type: array
type:
description: Same as the requested type
enum:
- database
- table
- view
- column
- user
- identifier
- concept
- unit
type: string
type: object
description: OK, contains the elements formatted as an array of JSON arrays
summary: Performs a general search
tags:
- search-endpoint
/api/search/{type}/fields:
get:
operationId: get_fields
parameters:
- description: The search type.
in: path
name: type
required: true
schema:
enum:
- database
- table
- view
- column
- user
- identifier
- concept
- unit
type: string
responses:
'200':
content:
application/json:
schema:
properties:
results:
items:
properties:
attr_friendly_name:
example: Name
type: string
attr_name:
example: name
type: string
type:
description: OpenSearch data types.
example: string
type: string
type: object
type: array
type: object
description: List of fields
'404':
description: Invalid type.
summary: Get searchable fields
tags:
- search-endpoint
/health:
get:
consumes:
- application/json
description: 'Return UP if the instance is ready to serve connections.
'
produces:
- application/json
responses:
'200':
description: OK, service is up and running
schema:
$ref: '#/definitions/Column'
'404':
description: Service is not yet ready
summary: Return a healthcheck
tags:
- actuator
servers:
- description: Generated server url
url: http://localhost:4000
- description: Sandbox
url: https://test.dbrepo.tuwien.ac.at
components:
securitySchemes:
basicAuth:
in: header
scheme: basic
type: http
bearerAuth:
bearerFormat: JWT
in: header
scheme: bearer
type: http
externalDocs:
description: Sourcecode Documentation
url: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/__APPVERSION__/
info:
contact:
email: andreas.rauber@tuwien.ac.at
name: Prof. Andreas Rauber
description: Sidecar that downloads the import .csv file
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
title: Database Repository Data Database sidecar API
version: __APPVERSION__
openapi: 3.0.0
paths:
/health:
get:
consumes:
- application/json
description: 'Return UP if the instance is ready to serve connections.
'
produces:
- application/json
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Health'
description: OK, service is up and running
'404':
description: Service is not yet ready
summary: Return a healthcheck
tags:
- actuator
/sidecar/export/{filename}:
post:
consumes:
- application/json
description: 'Exports a specific .csv file to the Storage Service via S3
'
parameters:
- description: Name of the object file to export to the Storage Service
in: path
name: filename
required: true
produces:
- application/json
responses:
'202':
content: {}
description: Exported the .csv
'400':
description: The Storage Service could not be contacted or .csv was not
found.
security:
- bearerAuth: []
- basicAuth: []
summary: Exports a .csv to the Storage Service
tags:
- sidecar
/sidecar/import/{filename}:
post:
consumes:
- application/json
description: 'Imports a specific .csv file from the Storage Service via S3
'
parameters:
- description: Name of the object file to import from the Storage Service
in: path
name: filename
required: true
produces:
- application/json
responses:
'202':
content: {}
description: Imported the .csv
'400':
description: The Storage Service could not be contacted or .csv was not
found.
security:
- bearerAuth: []
- basicAuth: []
summary: Imports a .csv from the Storage Service
tags:
- sidecar
servers:
- description: Generated server url
url: http://localhost:8080
- description: Sandbox
url: https://test.dbrepo.tuwien.ac.at
openapi: 3.0.0
info:
title: Database Repository Upload Service API
description: Service that manages the uploads
contact:
name: Prof. Andreas Rauber
email: andreas.rauber@tuwien.ac.at
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
version: __APPVERSION__
externalDocs:
description: Sourcecode Documentation
url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services
servers:
- url: http://localhost:1080
description: Generated server url
- url: https://test.dbrepo.tuwien.ac.at
description: Sandbox
paths:
/api/upload/files:
post:
tags:
- upload-endpoint
summary: Uploads a file
operationId: upload
responses:
"201":
description: "Successfully uploaded a file"
security: { }
\ No newline at end of file
components:
securitySchemes:
basicAuth:
in: header
scheme: basic
type: http
bearerAuth:
bearerFormat: JWT
in: header
scheme: bearer
type: http
externalDocs:
description: Sourcecode Documentation
url: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/
info:
contact:
email: andreas.rauber@tuwien.ac.at
name: Prof. Andreas Rauber
description: The REST API
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
title: DBRepo REST API
version: 1.4.4
openapi: 3.1.0
servers:
- description: Test Instance
url: https://test.dbrepo.tuwien.ac.at
- description: Local Instance
url: http://localhost
This diff is collapsed.
...@@ -3,6 +3,10 @@ body { ...@@ -3,6 +3,10 @@ body {
background: #eee; background: #eee;
} }
#logo {
margin-top: 1rem;
}
.scheme-container { .scheme-container {
background: none !important; background: none !important;
box-shadow: none !important; box-shadow: none !important;
......
...@@ -9,7 +9,7 @@ services[3305]=sidecar ...@@ -9,7 +9,7 @@ services[3305]=sidecar
function retrieve () { function retrieve () {
if [[ "$2" == analyse ]] || [[ "$2" == search ]] || [[ "$2" == sidecar ]]; then if [[ "$2" == analyse ]] || [[ "$2" == search ]] || [[ "$2" == sidecar ]]; then
echo "... retrieve json api from localhost:$1" echo "... retrieve json api from localhost:$1"
curl -sSL "http://localhost:$1/api-$2.json" | yq -y > "./.docs/.swagger/api-$2.yaml" curl -sSL "http://localhost:$1/api-$2.json" | yq -p=json > "./.docs/.swagger/api-$2.yaml"
else else
echo "... retrieve yaml api from localhost:$1" echo "... retrieve yaml api from localhost:$1"
curl -sSL "http://localhost:$1/v3/api-docs.yaml" > "./.docs/.swagger/api-$2.yaml" curl -sSL "http://localhost:$1/v3/api-docs.yaml" > "./.docs/.swagger/api-$2.yaml"
......
#!/bin/bash #!/bin/bash
declare -A services declare -A services
services[1080]=upload #services[1080]=upload
services[4000]=search services[4000]=search
services[5000]=analyse services[5000]=analyse
services[9093]=data services[9093]=data
services[9099]=metadata services[9099]=metadata
services[3305]=sidecar services[3305]=sidecar
# ensure target directories are present rm -f ./tmp.yaml
echo "ensure target directory ./site are present" mkdir -p ./site/swagger
mkdir -p ./site touch ./tmp.yaml
# extract static site # -> build paths: map
echo "extract static site .docs/.swagger/dist.tar.gz"
for key in "${!services[@]}"; do for key in "${!services[@]}"; do
mkdir -p ./site/${services[$key]} cat .docs/.swagger/api-${services[$key]}.yaml | yq .paths >> ./tmp.yaml
echo "extract static site ./swagger-ui.html -> ./site/${services[$key]}" done
cp .docs/.swagger/swagger-ui.html ./site/${services[$key]}/index.html
cp .docs/.swagger/custom.css ./site/${services[$key]}/custom.css # -> merge with api.base.yaml into final api.yaml
sed -i -e "s/__SERVICENAME__/${services[$key]^} Service/g" ./site/${services[$key]}/index.html yq ".paths *= load(\"tmp.yaml\")" .docs/.swagger/api.base.yaml > .docs/.swagger/api.yaml
cp ".docs/.swagger/api-${services[$key]}.yaml" "./site/${services[$key]}/api.yaml"
done
\ No newline at end of file
...@@ -3,16 +3,22 @@ ...@@ -3,16 +3,22 @@
<head> <head>
<meta charset="utf-8"/> <meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="description" content="__SERVICENAME__ API description in OpenAPI 3.0"/> <meta name="description" content="DBRepo REST API description in OpenAPI 3.0"/>
<title>__SERVICENAME__ API</title> <title>DBRepo REST API</title>
<link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@5.11.1/swagger-ui.css"/> <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@5.17.12/swagger-ui.css"/>
<link rel="stylesheet" href="./custom.css"/> <link rel="stylesheet" href="./custom.css"/>
<link rel="icon" href="https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/.docs/images/signet_white.png" /> <link rel="icon" href="https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/.docs/images/signet_white.png" />
</head> </head>
<body> <body>
<div class="swagger-ui">
<div class="wrapper">
<img id="logo" width="300" alt="DBRepo Logo"
src="https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/raw/master/dbrepo-ui/public/logo.png" />
</div>
</div>
<div id="swagger-ui"></div> <div id="swagger-ui"></div>
<script src="https://unpkg.com/swagger-ui-dist@5.11.1/swagger-ui-bundle.js" crossorigin></script> <script src="https://unpkg.com/swagger-ui-dist@5.17.12/swagger-ui-bundle.js" crossorigin></script>
<script src="https://unpkg.com/swagger-ui-dist@5.11.1/swagger-ui-standalone-preset.js" crossorigin></script> <script src="https://unpkg.com/swagger-ui-dist@5.17.12/swagger-ui-standalone-preset.js" crossorigin></script>
<script> <script>
window.onload = () => { window.onload = () => {
window.ui = SwaggerUIBundle({ window.ui = SwaggerUIBundle({
......
---
author: Martin Weise
---
## Relational Database
TBD
## Query
TBD
## System Versioning
TBD
## Data Ingest
<figure markdown>
![Data ingest](../images/data-ingest.svg)
<figcaption>Figure 1: Modes of data ingest</figcaption>
</figure>
More [usage examples](../usage-overview/) include how to ingest datasets, data dumps, live data, etc.
### Generation of Metadata in DBRepo
You can generate metadata e.g. UI tbd
!!! warning "Limitation"
Only system-versioned tables are considered when generating metadata to tables. If your table is not system-versioned
e.g. a base table, it will not be visible in the UI.
\ No newline at end of file
---
author: Martin Weise
---
## Relational Database
TBD
## Query
TBD
## System Versioning
TBD
\ No newline at end of file
...@@ -3,13 +3,14 @@ author: Martin Weise ...@@ -3,13 +3,14 @@ author: Martin Weise
--- ---
This is the full system description from a technical/developer view and continuously being updated as the development This is the full system description from a technical/developer view and continuously being updated as the development
progresses. progresses.
## Data Ingest The remainder of this Sec. is organized as follows: in [Authentication](../concepts/authentication)
we describe how to to accessing important parts of DBRepo. Sec. [DBMS](../concepts/dbms) describes database management
<figure markdown> systems on a high-level, Sec. [Messaging](../concepts/messaging) shows how data streams can be connected with DBRepo for
![Data ingest](../images/data-ingest.svg) e.g. continuous sensor measurements. Sec. [(Meta-)Data](../concepts/metadata) describes the data derived from the
<figcaption>Figure 1: Modes of data ingest</figcaption> datasets, Sec. [Persistent Identifier](../concepts/pid) introduces how data is precisely identified for e.g. citation
</figure> using the DOI system. Sec. [Search](../concepts/search) describes how anything in DBRepo can be searched, Sec.
[Storage](../concepts/storage) shows how datasets can be uploaded/transferred between the services and Sec.
More [usage examples](../usage-overview/) include how to ingest datasets, data dumps, live data, etc. [User Interface](../concepts/ui) introduces the graphical interface for human interaction as part of virtual research
environments.
\ No newline at end of file
---
author: Martin Weise
---
TBD
---
author: Martin Weise
---
## Prometheus Metrics
We expose Prometheus metrics on all endpoints of the REST API. [Prometheus](https://prometheus.io/) is a cloud-native
monitoring system using a time-series database. In the default deployment (Docker Compose / Kubernetes) no Prometheus
instance is started.
You need can setup Prometheus in a few minutes using
a [Docker container](https://prometheus.io/docs/prometheus/latest/installation/).
## Example
## Analyse Service
| **Metric** | **Description** |
|-----------------------------|---------------------------------------------|
| `dbrepo_analyse_datatypes` | Time needed to analyse datatypes of dataset |
| `dbrepo_analyse_keys` | Time needed to analyse keys of dataset |
| `dbrepo_analyse_table_stat` | Time needed to analyse table statistics |
| `dbrepo_analyse_table_stat` | Time needed to analyse table statistics |
## Auth Service
See [Keycloak documentation](https://www.keycloak.org/server/configuration-metrics).
## Broker Service
See [RabbitMQ documentation](https://www.rabbitmq.com/docs/prometheus).
## Databases
See [MariaDB Galera documentation](https://galeracluster.com/documentation/html_docs_20210213-1355-master/documentation/galera-manager-monitoring-clusters.html).
The [Data Database Sidecar](#) metrics are:
| **Metric** | **Description** |
|---------------------------------|---------------------------------------|
| `dbrepo_sidecar_import_dataset` | Time needed to import dataset from S3 |
| `dbrepo_sidecar_export_dataset` | Time needed to export dataset to S3 |
## Data Service
| **Metric** | **Description** |
|-----------------------------|-------------------------------------------|
| `dbrepo_message_receive` | Received AMQP message from Broker Service |
| `dbrepo_subset_create` | Create subset |
| `dbrepo_subset_data` | Retrieved subset data |
| `dbrepo_subset_find` | Find subset |
| `dbrepo_subset_list` | Find subsets |
| `dbrepo_subset_persist` | Persist subset |
| `dbrepo_table_data_create` | Create table data |
| `dbrepo_table_data_delete` | Delete table data |
| `dbrepo_table_data_export` | Export table data |
| `dbrepo_table_data_history` | Find table history |
| `dbrepo_table_data_import` | Import dataset |
| `dbrepo_table_data_list` | Retrieve table data |
| `dbrepo_table_data_update` | Update table data |
| `dbrepo_view_data` | Retrieve view data |
| `dbrepo_view_schema_list` | Find view schemas |
## Metadata Service
| **Metric** | **Description** |
|------------------------------------|-----------------------------------|
| `dbrepo_user_refresh_token` | Refresh user token |
| `dbrepo_identifier_save` | Save identifier |
| `dbrepo_oai_record_get` | Get the record |
| `dbrepo_access_give` | Give access to some database |
| `dbrepo_ontologies_find` | Find one ontology |
| `dbrepo_database_findall` | List databases |
| `dbrepo_tables_refresh` | Refresh database tables metadata |
| `dbrepo_license_findall` | Get all licenses |
| `dbrepo_user_modify` | Modify user information |
| `dbrepo_container_findall` | Find all containers |
| `dbrepo_maintenance_delete` | Delete maintenance message |
| `dbrepo_maintenance_update` | Update maintenance message |
| `dbrepo_ontologies_create` | Register a new ontology |
| `dbrepo_identifier_delete` | Delete some identifier |
| `dbrepo_oai_identify` | Identify the repository |
| `dbrepo_database_create` | Create database |
| `dbrepo_oai_metadataformats_list` | List the metadata formats |
| `dbrepo_user_password_modify` | Modify user password |
| `dbrepo_semantic_concepts_findall` | List semantic concepts |
| `dbrepo_identifier_retrieve` | Retrieve metadata from identifier |
| `dbrepo_identifier_list` | Find all identifiers |
| `dbrepo_views_findall` | Find all views |
| `dbrepo_identifier_create` | Draft identifier |
| `dbrepo_oai_identifiers_list` | List the identifiers |
| `dbrepo_image_findall` | Find all images |
| `dbrepo_database_visibility` | Update database visibility |
| `dbrepo_container_create` | Create container |
| `dbrepo_views_refresh` | Refresh database views metadata |
| `dbrepo_database_find` | Find some database |
| `dbrepo_access_get` | Check access to some database |
| `dbrepo_identifier_find` | Find some identifier |
| `dbrepo_maintenance_create` | Create maintenance message |
| `dbrepo_container_delete` | Delete some container |
| `dbrepo_ontologies_delete` | Delete an ontology |
| `dbrepo_ontologies_findall` | List all ontologies |
| `dbrepo_user_token` | Obtain user token |
| `dbrepo_view_find` | Find one view |
| `dbrepo_user_create` | Create user |
| `dbrepo_ontologies_update` | Update an ontology |
| `dbrepo_maintenance_findall` | Find maintenance messages |
| `dbrepo_users_list` | Find all users |
| `dbrepo_image_find` | Find some image |
| `dbrepo_user_find` | Get a user info |
| `dbrepo_image_delete` | Delete some image |
| `dbrepo_identifier_publish` | Publish identifier |
| `dbrepo_image_update` | Update some image |
| `dbrepo_view_create` | Create a view |
| `dbrepo_semantic_units_findall` | List semantic units |
| `dbrepo_image_create` | Create image |
| `dbrepo_database_image` | Update database image |
| `dbrepo_view_delete` | Delete one view |
| `dbrepo_database_transfer` | Update database owner |
| `dbrepo_maintenance_find` | Find one maintenance message |
| `dbrepo_access_modify` | Modify access to some database |
| `dbrepo_ontologies_entities_find` | Find entities |
| `dbrepo_access_delete` | Revoke access to some database |
| `dbrepo_container_find` | Find some container |
## Search Service
| **Metric** | **Description** |
|---------------------------------|---------------------------------------------------------|
| `dbrepo_search_index_list` | Time needed to list search index |
| `dbrepo_search_type_list` | Time needed to list search types |
| `dbrepo_search_fuzzy` | Time needed to search fuzzy |
| `dbrepo_search_type` | Time needed to search by type |
| `dbrepo_search_update_database` | Time needed to update a database in the search database |
| `dbrepo_search_delete_database` | Time needed to delete a database in the search database |
...@@ -2,10 +2,20 @@ ...@@ -2,10 +2,20 @@
author: Martin Weise author: Martin Weise
--- ---
## tl;dr
tbd
## Description ## Description
TBD TBD
## Solution ## Solution
TBD TBD
\ No newline at end of file
## DBRepo Features
- [x] Large Dataset &#8776;15GiB
- [x] Subset Citation using PID
- [x] External access from Grafana Dashboard
\ No newline at end of file
...@@ -2,10 +2,20 @@ ...@@ -2,10 +2,20 @@
author: Martin Weise author: Martin Weise
--- ---
## tl;dr
tbd
## Description ## Description
TBD TBD
## Solution ## Solution
TBD TBD
\ No newline at end of file
## DBRepo Features
- [x] Import through CSV-dataset upload
- [x] Data views implementing embargo period (24 hours)
- [x] External access from Grafana Dashboard
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment