Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • fair-data-austria-db-repository/fda-services
1 result
Select Git revision
Show changes
Commits on Source (55)
Showing
with 14051 additions and 10175 deletions
APP_VERSION=1.9
FLUENTBIT_VERSION=4.0.0
GRAFANA_VERSION=11.4.0
MARIADB_VERSION=11.3.2
POSTGRES_VERSION=17.0.0
KEYCLOAK_VERSION=26.0.4
RABBITMQ_VERSION=3.13.7
OPENSEARCH_VERSION=2.10.0
NGINX_VERSION=1.27.3-alpine3.20-slim
KEYCLOAK_VERSION=26.2.4
MYSQLD_EXPORTER_VERSION=0.15.1
NGINX_VERSION=1.28.0
OPENLDAP_VERSION=2.6.8
SEAWEEDFS_VERSION=3.71.0
OPENSEARCH_VERSION=2.18.0
POSTGRES_VERSION=17.0.0
PROMETHEUS_VERSION=2.54.1
RABBITMQ_VERSION=3.13.1
SEAWEEDFS_VERSION=3.87.0
x-resources-nano: &resources-nano
resources:
reservations:
cpus: '0.1'
memory: 128M
limits:
cpus: '0.15'
memory: 192M
x-resources-micro: &resources-micro
resources:
reservations:
cpus: '0.25'
memory: 256M
limits:
cpus: '0.375'
memory: 384M
x-resources-nano-hm: &resources-micro-hm
resources:
reservations:
cpus: '0.25'
memory: 256M
limits:
cpus: '0.375'
memory: 4096M
x-resources-small: &resources-small
resources:
reservations:
cpus: '0.5'
memory: 512M
limits:
cpus: '0.75'
memory: 768M
x-resources-medium: &resources-medium
resources:
reservations:
cpus: '0.5'
memory: 1024M
limits:
cpus: '0.75'
memory: 1536M
x-resources-large: &resources-large
resources:
reservations:
cpus: '1'
memory: 2048M
limits:
cpus: '1.5'
memory: 3072M
x-healthcheck-params: &healthcheck-params
interval: 30s
timeout: 10s
......@@ -66,29 +12,49 @@ volumes:
identity-service-data:
metric-db-data:
dashboard-ui-data:
dashboard-db-data:
services:
dbrepo-metadata-db:
restart: "no"
container_name: dbrepo-metadata-db
hostname: metadata-db
image: docker.io/bitnami/mariadb:${MARIADB_VERSION}
image: docker.io/bitnami/mariadb-galera:${MARIADB_VERSION}
volumes:
- metadata-db-data:/var/lib/mysql
- metadata-db-data:/bitnami/mariadb
- ./config/1_setup-schema.sql:/docker-entrypoint-initdb.d/1_setup-schema.sql
- ./config/2_setup-data.sql:/docker-entrypoint-initdb.d/2_setup-data.sql
ports:
- "3306:3306"
environment:
MARIADB_GALERA_MARIABACKUP_PASSWORD: "${METADATA_DB_BACKUP_PASSWORD:-dbrepo}"
MARIADB_DATABASE: "${METADATA_DB:-dbrepo}"
MARIADB_EXTRA_FLAGS: "${METADATA_DB_EXTRA_FLAGS:---max_connections=155 --max-statement-time=60}"
MARIADB_PASSWORD: "${READONLY_PASSWORD:-readonly}"
MARIADB_ROOT_PASSWORD: "${METADATA_DB_PASSWORD:-dbrepo}"
MARIADB_SKIP_TEST_DB: "yes"
MARIADB_USER: "${READONLY_USERNAME:-readonly}"
healthcheck:
test: /opt/bitnami/scripts/mariadb/healthcheck.sh --connect --innodb_initialized
test: /opt/bitnami/scripts/mariadb-galera/healthcheck.sh --connect --innodb_initialized
<<: *healthcheck-params
deploy:
<<: *resources-micro-hm
platform: linux/amd64
logging:
driver: json-file
dbrepo-metadata-db-metrics:
restart: "no"
container_name: dbrepo-metadata-db-metrics
hostname: metadata-db-metrics
image: docker.io/bitnami/mysqld-exporter:${MYSQLD_EXPORTER_VERSION}
command:
- --mysqld.address=metadata-db:3306
- --config.my-cnf=/.my.cnf
volumes:
- ./config/metrics.cnf:/.my.cnf
healthcheck:
test: -h
<<: *healthcheck-params
depends_on:
dbrepo-metadata-db:
condition: service_healthy
logging:
driver: json-file
......@@ -96,23 +62,40 @@ services:
restart: "no"
container_name: dbrepo-data-db
hostname: data-db
image: docker.io/bitnami/mariadb:${MARIADB_VERSION}
image: docker.io/bitnami/mariadb-galera:${MARIADB_VERSION}
volumes:
- data-db-data:/var/lib/mysql
- data-db-data:/bitnami/mariadb
- ./config/1_grant-user.sql:/docker-entrypoint-initdb.d/1_grant-user.sql
ports:
- "3307:3306"
environment:
MARIADB_EXTRA_FLAGS: "${DATA_DB_EXTRA_FLAGS:---max_connections=155 --max-statement-time=60}"
MARIADB_GALERA_MARIABACKUP_PASSWORD: "${DATA_DB_BACKUP_PASSWORD:-dbrepo}"
MARIADB_PASSWORD: "${READONLY_PASSWORD:-readonly}"
MARIADB_ROOT_PASSWORD: "${DATA_DB_PASSWORD:-dbrepo}"
MARIADB_SKIP_TEST_DB: "yes"
MARIADB_USER: "${READONLY_USERNAME:-readonly}"
healthcheck:
test: /opt/bitnami/scripts/mariadb/healthcheck.sh --connect --innodb_initialized
test: /opt/bitnami/scripts/mariadb-galera/healthcheck.sh --connect --innodb_initialized
<<: *healthcheck-params
deploy:
<<: *resources-micro-hm
platform: linux/amd64
logging:
driver: json-file
dbrepo-data-db-metrics:
restart: "no"
container_name: dbrepo-data-db-metrics
hostname: data-db-metrics
image: docker.io/bitnami/mysqld-exporter:${MYSQLD_EXPORTER_VERSION}
command:
- --mysqld.address=data-db:3306
- --config.my-cnf=/.my.cnf
volumes:
- ./config/metrics.cnf:/.my.cnf
healthcheck:
test: -h
<<: *healthcheck-params
depends_on:
dbrepo-data-db:
condition: service_healthy
logging:
driver: json-file
......@@ -131,9 +114,23 @@ services:
healthcheck:
test: "psql -U ${AUTH_DB_USERNAME:-keycloak} -h 127.0.0.1 -p 5432 -d ${AUTH_DB_NAME:-keycloak} -c 'select version();'"
<<: *healthcheck-params
deploy:
<<: *resources-micro
platform: linux/amd64
logging:
driver: json-file
dbrepo-dashboard-db:
restart: "no"
container_name: dbrepo-dashboard-db
hostname: dashboard-db
image: docker.io/bitnami/postgresql:${POSTGRES_VERSION}
volumes:
- dashboard-db-data:/bitnami/postgresql
environment:
POSTGRESQL_DATABASE: "${DASHBOARD_DB_NAME:-grafana}"
POSTGRESQL_USERNAME: "${DASHBOARD_DB_USERNAME:-grafana}"
POSTGRESQL_PASSWORD: "${DASHBOARD_DB_PASSWORD:-dbrepo}"
healthcheck:
test: "psql -U ${DASHBOARD_DB_USERNAME:-grafana} -h 127.0.0.1 -p 5432 -d ${DASHBOARD_DB_NAME:-grafana} -c 'select version();'"
<<: *healthcheck-params
logging:
driver: json-file
......@@ -161,16 +158,13 @@ services:
KEYCLOAK_DATABASE_USER: "${AUTH_DB_USERNAME:-keycloak}"
KEYCLOAK_DATABASE_PASSWORD: "${AUTH_DB_PASSWORD:-dbrepo}"
KEYCLOAK_HOSTNAME: "${BASE_URL:-http://localhost}"
KEYCLOAK_HOSTNAME_ADMIN: "http://localhost:8080"
KEYCLOAK_HOSTNAME_ADMIN: "${BASE_URL:-http://localhost}:8080"
METADATA_SERVICE_ENDPOINT: "${METADATA_SERVICE_ENDPOINT:-http://metadata-service:8080}"
SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}"
healthcheck:
test: curl -fsS localhost:8080/realms/master
<<: *healthcheck-params
deploy:
<<: *resources-medium
platform: linux/amd64
depends_on:
dbrepo-identity-service:
condition: service_healthy
......@@ -183,7 +177,7 @@ services:
init: true
restart: "no"
container_name: dbrepo-auth-service-init
image: registry.datalab.tuwien.ac.at/dbrepo/auth-service-init:1.8.1
image: registry.datalab.tuwien.ac.at/dbrepo/auth-service-init:${APP_VERSION}
environment:
AUTH_SERVICE_ENDPOINT: ${AUTH_SERVICE_ENDPOINT:-http://auth-service:8080}
METADATA_DB: "${METADATA_DB:-dbrepo}"
......@@ -192,14 +186,11 @@ services:
READONLY_USERNAME: "${READONLY_USERNAME:-readonly}"
SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
SYSTEM_PASSWORD: ${SYSTEM_PASSWORD:-admin}
deploy:
<<: *resources-nano
platform: linux/amd64
depends_on:
dbrepo-auth-service:
condition: service_healthy
dbrepo-gateway-service:
condition: service_healthy
condition: service_started
dbrepo-metadata-db:
condition: service_healthy
logging:
......@@ -209,7 +200,7 @@ services:
restart: "no"
container_name: dbrepo-metadata-service
hostname: metadata-service
image: registry.datalab.tuwien.ac.at/dbrepo/metadata-service:1.8.1
image: registry.datalab.tuwien.ac.at/dbrepo/metadata-service:${APP_VERSION}
environment:
ADMIN_EMAIL: "${ADMIN_EMAIL:-noreply@localhost}"
ANALYSE_SERVICE_ENDPOINT: "${ANALYSE_SERVICE_ENDPOINT:-http://analyse-service:8080}"
......@@ -251,9 +242,6 @@ services:
healthcheck:
test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1
<<: *healthcheck-params
deploy:
<<: *resources-small
platform: linux/amd64
depends_on:
dbrepo-auth-service:
condition: service_healthy
......@@ -274,7 +262,7 @@ services:
restart: "no"
container_name: dbrepo-analyse-service
hostname: analyse-service
image: registry.datalab.tuwien.ac.at/dbrepo/analyse-service:1.8.1
image: registry.datalab.tuwien.ac.at/dbrepo/analyse-service:${APP_VERSION}
environment:
AUTH_SERVICE_CLIENT: ${AUTH_SERVICE_CLIENT:-dbrepo-client}
AUTH_SERVICE_CLIENT_SECRET: ${AUTH_SERVICE_CLIENT:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}
......@@ -291,9 +279,6 @@ services:
healthcheck:
test: curl -sSL localhost:8080/health | grep 'UP' || exit 1
<<: *healthcheck-params
deploy:
<<: *resources-micro
platform: linux/amd64
logging:
driver: json-file
......@@ -319,9 +304,6 @@ services:
healthcheck:
test: rabbitmq-diagnostics -q is_running | grep 'is fully booted and running'
<<: *healthcheck-params
deploy:
<<: *resources-micro
platform: linux/amd64
logging:
driver: json-file
......@@ -337,9 +319,6 @@ services:
healthcheck:
test: curl -sSL 127.0.0.1:9200
<<: *healthcheck-params
deploy:
<<: *resources-medium
platform: linux/amd64
logging:
driver: json-file
......@@ -347,7 +326,7 @@ services:
restart: "no"
container_name: dbrepo-search-service
hostname: search-service
image: registry.datalab.tuwien.ac.at/dbrepo/search-service:1.8.1
image: registry.datalab.tuwien.ac.at/dbrepo/search-service:${APP_VERSION}
environment:
AUTH_SERVICE_CLIENT: ${AUTH_SERVICE_CLIENT:-dbrepo-client}
AUTH_SERVICE_CLIENT_SECRET: ${AUTH_SERVICE_CLIENT_SECRET:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}
......@@ -362,9 +341,6 @@ services:
healthcheck:
test: curl -sSL localhost:8080/health | grep 'UP' || exit 1
<<: *healthcheck-params
deploy:
<<: *resources-micro
platform: linux/amd64
logging:
driver: json-file
......@@ -372,7 +348,7 @@ services:
restart: "no"
container_name: dbrepo-ui
hostname: ui
image: registry.datalab.tuwien.ac.at/dbrepo/ui:1.8.1
image: registry.datalab.tuwien.ac.at/dbrepo/ui:${APP_VERSION}
environment:
NUXT_PUBLIC_API_CLIENT: "${BASE_URL:-http://localhost}"
NUXT_PUBLIC_API_SERVER: "${BASE_URL:-http://gateway-service}"
......@@ -389,9 +365,6 @@ services:
healthcheck:
test: curl -fsSL 127.0.0.1:3000 && curl -fsSL 127.0.0.1:3000/health
<<: *healthcheck-params
deploy:
<<: *resources-micro
platform: linux/amd64
depends_on:
dbrepo-search-service:
condition: service_healthy
......@@ -404,17 +377,11 @@ services:
restart: "no"
container_name: dbrepo-gateway-service
hostname: gateway-service
image: docker.io/nginx:${NGINX_VERSION}
image: docker.io/bitnami/nginx:${NGINX_VERSION}
ports:
- "80:8080"
volumes:
- ./config/dbrepo.conf:/etc/nginx/conf.d/default.conf
healthcheck:
test: lsof -i TCP:80 || exit 1
<<: *healthcheck-params
deploy:
<<: *resources-nano
platform: linux/amd64
- ./dbrepo-gateway-service/dbrepo.conf:/opt/bitnami/nginx/conf/server_blocks/dbrepo.conf:ro
depends_on:
dbrepo-analyse-service:
condition: service_healthy
......@@ -437,7 +404,7 @@ services:
restart: "no"
container_name: dbrepo-identity-service
hostname: identity-service
image: bitnami/openldap:2.6.8-debian-12-r1
image: docker.io/bitnami/openldap:${OPENLDAP_VERSION}
environment:
LDAP_ADMIN_USERNAME: "${IDENTITY_SERVICE_ADMIN_USERNAME:-admin}"
LDAP_ADMIN_PASSWORD: "${IDENTITY_SERVICE_ADMIN_PASSWORD:-admin}"
......@@ -451,9 +418,6 @@ services:
healthcheck:
test: "ldapwhoami -H ldap://localhost:1389 -D ${IDENTITY_SERVICE_ADMIN_DN:-cn=admin,dc=dbrepo,dc=at} -w ${IDENTITY_SERVICE_ADMIN_PASSWORD:-admin} || exit 1"
<<: *healthcheck-params
deploy:
<<: *resources-nano
platform: linux/amd64
logging:
driver: json-file
......@@ -462,7 +426,7 @@ services:
init: true
container_name: dbrepo-search-service-init
hostname: search-service-init
image: registry.datalab.tuwien.ac.at/dbrepo/search-service-init:1.8.1
image: registry.datalab.tuwien.ac.at/dbrepo/search-service-init:${APP_VERSION}
environment:
LOG_LEVEL: ${LOG_LEVEL:-info}
METADATA_SERVICE_ENDPOINT: ${METADATA_SERVICE_ENDPOINT:-http://metadata-service:8080}
......@@ -470,9 +434,6 @@ services:
OPENSEARCH_PORT: ${OPENSEARCH_PORT:-9200}
SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}"
deploy:
<<: *resources-nano
platform: linux/amd64
depends_on:
dbrepo-search-db:
condition: service_healthy
......@@ -486,16 +447,13 @@ services:
init: true
container_name: dbrepo-dashboard-service-init
hostname: search-dashboard-init
image: registry.datalab.tuwien.ac.at/dbrepo/dashboard-service-init:1.8.1
image: registry.datalab.tuwien.ac.at/dbrepo/dashboard-service-init:${APP_VERSION}
environment:
LOG_LEVEL: ${LOG_LEVEL:-info}
DASHBOARD_UI_ENDPOINT: "${DASHBOARD_UI_ENDPOINT:-http://dashboard-ui:3000}"
METADATA_SERVICE_ENDPOINT: ${METADATA_SERVICE_ENDPOINT:-http://metadata-service:8080}
SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}"
deploy:
<<: *resources-nano
platform: linux/amd64
depends_on:
dbrepo-dashboard-ui:
condition: service_healthy
......@@ -518,9 +476,6 @@ services:
healthcheck:
test: echo "cluster.check" | weed shell | grep "checking master.*ok" || exit 1
<<: *healthcheck-params
deploy:
<<: *resources-nano
platform: linux/amd64
logging:
driver: json-file
......@@ -535,9 +490,6 @@ services:
healthcheck:
test: promtool check healthy
<<: *healthcheck-params
deploy:
<<: *resources-nano
platform: linux/amd64
logging:
driver: json-file
......@@ -546,15 +498,12 @@ services:
init: true
container_name: dbrepo-storage-service-init
hostname: storage-service-init
image: registry.datalab.tuwien.ac.at/dbrepo/storage-service-init:1.8.1
image: registry.datalab.tuwien.ac.at/dbrepo/storage-service-init:${APP_VERSION}
environment:
S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-seaweedfsadmin}
S3_BUCKET: "${S3_BUCKET:-dbrepo}"
S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-seaweedfsadmin}
STORAGE_ENDPOINT: ${STORAGE_ENDPOINT:-http://storage-service:9000}
deploy:
<<: *resources-nano
platform: linux/amd64
depends_on:
dbrepo-storage-service:
condition: service_healthy
......@@ -565,7 +514,7 @@ services:
restart: "no"
container_name: dbrepo-data-service
hostname: data-service
image: registry.datalab.tuwien.ac.at/dbrepo/data-service:1.8.1
image: registry.datalab.tuwien.ac.at/dbrepo/data-service:${APP_VERSION}
environment:
AUTH_SERVICE_CLIENT: "${AUTH_SERVICE_CLIENT:-dbrepo-client}"
AUTH_SERVICE_CLIENT_SECRET: "${AUTH_SERVICE_CLIENT:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}"
......@@ -600,9 +549,6 @@ services:
healthcheck:
test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1
<<: *healthcheck-params
deploy:
<<: *resources-large
platform: linux/amd64
depends_on:
dbrepo-data-db:
condition: service_healthy
......@@ -613,15 +559,24 @@ services:
restart: "no"
container_name: dbrepo-dashboard-ui
hostname: dashboard-ui
image: registry.datalab.tuwien.ac.at/dbrepo/dashboard-ui:1.8.1
image: docker.io/bitnami/grafana:${GRAFANA_VERSION}
ports:
- "3000:3000"
volumes:
- dashboard-ui-data:/opt/bitnami/grafana/data
- ./config/dashboards:/app/dashboards
- ./config/grafana.ini:/opt/bitnami/grafana/conf/grafana.ini
- ./config/ldap.toml:/opt/bitnami/grafana/conf/ldap.toml
- ./config/provisioning/dashboards/provider.yaml:/opt/bitnami/grafana/conf/provisioning/dashboards/provider.yaml
- ./config/provisioning/datasources/infinity.yaml:/opt/bitnami/grafana/conf/provisioning/datasources/infinity.yaml
- ./config/provisioning/datasources/prometheus.yaml:/opt/bitnami/grafana/conf/provisioning/datasources/prometheus.yaml
- ./config/provisioning/datasources/opensearch.yaml:/opt/bitnami/grafana/conf/provisioning/datasources/opensearch.yaml
environment:
BASE_URL: "${BASE_URL:-http://localhost}"
DASHBOARD_DB_NAME: "${DASHBOARD_DB_NAME:-grafana}"
DASHBOARD_DB_USERNAME: "${DASHBOARD_DB_USERNAME:-grafana}"
DASHBOARD_DB_PASSWORD: "${DASHBOARD_DB_PASSWORD:-dbrepo}"
GF_SERVER_ROOT_URL: http://dashboard-ui:3000/dashboard/
GF_INSTALL_PLUGINS: "yesoreyeram-infinity-datasource"
GF_INSTALL_PLUGINS: "yesoreyeram-infinity-datasource,grafana-opensearch-datasource"
GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION: "true"
LDAP_ADMIN_USERNAME: "${IDENTITY_SERVICE_ADMIN_USERNAME:-admin}"
LDAP_ADMIN_PASSWORD: "${IDENTITY_SERVICE_ADMIN_PASSWORD:-admin}"
......@@ -629,9 +584,6 @@ services:
healthcheck:
test: curl -fsSL --head 127.0.0.1:3000
<<: *healthcheck-params
deploy:
<<: *resources-nano
platform: linux/amd64
extra_hosts:
- "localhost:host-gateway"
logging:
......@@ -641,9 +593,7 @@ services:
restart: "no"
container_name: dbrepo-dashboard-service
hostname: dashboard-service
image: registry.datalab.tuwien.ac.at/dbrepo/dashboard-service:1.8.1
ports:
- "4070:8080"
image: registry.datalab.tuwien.ac.at/dbrepo/dashboard-service:${APP_VERSION}
environment:
AUTH_SERVICE_ENDPOINT: ${AUTH_SERVICE_ENDPOINT:-http://auth-service:8080}
BASE_URL: "${BASE_URL:-http://localhost}"
......@@ -653,9 +603,6 @@ services:
healthcheck:
test: curl -fsSL --head 127.0.0.1:8080/health
<<: *healthcheck-params
deploy:
<<: *resources-micro
platform: linux/amd64
depends_on:
dbrepo-dashboard-ui:
condition: service_healthy
......
......@@ -111,7 +111,7 @@
},
"externalDocs": {
"description": "Sourcecode Documentation",
"url": "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/"
"url": "https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/"
},
"info": {
"contact": {
......@@ -124,7 +124,7 @@
"url": "https://www.apache.org/licenses/LICENSE-2.0"
},
"title": "Database Repository Analyse Service API",
"version": "1.8.1"
"version": "1.9.0"
},
"openapi": "3.0.0",
"paths": {
......
{
"components": {
"schemas": {
"ApiError": {
"properties": {
"code": {
"example": "error.dashboard.create",
"type": "string"
},
"message": {
"example": "Message",
"type": "string"
},
"status": {
"example": "BAD_REQUEST",
"type": "string"
}
},
"type": "object"
}
},
"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/1.7/"
},
"info": {
"contact": {
"email": "andreas.rauber@tuwien.ac.at",
"name": "Prof. Andreas Rauber"
},
"description": "Service that manages the dashboards",
"license": {
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0"
},
"title": "Database Repository Dashboard Service API",
"version": "1.9.0"
},
"openapi": "3.0.0",
"paths": {
"/api/dashboard": {
"post": {
"consumes": [
"application/json"
],
"description": "Creates a dashboard in the Dashboard UI. Requires role `system`.",
"operationId": "create_dashboard",
"parameters": [
{
"in": "body",
"name": "body",
"required": true,
"schema": {
"properties": {
"database_name": {
"example": "some_database",
"type": "string"
},
"is_public": {
"example": true,
"type": "boolean"
},
"is_schema_public": {
"example": true,
"type": "boolean"
},
"owner_username": {
"example": "foobar",
"type": "string"
}
},
"required": [
"is_public",
"is_schema_public",
"database_name",
"owner_username"
],
"type": "object"
}
}
],
"produces": [
"application/json"
],
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
},
"description": "Created dashboard successfully"
},
"409": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
},
"description": "Dashboard exists with same name"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
},
"description": "Unexpected system error"
}
},
"security": [
{
"bearerAuth": []
},
{
"basicAuth": []
}
],
"summary": "Create dashboard",
"tags": [
"dashboard-endpoint"
]
}
},
"/api/dashboard/{uid}": {
"put": {
"consumes": [
"application/json"
],
"description": "Updates a dashboard in the Dashboard UI. Requires role `system`.",
"operationId": "update_dashboard",
"parameters": [
{
"in": "path",
"name": "uid",
"required": true,
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"in": "body",
"name": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"produces": [
"application/json"
],
"responses": {
"202": {
"content": {
"application/json": {
"schema": {
"type": "object"
}
}
},
"description": "Updated dashboard successfully"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
},
"description": "Dashboard not found"
},
"500": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
},
"description": "Unexpected system error"
}
},
"security": [
{
"bearerAuth": []
},
{
"basicAuth": []
}
],
"summary": "Update dashboard",
"tags": [
"dashboard-endpoint"
]
}
}
},
"servers": [
{
"description": "Generated server url",
"url": "http://localhost"
},
{
"description": "Sandbox",
"url": "https://test.dbrepo.tuwien.ac.at"
}
]
}
"<!doctype html> <html lang=en> <title>500 Internal Server Error</title> <h1>Internal Server Error</h1> <p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>"
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -128,7 +128,7 @@
"url": "https://www.apache.org/licenses/LICENSE-2.0"
},
"title": "Database Repository Search Service API",
"version": "1.8.1"
"version": "1.9.0"
},
"openapi": "3.0.0",
"paths": {
......
......@@ -11,7 +11,7 @@ components:
type: http
externalDocs:
description: Project Website
url: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/
url: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/
info:
contact:
email: andreas.rauber@tuwien.ac.at
......@@ -24,7 +24,7 @@ info:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
title: DBRepo REST API
version: 1.8.1
version: 1.9.0
openapi: 3.1.0
servers:
- description: Test Instance
......
......@@ -16,7 +16,7 @@ info:
name: Apache 2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0'
title: DBRepo REST API
version: 1.8.1
version: 1.9.0
servers:
- description: Test Instance
url: 'https://test.dbrepo.tuwien.ac.at'
......@@ -24,7 +24,7 @@ servers:
url: 'http://localhost'
externalDocs:
description: Project Website
url: 'https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.8/'
url: 'https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.9/'
paths:
/api/analyse/datatypes:
get:
......@@ -1193,8 +1193,8 @@ paths:
$ref: '#/components/schemas/ApiErrorDto'
'404':
description: >-
Failed to find database in metadata database or query in query store
of the data database
Failed to find database or user in metadata database or query in
query store of the data database
content:
application/json:
schema:
......@@ -5252,7 +5252,7 @@ components:
execution:
type: string
format: date-time
example: '2021-03-12T15:26:21.000Z'
example: '2021-03-12T15:26:21Z'
query:
type: string
example: SELECT `id` FROM `air_quality`
......@@ -5430,7 +5430,7 @@ components:
execution:
type: string
format: date-time
example: '2021-03-12T15:26:21.000Z'
example: '2021-03-12T15:26:21Z'
doi:
type: string
example: 10.1038/nphys1170
......@@ -5991,11 +5991,11 @@ components:
created:
type: string
format: date-time
example: '2022-01-01T08:00:00.000Z'
example: '2022-01-01 08:00:00.000'
last_retrieved:
type: string
format: date-time
example: '2025-01-23T12:09:01.000Z'
example: '2025-01-23T12:09:01'
database_id:
type: string
format: uuid
......@@ -6088,7 +6088,6 @@ components:
- column_id
- operator_id
- type
- value
OrderDto:
type: object
properties:
......@@ -6141,7 +6140,7 @@ components:
timestamp:
type: string
format: date-time
example: '2021-03-12T15:26:21.000Z'
example: '2021-03-12T15:26:21Z'
event:
type: string
enum:
......@@ -6206,7 +6205,7 @@ components:
last_retrieved:
type: string
format: date-time
example: '2025-01-23T12:09:01.000Z'
example: '2025-01-23T12:09:01'
qualified_name:
type: string
example: Josiah Carberry — @jcarberry
......@@ -6376,11 +6375,11 @@ components:
display_start:
type: string
format: date-time
example: '2021-03-12T15:26:21.000Z'
example: '2021-03-12T15:26:21Z'
display_end:
type: string
format: date-time
example: '2021-03-12T15:26:21.000Z'
example: '2021-03-12T15:26:21Z'
required:
- message
- type
......@@ -7778,11 +7777,11 @@ components:
display_start:
type: string
format: date-time
example: '2021-03-12T15:26:21.000Z'
example: '2021-03-12T15:26:21Z'
display_end:
type: string
format: date-time
example: '2021-03-12T15:26:21.000Z'
example: '2021-03-12T15:26:21Z'
required:
- message
- type
......@@ -8376,7 +8375,7 @@ components:
last_retrieved:
type: string
format: date-time
example: '2025-01-23T12:09:01.000Z'
example: '2025-01-23T12:09:01'
internal_name:
type: string
example: air_quality
......@@ -8566,11 +8565,11 @@ components:
display_start:
type: string
format: date-time
example: '2021-03-12T15:26:21.000Z'
example: '2021-03-12T15:26:21Z'
display_end:
type: string
format: date-time
example: '2021-03-12T15:26:21.000Z'
example: '2021-03-12T15:26:21Z'
required:
- id
- message
......@@ -8793,11 +8792,11 @@ components:
created:
type: string
format: date-time
example: '2022-01-01T08:00:00.000Z'
example: '2022-01-01 08:00:00.000'
last_retrieved:
type: string
format: date-time
example: '2025-01-23T12:09:01.000Z'
example: '2025-01-23T12:09:01'
database_id:
type: string
format: uuid
......
#!/bin/bash
declare -A services
services[4050]=analyse
services[4060]=search
services[4070]=dashboard
services[9093]=data
services[9099]=metadata
ENDPOINTS="analyse-service:8080,search-service:8080,dashboard-service:8080,data-service:8080,metadata-service:8080"
# requires https://github.com/mikefarah/yq/ -> v4.44.3
function ip () {
HOSTNAME=$(hostname $1)
IP=$(docker inspect -f "{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" "dbrepo-$HOSTNAME")
echo $IP
}
function retrieve () {
if [[ "$2" == analyse ]] || [[ "$2" == search ]] || [[ "$2" == dashboard ]]; then
echo "... retrieve json api from localhost:$1"
curl -sSL "http://localhost:$1/api-$2.json" | yq -o=json - > "./.docs/.openapi/api-$2.yaml"
IP=$(ip $1)
if [[ $IP == "" ]]; then
echo "FATAL: failed to find ip for endpoint: $1"
exit 1
fi
URL=$(url $1)
HOSTNAME=$(hostname $1)
echo "... retrieve json api from URL: $URL"
touch "./.docs/.openapi/api-$HOSTNAME.yaml"
curl -sSL $URL | yq -o=json - > "./.docs/.openapi/api-$HOSTNAME.yaml"
}
function url () {
HOSTNAME=$(hostname $1)
PORT=$(port $1)
if [[ "$HOSTNAME" == "analyse-service" ]] || [[ "$HOSTNAME" == "search-service" ]] || [[ "$HOSTNAME" == "dashboard-service" ]]; then
echo "http://$IP:$PORT/api-docs.json"
else
echo "... retrieve yaml api from localhost:$1"
curl -sSL "http://localhost:$1/v3/api-docs.yaml" > "./.docs/.openapi/api-$2.yaml"
echo "http://$IP:$PORT/v3/api-docs.yaml"
fi
}
for key in "${!services[@]}"; do
echo "Generating ${services[$key]} API"
retrieve "$key" "${services[$key]}"
function hostname () {
IN="$1"
arrIN=(${IN//:/ })
echo ${arrIN[0]}
}
function port () {
IN="$1"
arrIN=(${IN//:/ })
echo ${arrIN[1]}
}
IFS=',' read -ra ARR <<< "$ENDPOINTS"
for ENDPOINT in "${ARR[@]}"; do
echo "Request OpenAPI definition for endpoint: $ENDPOINT"
retrieve $ENDPOINT
done
\ No newline at end of file
......@@ -4,16 +4,16 @@
"inputFile": "./api.base.yaml"
},
{
"inputFile": "./api-analyse.yaml"
"inputFile": "./api-analyse-service.yaml"
},
{
"inputFile": "./api-data.yaml"
"inputFile": "./api-data-service.yaml"
},
{
"inputFile": "./api-metadata.yaml"
"inputFile": "./api-metadata-service.yaml"
},
{
"inputFile": "./api-search.yaml"
"inputFile": "./api-search-service.yaml"
}
],
"output": "./api.yaml"
......
......@@ -6,7 +6,7 @@ author: Martin Weise
!!! debug "Debug Information"
Image: [`registry.datalab.tuwien.ac.at/dbrepo/analyse-service:1.4.7`](https://hub.docker.com/r/dbrepo/analyse-service)
Image: [`registry.datalab.tuwien.ac.at/dbrepo/analyse-service:1.9.0`](https://hub.docker.com/r/dbrepo/analyse-service)
* Ports: 5000/tcp
* Prometheus: `http://<hostname>:5000/metrics`
......
......@@ -6,7 +6,7 @@ author: Martin Weise
!!! debug "Debug Information"
Image: [`docker.io/bitnami/keycloak:26.0.0-debian-12-r1`](https://hub.docker.com/r/bitnami/keycloak)
Image: [`docker.io/bitnami/keycloak:26.0.4`](https://hub.docker.com/r/bitnami/keycloak)
* Ports: 8080/tcp
* UI: `http://<hostname>:8080/`
......
......@@ -6,7 +6,7 @@ author: Martin Weise
!!! debug "Debug Information"
Image: [`bitnami/rabbitmq:3.12.13-debian-12-r2`](https://hub.docker.com/r/bitnami/rabbitmq)
Image: [`bitnami/rabbitmq:3.13.7`](https://hub.docker.com/r/bitnami/rabbitmq)
* Ports: 5672/tcp, 15672/tcp, 15692/tcp
* AMQP: `amqp://<hostname>:5672`
......
......@@ -4,7 +4,7 @@ author: Martin Weise
!!! debug "Debug Information"
Image: [`docker.io/bitnami/mariadb-galera:11.3.2-debian-12-r9`](https://hub.docker.com/r/bitnami/mariadb-galera)
Image: [`docker.io/bitnami/mariadb:11.3.2`](https://hub.docker.com/r/bitnami/mariadb-galera)
* Ports: 3306/tcp
* JDBC: `jdbc://mariadb:<hostname>:3306`
......
......@@ -6,7 +6,7 @@ author: Martin Weise
!!! debug "Debug Information"
Image: [`registry.datalab.tuwien.ac.at/dbrepo/data-service:1.4.7`](https://hub.docker.com/r/dbrepo/data-service)
Image: [`registry.datalab.tuwien.ac.at/dbrepo/data-service:1.9.0`](https://hub.docker.com/r/dbrepo/data-service)
* Ports: 9093/tcp
* Info: `http://<hostname>:9093/actuator/info`
......
......@@ -6,7 +6,7 @@ author: Martin Weise
!!! debug "Debug Information"
Image: [`docker.io/nginx:1.27.0-alpine3.19-slim`](https://hub.docker.com/r/nginx)
Image: [`docker.io/nginx:1.27.3-alpine3.20-slim`](https://hub.docker.com/r/nginx)
* Ports: 80/tcp
......