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
  • dev
  • replication_test_two
  • master
  • release-1.11
  • replication_test
  • release-1.10
  • 533-integrate-semantic-recommendation-2
  • 556-usage-statistics
  • 553-semantic-recommendation-2
  • 553-semantic-recommendation
  • release-1.9
  • 551-init-broker-service-permissions
  • 549-test-oai-pmh
  • 545-saving-multiple-times-breaks-pid-metadata
  • 499-standalone-compute-service-2
  • 539-load-tests
  • hotfix/helm-chart
  • luca_ba_new_interface
  • 534-bug-when-adding-access-to-user-that-is-not-registered-at-dashboard-service
  • release-1.8
  • 533-integrate-semantic-recommendation
  • feature/openshift
  • 518-spark-doesn-t-map-the-headers-correct
  • 485-fixity-checks
  • 530-various-schema-problems-with-subsets
  • release-1.7
  • fix/auth-service
  • fix/pid-list
  • fix/composite-keys
  • 522-integrate-the-new-ui
  • 523-multiarch-builds-in-pipeline-2
  • 521-collect-more-metadata-for-publication
  • 499-standalone-compute-service
  • 510-refactor-test-dtos-into-a-separate-library-light
  • 508-refactor-to-use-username-as-identity
  • feature/497-create-and-update-timestamp-table
  • 497-create-and-update-timestamp-table-2
  • 495-improve-password-policy-in-keycloak
  • 494-configure-brute-force-login-detection-in-keycloak
  • release-1.6
  • 491-update-sequential-ids-to-non-guessable-ids
  • 497-create-and-update-timestamp-table
  • bug/ui
  • backtrack/entities
  • hotfix/ui
  • 488-integrate-oidc-into-ui
  • 486-test-python-library-through-swagger-api
  • hotfix/metadata-service
  • 484-pipeline-checks
  • archiving
  • 483-boto3-large-data
  • 482-search-service-displays-private-databases-when-not-having-sufficient-access
  • 479-review-private-database-behavior
  • storage-job
  • release-1.5
  • hotfix/ui-view
  • 476-hotfix-query-execution
  • 474-refactor-basetest-java-to-have-readonly-complete-objects
  • 470-hotfix-admin-not-in-sync-on-first-install
  • hotfix/docs
  • 463-reduce-metadata-for-database-api
  • hotfix/openldap
  • 468-hotfix-redirect-pid
  • release-1.4.6
  • hotfix/helm-data-db
  • feature/so-mapper-service
  • coverage/library
  • hotfix/mandatory-arguments
  • hotfix/helm
  • 452-create-table-with-sequence
  • release-1.4.5
  • feature/sso
  • hotfix/access
  • feature/semantic-service
  • feature/soMapper-service
  • release-1.4.4
  • release-latest
  • release-1.4.3
  • release-1.4.2
  • release-1.4.1
  • release-1.4.0
  • release-1.3.0
  • release-v1.3
  • health_check
  • v1.0.0-alpha
  • v1.1.0-alpha
  • v1.1.1-alpha
  • v1.10.0
  • v1.10.0-rc10
  • v1.10.0-rc11
  • v1.10.0-rc12
  • v1.10.0-rc13
  • v1.10.0-rc2
  • v1.10.0-rc3
  • v1.10.0-rc4
  • v1.10.0-rc5
  • v1.10.0-rc6
  • v1.10.0-rc7
  • v1.10.0-rc8
  • v1.10.0-rc9
  • v1.10.0rc0
  • v1.10.0rc1
  • v1.10.1
  • v1.10.2
  • v1.10.3
  • v1.10.4
  • v1.10.5
  • v1.11.0
  • v1.3.0
  • v1.4.0
  • v1.4.1
  • v1.4.2
  • v1.4.3
  • v1.4.4
  • v1.4.5
  • v1.4.6
  • v1.5.0
  • v1.5.1
  • v1.5.3
  • v1.6.0
  • v1.6.1
  • v1.6.2
  • v1.6.3
  • v1.6.4
  • v1.7.0
  • v1.7.0-rc0
  • v1.7.0-rc1
  • v1.7.1
  • v1.7.2
  • v1.7.3
  • v1.7.3-fix
  • v1.7.3-fix10
  • v1.7.3-fix11
  • v1.7.3-fix12
  • v1.7.3-fix13
  • v1.7.3-fix14
  • v1.7.3-fix15
  • v1.7.3-fix16
  • v1.7.3-fix17
  • v1.7.3-fix18
  • v1.7.3-fix19
  • v1.7.3-fix2
  • v1.7.3-fix20
  • v1.7.3-fix21
  • v1.7.3-fix3
  • v1.7.3-fix4
  • v1.7.3-fix5
  • v1.7.3-fix6
  • v1.7.3-fix7
  • v1.7.3-fix8
  • v1.7.3-fix9
  • v1.8.0
  • v1.8.1
  • v1.8.2
  • v1.8.2-fix
  • v1.8.2-fix2
  • v1.8.2-fix3
  • v1.8.2-fix4
  • v1.9.0
  • v1.9.0-rc0
  • v1.9.0-rc1
  • v1.9.1
  • v1.9.2
  • v1.9.2-rc0
  • v1.9.3
165 results

Target

Select target project
  • FAIR Data Austria DB Repository / DBRepo
1 result
Select Git revision
  • dev
  • replication_test_two
  • master
  • release-1.11
  • replication_test
  • release-1.10
  • 533-integrate-semantic-recommendation-2
  • 556-usage-statistics
  • 553-semantic-recommendation-2
  • 553-semantic-recommendation
  • release-1.9
  • 551-init-broker-service-permissions
  • 549-test-oai-pmh
  • 545-saving-multiple-times-breaks-pid-metadata
  • 499-standalone-compute-service-2
  • 539-load-tests
  • hotfix/helm-chart
  • luca_ba_new_interface
  • 534-bug-when-adding-access-to-user-that-is-not-registered-at-dashboard-service
  • release-1.8
  • 533-integrate-semantic-recommendation
  • feature/openshift
  • 518-spark-doesn-t-map-the-headers-correct
  • 485-fixity-checks
  • 530-various-schema-problems-with-subsets
  • release-1.7
  • fix/auth-service
  • fix/pid-list
  • fix/composite-keys
  • 522-integrate-the-new-ui
  • 523-multiarch-builds-in-pipeline-2
  • 521-collect-more-metadata-for-publication
  • 499-standalone-compute-service
  • 510-refactor-test-dtos-into-a-separate-library-light
  • 508-refactor-to-use-username-as-identity
  • feature/497-create-and-update-timestamp-table
  • 497-create-and-update-timestamp-table-2
  • 495-improve-password-policy-in-keycloak
  • 494-configure-brute-force-login-detection-in-keycloak
  • release-1.6
  • 491-update-sequential-ids-to-non-guessable-ids
  • 497-create-and-update-timestamp-table
  • bug/ui
  • backtrack/entities
  • hotfix/ui
  • 488-integrate-oidc-into-ui
  • 486-test-python-library-through-swagger-api
  • hotfix/metadata-service
  • 484-pipeline-checks
  • archiving
  • 483-boto3-large-data
  • 482-search-service-displays-private-databases-when-not-having-sufficient-access
  • 479-review-private-database-behavior
  • storage-job
  • release-1.5
  • hotfix/ui-view
  • 476-hotfix-query-execution
  • 474-refactor-basetest-java-to-have-readonly-complete-objects
  • 470-hotfix-admin-not-in-sync-on-first-install
  • hotfix/docs
  • 463-reduce-metadata-for-database-api
  • hotfix/openldap
  • 468-hotfix-redirect-pid
  • release-1.4.6
  • hotfix/helm-data-db
  • feature/so-mapper-service
  • coverage/library
  • hotfix/mandatory-arguments
  • hotfix/helm
  • 452-create-table-with-sequence
  • release-1.4.5
  • feature/sso
  • hotfix/access
  • feature/semantic-service
  • feature/soMapper-service
  • release-1.4.4
  • release-latest
  • release-1.4.3
  • release-1.4.2
  • release-1.4.1
  • release-1.4.0
  • release-1.3.0
  • release-v1.3
  • health_check
  • v1.0.0-alpha
  • v1.1.0-alpha
  • v1.1.1-alpha
  • v1.10.0
  • v1.10.0-rc10
  • v1.10.0-rc11
  • v1.10.0-rc12
  • v1.10.0-rc13
  • v1.10.0-rc2
  • v1.10.0-rc3
  • v1.10.0-rc4
  • v1.10.0-rc5
  • v1.10.0-rc6
  • v1.10.0-rc7
  • v1.10.0-rc8
  • v1.10.0-rc9
  • v1.10.0rc0
  • v1.10.0rc1
  • v1.10.1
  • v1.10.2
  • v1.10.3
  • v1.10.4
  • v1.10.5
  • v1.11.0
  • v1.3.0
  • v1.4.0
  • v1.4.1
  • v1.4.2
  • v1.4.3
  • v1.4.4
  • v1.4.5
  • v1.4.6
  • v1.5.0
  • v1.5.1
  • v1.5.3
  • v1.6.0
  • v1.6.1
  • v1.6.2
  • v1.6.3
  • v1.6.4
  • v1.7.0
  • v1.7.0-rc0
  • v1.7.0-rc1
  • v1.7.1
  • v1.7.2
  • v1.7.3
  • v1.7.3-fix
  • v1.7.3-fix10
  • v1.7.3-fix11
  • v1.7.3-fix12
  • v1.7.3-fix13
  • v1.7.3-fix14
  • v1.7.3-fix15
  • v1.7.3-fix16
  • v1.7.3-fix17
  • v1.7.3-fix18
  • v1.7.3-fix19
  • v1.7.3-fix2
  • v1.7.3-fix20
  • v1.7.3-fix21
  • v1.7.3-fix3
  • v1.7.3-fix4
  • v1.7.3-fix5
  • v1.7.3-fix6
  • v1.7.3-fix7
  • v1.7.3-fix8
  • v1.7.3-fix9
  • v1.8.0
  • v1.8.1
  • v1.8.2
  • v1.8.2-fix
  • v1.8.2-fix2
  • v1.8.2-fix3
  • v1.8.2-fix4
  • v1.9.0
  • v1.9.0-rc0
  • v1.9.0-rc1
  • v1.9.1
  • v1.9.2
  • v1.9.2-rc0
  • v1.9.3
165 results
Show changes

Commits on Source 55

407 files
+ 30071
29142
Compare changes
  • Side-by-side
  • Inline

Files

+11 −7
Original line number Original line Diff line number Diff line
APP_VERSION=1.9
FLUENTBIT_VERSION=4.0.0
GRAFANA_VERSION=11.4.0
MARIADB_VERSION=11.3.2
MARIADB_VERSION=11.3.2
POSTGRES_VERSION=17.0.0
KEYCLOAK_VERSION=26.2.4
KEYCLOAK_VERSION=26.0.4
MYSQLD_EXPORTER_VERSION=0.15.1
RABBITMQ_VERSION=3.13.7
NGINX_VERSION=1.28.0
OPENSEARCH_VERSION=2.10.0
NGINX_VERSION=1.27.3-alpine3.20-slim
OPENLDAP_VERSION=2.6.8
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
PROMETHEUS_VERSION=2.54.1
RABBITMQ_VERSION=3.13.1
SEAWEEDFS_VERSION=3.87.0
+95 −148
Original line number Original line Diff line number Diff line
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
x-healthcheck-params: &healthcheck-params
  interval: 30s
  interval: 30s
  timeout: 10s
  timeout: 10s
@@ -66,29 +12,49 @@ volumes:
  identity-service-data:
  identity-service-data:
  metric-db-data:
  metric-db-data:
  dashboard-ui-data:
  dashboard-ui-data:
  dashboard-db-data:


services:
services:
  dbrepo-metadata-db:
  dbrepo-metadata-db:
    restart: "no"
    restart: "no"
    container_name: dbrepo-metadata-db
    container_name: dbrepo-metadata-db
    hostname: metadata-db
    hostname: metadata-db
    image: docker.io/bitnami/mariadb:${MARIADB_VERSION}
    image: docker.io/bitnami/mariadb-galera:${MARIADB_VERSION}
    volumes:
    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/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
      - ./config/2_setup-data.sql:/docker-entrypoint-initdb.d/2_setup-data.sql
    ports:
    ports:
      - "3306:3306"
      - "3306:3306"
    environment:
    environment:
      MARIADB_GALERA_MARIABACKUP_PASSWORD: "${METADATA_DB_BACKUP_PASSWORD:-dbrepo}"
      MARIADB_DATABASE: "${METADATA_DB:-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_ROOT_PASSWORD: "${METADATA_DB_PASSWORD:-dbrepo}"
      MARIADB_SKIP_TEST_DB: "yes"
      MARIADB_USER: "${READONLY_USERNAME:-readonly}"
    healthcheck:
    healthcheck:
      test: /opt/bitnami/scripts/mariadb/healthcheck.sh --connect --innodb_initialized
      test: /opt/bitnami/scripts/mariadb-galera/healthcheck.sh --connect --innodb_initialized
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
    logging:
      <<: *resources-micro-hm
      driver: json-file
    platform: linux/amd64

  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:
    logging:
      driver: json-file
      driver: json-file


@@ -96,23 +62,40 @@ services:
    restart: "no"
    restart: "no"
    container_name: dbrepo-data-db
    container_name: dbrepo-data-db
    hostname: data-db
    hostname: data-db
    image: docker.io/bitnami/mariadb:${MARIADB_VERSION}
    image: docker.io/bitnami/mariadb-galera:${MARIADB_VERSION}
    volumes:
    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
      - ./config/1_grant-user.sql:/docker-entrypoint-initdb.d/1_grant-user.sql
    ports:
    ports:
      - "3307:3306"
      - "3307:3306"
    environment:
    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_PASSWORD: "${READONLY_PASSWORD:-readonly}"
      MARIADB_ROOT_PASSWORD: "${DATA_DB_PASSWORD:-dbrepo}"
      MARIADB_ROOT_PASSWORD: "${DATA_DB_PASSWORD:-dbrepo}"
      MARIADB_SKIP_TEST_DB: "yes"
      MARIADB_USER: "${READONLY_USERNAME:-readonly}"
      MARIADB_USER: "${READONLY_USERNAME:-readonly}"
    healthcheck:
    healthcheck:
      test: /opt/bitnami/scripts/mariadb/healthcheck.sh --connect --innodb_initialized
      test: /opt/bitnami/scripts/mariadb-galera/healthcheck.sh --connect --innodb_initialized
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
    logging:
      <<: *resources-micro-hm
      driver: json-file
    platform: linux/amd64

  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:
    logging:
      driver: json-file
      driver: json-file


@@ -131,9 +114,23 @@ services:
    healthcheck:
    healthcheck:
      test: "psql -U ${AUTH_DB_USERNAME:-keycloak} -h 127.0.0.1 -p 5432 -d ${AUTH_DB_NAME:-keycloak} -c 'select version();'"
      test: "psql -U ${AUTH_DB_USERNAME:-keycloak} -h 127.0.0.1 -p 5432 -d ${AUTH_DB_NAME:-keycloak} -c 'select version();'"
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
    logging:
      <<: *resources-micro
      driver: json-file
    platform: linux/amd64

  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:
    logging:
      driver: json-file
      driver: json-file


@@ -161,16 +158,13 @@ services:
      KEYCLOAK_DATABASE_USER: "${AUTH_DB_USERNAME:-keycloak}"
      KEYCLOAK_DATABASE_USER: "${AUTH_DB_USERNAME:-keycloak}"
      KEYCLOAK_DATABASE_PASSWORD: "${AUTH_DB_PASSWORD:-dbrepo}"
      KEYCLOAK_DATABASE_PASSWORD: "${AUTH_DB_PASSWORD:-dbrepo}"
      KEYCLOAK_HOSTNAME: "${BASE_URL:-http://localhost}"
      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}"
      METADATA_SERVICE_ENDPOINT: "${METADATA_SERVICE_ENDPOINT:-http://metadata-service:8080}"
      SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
      SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
      SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}"
      SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}"
    healthcheck:
    healthcheck:
      test: curl -fsS localhost:8080/realms/master
      test: curl -fsS localhost:8080/realms/master
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-medium
    platform: linux/amd64
    depends_on:
    depends_on:
      dbrepo-identity-service:
      dbrepo-identity-service:
        condition: service_healthy
        condition: service_healthy
@@ -183,7 +177,7 @@ services:
    init: true
    init: true
    restart: "no"
    restart: "no"
    container_name: dbrepo-auth-service-init
    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:
    environment:
      AUTH_SERVICE_ENDPOINT: ${AUTH_SERVICE_ENDPOINT:-http://auth-service:8080}
      AUTH_SERVICE_ENDPOINT: ${AUTH_SERVICE_ENDPOINT:-http://auth-service:8080}
      METADATA_DB: "${METADATA_DB:-dbrepo}"
      METADATA_DB: "${METADATA_DB:-dbrepo}"
@@ -192,14 +186,11 @@ services:
      READONLY_USERNAME: "${READONLY_USERNAME:-readonly}"
      READONLY_USERNAME: "${READONLY_USERNAME:-readonly}"
      SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
      SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
      SYSTEM_PASSWORD: ${SYSTEM_PASSWORD:-admin}
      SYSTEM_PASSWORD: ${SYSTEM_PASSWORD:-admin}
    deploy:
      <<: *resources-nano
    platform: linux/amd64
    depends_on:
    depends_on:
      dbrepo-auth-service:
      dbrepo-auth-service:
        condition: service_healthy
        condition: service_healthy
      dbrepo-gateway-service:
      dbrepo-gateway-service:
        condition: service_healthy
        condition: service_started
      dbrepo-metadata-db:
      dbrepo-metadata-db:
        condition: service_healthy
        condition: service_healthy
    logging:
    logging:
@@ -209,7 +200,7 @@ services:
    restart: "no"
    restart: "no"
    container_name: dbrepo-metadata-service
    container_name: dbrepo-metadata-service
    hostname: 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:
    environment:
      ADMIN_EMAIL: "${ADMIN_EMAIL:-noreply@localhost}"
      ADMIN_EMAIL: "${ADMIN_EMAIL:-noreply@localhost}"
      ANALYSE_SERVICE_ENDPOINT: "${ANALYSE_SERVICE_ENDPOINT:-http://analyse-service:8080}"
      ANALYSE_SERVICE_ENDPOINT: "${ANALYSE_SERVICE_ENDPOINT:-http://analyse-service:8080}"
@@ -251,9 +242,6 @@ services:
    healthcheck:
    healthcheck:
      test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1
      test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-small
    platform: linux/amd64
    depends_on:
    depends_on:
      dbrepo-auth-service:
      dbrepo-auth-service:
        condition: service_healthy
        condition: service_healthy
@@ -274,7 +262,7 @@ services:
    restart: "no"
    restart: "no"
    container_name: dbrepo-analyse-service
    container_name: dbrepo-analyse-service
    hostname: 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:
    environment:
      AUTH_SERVICE_CLIENT: ${AUTH_SERVICE_CLIENT:-dbrepo-client}
      AUTH_SERVICE_CLIENT: ${AUTH_SERVICE_CLIENT:-dbrepo-client}
      AUTH_SERVICE_CLIENT_SECRET: ${AUTH_SERVICE_CLIENT:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}
      AUTH_SERVICE_CLIENT_SECRET: ${AUTH_SERVICE_CLIENT:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}
@@ -291,9 +279,6 @@ services:
    healthcheck:
    healthcheck:
      test: curl -sSL localhost:8080/health | grep 'UP' || exit 1
      test: curl -sSL localhost:8080/health | grep 'UP' || exit 1
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-micro
    platform: linux/amd64
    logging:
    logging:
      driver: json-file
      driver: json-file


@@ -319,9 +304,6 @@ services:
    healthcheck:
    healthcheck:
      test: rabbitmq-diagnostics -q is_running | grep 'is fully booted and running'
      test: rabbitmq-diagnostics -q is_running | grep 'is fully booted and running'
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-micro
    platform: linux/amd64
    logging:
    logging:
      driver: json-file
      driver: json-file


@@ -337,9 +319,6 @@ services:
    healthcheck:
    healthcheck:
      test: curl -sSL 127.0.0.1:9200
      test: curl -sSL 127.0.0.1:9200
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-medium
    platform: linux/amd64
    logging:
    logging:
      driver: json-file
      driver: json-file


@@ -347,7 +326,7 @@ services:
    restart: "no"
    restart: "no"
    container_name: dbrepo-search-service
    container_name: dbrepo-search-service
    hostname: 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:
    environment:
      AUTH_SERVICE_CLIENT: ${AUTH_SERVICE_CLIENT:-dbrepo-client}
      AUTH_SERVICE_CLIENT: ${AUTH_SERVICE_CLIENT:-dbrepo-client}
      AUTH_SERVICE_CLIENT_SECRET: ${AUTH_SERVICE_CLIENT_SECRET:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}
      AUTH_SERVICE_CLIENT_SECRET: ${AUTH_SERVICE_CLIENT_SECRET:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}
@@ -362,9 +341,6 @@ services:
    healthcheck:
    healthcheck:
      test: curl -sSL localhost:8080/health | grep 'UP' || exit 1
      test: curl -sSL localhost:8080/health | grep 'UP' || exit 1
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-micro
    platform: linux/amd64
    logging:
    logging:
      driver: json-file
      driver: json-file


@@ -372,7 +348,7 @@ services:
    restart: "no"
    restart: "no"
    container_name: dbrepo-ui
    container_name: dbrepo-ui
    hostname: 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:
    environment:
      NUXT_PUBLIC_API_CLIENT: "${BASE_URL:-http://localhost}"
      NUXT_PUBLIC_API_CLIENT: "${BASE_URL:-http://localhost}"
      NUXT_PUBLIC_API_SERVER: "${BASE_URL:-http://gateway-service}"
      NUXT_PUBLIC_API_SERVER: "${BASE_URL:-http://gateway-service}"
@@ -389,9 +365,6 @@ services:
    healthcheck:
    healthcheck:
      test: curl -fsSL 127.0.0.1:3000 && curl -fsSL 127.0.0.1:3000/health
      test: curl -fsSL 127.0.0.1:3000 && curl -fsSL 127.0.0.1:3000/health
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-micro
    platform: linux/amd64
    depends_on:
    depends_on:
      dbrepo-search-service:
      dbrepo-search-service:
        condition: service_healthy
        condition: service_healthy
@@ -404,17 +377,11 @@ services:
    restart: "no"
    restart: "no"
    container_name: dbrepo-gateway-service
    container_name: dbrepo-gateway-service
    hostname: gateway-service
    hostname: gateway-service
    image: docker.io/nginx:${NGINX_VERSION}
    image: docker.io/bitnami/nginx:${NGINX_VERSION}
    ports:
    ports:
      - "80:8080"
      - "80:8080"
    volumes:
    volumes:
      - ./config/dbrepo.conf:/etc/nginx/conf.d/default.conf
      - ./dbrepo-gateway-service/dbrepo.conf:/opt/bitnami/nginx/conf/server_blocks/dbrepo.conf:ro
    healthcheck:
      test: lsof -i TCP:80 || exit 1
      <<: *healthcheck-params
    deploy:
      <<: *resources-nano
    platform: linux/amd64
    depends_on:
    depends_on:
      dbrepo-analyse-service:
      dbrepo-analyse-service:
        condition: service_healthy
        condition: service_healthy
@@ -437,7 +404,7 @@ services:
    restart: "no"
    restart: "no"
    container_name: dbrepo-identity-service
    container_name: dbrepo-identity-service
    hostname: identity-service
    hostname: identity-service
    image: bitnami/openldap:2.6.8-debian-12-r1
    image: docker.io/bitnami/openldap:${OPENLDAP_VERSION}
    environment:
    environment:
      LDAP_ADMIN_USERNAME: "${IDENTITY_SERVICE_ADMIN_USERNAME:-admin}"
      LDAP_ADMIN_USERNAME: "${IDENTITY_SERVICE_ADMIN_USERNAME:-admin}"
      LDAP_ADMIN_PASSWORD: "${IDENTITY_SERVICE_ADMIN_PASSWORD:-admin}"
      LDAP_ADMIN_PASSWORD: "${IDENTITY_SERVICE_ADMIN_PASSWORD:-admin}"
@@ -451,9 +418,6 @@ services:
    healthcheck:
    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"
      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
      <<: *healthcheck-params
    deploy:
      <<: *resources-nano
    platform: linux/amd64
    logging:
    logging:
      driver: json-file
      driver: json-file


@@ -462,7 +426,7 @@ services:
    init: true
    init: true
    container_name: dbrepo-search-service-init
    container_name: dbrepo-search-service-init
    hostname: 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:
    environment:
      LOG_LEVEL: ${LOG_LEVEL:-info}
      LOG_LEVEL: ${LOG_LEVEL:-info}
      METADATA_SERVICE_ENDPOINT: ${METADATA_SERVICE_ENDPOINT:-http://metadata-service:8080}
      METADATA_SERVICE_ENDPOINT: ${METADATA_SERVICE_ENDPOINT:-http://metadata-service:8080}
@@ -470,9 +434,6 @@ services:
      OPENSEARCH_PORT: ${OPENSEARCH_PORT:-9200}
      OPENSEARCH_PORT: ${OPENSEARCH_PORT:-9200}
      SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
      SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
      SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}"
      SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}"
    deploy:
      <<: *resources-nano
    platform: linux/amd64
    depends_on:
    depends_on:
      dbrepo-search-db:
      dbrepo-search-db:
        condition: service_healthy
        condition: service_healthy
@@ -486,16 +447,13 @@ services:
    init: true
    init: true
    container_name: dbrepo-dashboard-service-init
    container_name: dbrepo-dashboard-service-init
    hostname: search-dashboard-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:
    environment:
      LOG_LEVEL: ${LOG_LEVEL:-info}
      LOG_LEVEL: ${LOG_LEVEL:-info}
      DASHBOARD_UI_ENDPOINT: "${DASHBOARD_UI_ENDPOINT:-http://dashboard-ui:3000}"
      DASHBOARD_UI_ENDPOINT: "${DASHBOARD_UI_ENDPOINT:-http://dashboard-ui:3000}"
      METADATA_SERVICE_ENDPOINT: ${METADATA_SERVICE_ENDPOINT:-http://metadata-service:8080}
      METADATA_SERVICE_ENDPOINT: ${METADATA_SERVICE_ENDPOINT:-http://metadata-service:8080}
      SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
      SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}"
      SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}"
      SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}"
    deploy:
      <<: *resources-nano
    platform: linux/amd64
    depends_on:
    depends_on:
      dbrepo-dashboard-ui:
      dbrepo-dashboard-ui:
        condition: service_healthy
        condition: service_healthy
@@ -518,9 +476,6 @@ services:
    healthcheck:
    healthcheck:
      test: echo "cluster.check" | weed shell | grep "checking master.*ok" || exit 1
      test: echo "cluster.check" | weed shell | grep "checking master.*ok" || exit 1
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-nano
    platform: linux/amd64
    logging:
    logging:
      driver: json-file
      driver: json-file


@@ -535,9 +490,6 @@ services:
    healthcheck:
    healthcheck:
      test: promtool check healthy
      test: promtool check healthy
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-nano
    platform: linux/amd64
    logging:
    logging:
      driver: json-file
      driver: json-file


@@ -546,15 +498,12 @@ services:
    init: true
    init: true
    container_name: dbrepo-storage-service-init
    container_name: dbrepo-storage-service-init
    hostname: 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:
    environment:
      S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-seaweedfsadmin}
      S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-seaweedfsadmin}
      S3_BUCKET: "${S3_BUCKET:-dbrepo}"
      S3_BUCKET: "${S3_BUCKET:-dbrepo}"
      S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-seaweedfsadmin}
      S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-seaweedfsadmin}
      STORAGE_ENDPOINT: ${STORAGE_ENDPOINT:-http://storage-service:9000}
      STORAGE_ENDPOINT: ${STORAGE_ENDPOINT:-http://storage-service:9000}
    deploy:
      <<: *resources-nano
    platform: linux/amd64
    depends_on:
    depends_on:
      dbrepo-storage-service:
      dbrepo-storage-service:
        condition: service_healthy
        condition: service_healthy
@@ -565,7 +514,7 @@ services:
    restart: "no"
    restart: "no"
    container_name: dbrepo-data-service
    container_name: dbrepo-data-service
    hostname: 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:
    environment:
      AUTH_SERVICE_CLIENT: "${AUTH_SERVICE_CLIENT:-dbrepo-client}"
      AUTH_SERVICE_CLIENT: "${AUTH_SERVICE_CLIENT:-dbrepo-client}"
      AUTH_SERVICE_CLIENT_SECRET: "${AUTH_SERVICE_CLIENT:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}"
      AUTH_SERVICE_CLIENT_SECRET: "${AUTH_SERVICE_CLIENT:-MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG}"
@@ -600,9 +549,6 @@ services:
    healthcheck:
    healthcheck:
      test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1
      test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-large
    platform: linux/amd64
    depends_on:
    depends_on:
      dbrepo-data-db:
      dbrepo-data-db:
        condition: service_healthy
        condition: service_healthy
@@ -613,15 +559,24 @@ services:
    restart: "no"
    restart: "no"
    container_name: dbrepo-dashboard-ui
    container_name: dbrepo-dashboard-ui
    hostname: 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:
    ports:
      - "3000:3000"
      - "3000:3000"
    volumes:
    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:
    environment:
      BASE_URL: "${BASE_URL:-http://localhost}"
      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_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"
      GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION: "true"
      LDAP_ADMIN_USERNAME: "${IDENTITY_SERVICE_ADMIN_USERNAME:-admin}"
      LDAP_ADMIN_USERNAME: "${IDENTITY_SERVICE_ADMIN_USERNAME:-admin}"
      LDAP_ADMIN_PASSWORD: "${IDENTITY_SERVICE_ADMIN_PASSWORD:-admin}"
      LDAP_ADMIN_PASSWORD: "${IDENTITY_SERVICE_ADMIN_PASSWORD:-admin}"
@@ -629,9 +584,6 @@ services:
    healthcheck:
    healthcheck:
      test: curl -fsSL --head 127.0.0.1:3000
      test: curl -fsSL --head 127.0.0.1:3000
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-nano
    platform: linux/amd64
    extra_hosts:
    extra_hosts:
      - "localhost:host-gateway"
      - "localhost:host-gateway"
    logging:
    logging:
@@ -641,9 +593,7 @@ services:
    restart: "no"
    restart: "no"
    container_name: dbrepo-dashboard-service
    container_name: dbrepo-dashboard-service
    hostname: dashboard-service
    hostname: dashboard-service
    image: registry.datalab.tuwien.ac.at/dbrepo/dashboard-service:1.8.1
    image: registry.datalab.tuwien.ac.at/dbrepo/dashboard-service:${APP_VERSION}
    ports:
      - "4070:8080"
    environment:
    environment:
      AUTH_SERVICE_ENDPOINT: ${AUTH_SERVICE_ENDPOINT:-http://auth-service:8080}
      AUTH_SERVICE_ENDPOINT: ${AUTH_SERVICE_ENDPOINT:-http://auth-service:8080}
      BASE_URL: "${BASE_URL:-http://localhost}"
      BASE_URL: "${BASE_URL:-http://localhost}"
@@ -653,9 +603,6 @@ services:
    healthcheck:
    healthcheck:
      test: curl -fsSL --head 127.0.0.1:8080/health
      test: curl -fsSL --head 127.0.0.1:8080/health
      <<: *healthcheck-params
      <<: *healthcheck-params
    deploy:
      <<: *resources-micro
    platform: linux/amd64
    depends_on:
    depends_on:
      dbrepo-dashboard-ui:
      dbrepo-dashboard-ui:
        condition: service_healthy
        condition: service_healthy
+2 −2
Original line number Original line Diff line number Diff line
@@ -111,7 +111,7 @@
  },
  },
  "externalDocs": {
  "externalDocs": {
    "description": "Sourcecode Documentation",
    "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": {
  "info": {
    "contact": {
    "contact": {
@@ -124,7 +124,7 @@
      "url": "https://www.apache.org/licenses/LICENSE-2.0"
      "url": "https://www.apache.org/licenses/LICENSE-2.0"
    },
    },
    "title": "Database Repository Analyse Service API",
    "title": "Database Repository Analyse Service API",
    "version": "1.8.1"
    "version": "1.9.0"
  },
  },
  "openapi": "3.0.0",
  "openapi": "3.0.0",
  "paths": {
  "paths": {
+231 −0
Original line number Original line Diff line number Diff line
{
  "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"
    }
  ]
}

.docs/.openapi/api-dashboard.yaml

deleted100644 → 0
+0 −1
Original line number Original line Diff line number Diff line
"<!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>"
+3884 −0

File added.

Preview size limit exceeded, changes collapsed.

.docs/.openapi/api-data.yaml

deleted100644 → 0
+0 −2872

File deleted.

Preview size limit exceeded, changes collapsed.

+9754 −0

File added.

Preview size limit exceeded, changes collapsed.

.docs/.openapi/api-metadata.yaml

deleted100644 → 0
+0 −7097

File deleted.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Original line Diff line number Diff line
@@ -128,7 +128,7 @@
      "url": "https://www.apache.org/licenses/LICENSE-2.0"
      "url": "https://www.apache.org/licenses/LICENSE-2.0"
    },
    },
    "title": "Database Repository Search Service API",
    "title": "Database Repository Search Service API",
    "version": "1.8.1"
    "version": "1.9.0"
  },
  },
  "openapi": "3.0.0",
  "openapi": "3.0.0",
  "paths": {
  "paths": {
+2 −2
Original line number Original line Diff line number Diff line
@@ -11,7 +11,7 @@ components:
      type: http
      type: http
externalDocs:
externalDocs:
  description: Project Website
  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:
info:
  contact:
  contact:
    email: andreas.rauber@tuwien.ac.at
    email: andreas.rauber@tuwien.ac.at
@@ -24,7 +24,7 @@ info:
    name: Apache 2.0
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  title: DBRepo REST API
  title: DBRepo REST API
  version: 1.8.1
  version: 1.9.0
openapi: 3.1.0
openapi: 3.1.0
servers:
servers:
  - description: Test Instance
  - description: Test Instance
+19 −20
Original line number Original line Diff line number Diff line
@@ -16,7 +16,7 @@ info:
    name: Apache 2.0
    name: Apache 2.0
    url: 'https://www.apache.org/licenses/LICENSE-2.0'
    url: 'https://www.apache.org/licenses/LICENSE-2.0'
  title: DBRepo REST API
  title: DBRepo REST API
  version: 1.8.1
  version: 1.9.0
servers:
servers:
  - description: Test Instance
  - description: Test Instance
    url: 'https://test.dbrepo.tuwien.ac.at'
    url: 'https://test.dbrepo.tuwien.ac.at'
@@ -24,7 +24,7 @@ servers:
    url: 'http://localhost'
    url: 'http://localhost'
externalDocs:
externalDocs:
  description: Project Website
  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:
paths:
  /api/analyse/datatypes:
  /api/analyse/datatypes:
    get:
    get:
@@ -1193,8 +1193,8 @@ paths:
                $ref: '#/components/schemas/ApiErrorDto'
                $ref: '#/components/schemas/ApiErrorDto'
        '404':
        '404':
          description: >-
          description: >-
            Failed to find database in metadata database or query in query store
            Failed to find database or user in metadata database or query in
            of the data database
            query store of the data database
          content:
          content:
            application/json:
            application/json:
              schema:
              schema:
@@ -5252,7 +5252,7 @@ components:
        execution:
        execution:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2021-03-12T15:26:21.000Z'
          example: '2021-03-12T15:26:21Z'
        query:
        query:
          type: string
          type: string
          example: SELECT `id` FROM `air_quality`
          example: SELECT `id` FROM `air_quality`
@@ -5430,7 +5430,7 @@ components:
        execution:
        execution:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2021-03-12T15:26:21.000Z'
          example: '2021-03-12T15:26:21Z'
        doi:
        doi:
          type: string
          type: string
          example: 10.1038/nphys1170
          example: 10.1038/nphys1170
@@ -5991,11 +5991,11 @@ components:
        created:
        created:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2022-01-01T08:00:00.000Z'
          example: '2022-01-01 08:00:00.000'
        last_retrieved:
        last_retrieved:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2025-01-23T12:09:01.000Z'
          example: '2025-01-23T12:09:01'
        database_id:
        database_id:
          type: string
          type: string
          format: uuid
          format: uuid
@@ -6088,7 +6088,6 @@ components:
        - column_id
        - column_id
        - operator_id
        - operator_id
        - type
        - type
        - value
    OrderDto:
    OrderDto:
      type: object
      type: object
      properties:
      properties:
@@ -6141,7 +6140,7 @@ components:
        timestamp:
        timestamp:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2021-03-12T15:26:21.000Z'
          example: '2021-03-12T15:26:21Z'
        event:
        event:
          type: string
          type: string
          enum:
          enum:
@@ -6206,7 +6205,7 @@ components:
        last_retrieved:
        last_retrieved:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2025-01-23T12:09:01.000Z'
          example: '2025-01-23T12:09:01'
        qualified_name:
        qualified_name:
          type: string
          type: string
          example: Josiah Carberry — @jcarberry
          example: Josiah Carberry — @jcarberry
@@ -6376,11 +6375,11 @@ components:
        display_start:
        display_start:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2021-03-12T15:26:21.000Z'
          example: '2021-03-12T15:26:21Z'
        display_end:
        display_end:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2021-03-12T15:26:21.000Z'
          example: '2021-03-12T15:26:21Z'
      required:
      required:
        - message
        - message
        - type
        - type
@@ -7778,11 +7777,11 @@ components:
        display_start:
        display_start:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2021-03-12T15:26:21.000Z'
          example: '2021-03-12T15:26:21Z'
        display_end:
        display_end:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2021-03-12T15:26:21.000Z'
          example: '2021-03-12T15:26:21Z'
      required:
      required:
        - message
        - message
        - type
        - type
@@ -8376,7 +8375,7 @@ components:
        last_retrieved:
        last_retrieved:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2025-01-23T12:09:01.000Z'
          example: '2025-01-23T12:09:01'
        internal_name:
        internal_name:
          type: string
          type: string
          example: air_quality
          example: air_quality
@@ -8566,11 +8565,11 @@ components:
        display_start:
        display_start:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2021-03-12T15:26:21.000Z'
          example: '2021-03-12T15:26:21Z'
        display_end:
        display_end:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2021-03-12T15:26:21.000Z'
          example: '2021-03-12T15:26:21Z'
      required:
      required:
        - id
        - id
        - message
        - message
@@ -8793,11 +8792,11 @@ components:
        created:
        created:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2022-01-01T08:00:00.000Z'
          example: '2022-01-01 08:00:00.000'
        last_retrieved:
        last_retrieved:
          type: string
          type: string
          format: date-time
          format: date-time
          example: '2025-01-23T12:09:01.000Z'
          example: '2025-01-23T12:09:01'
        database_id:
        database_id:
          type: string
          type: string
          format: uuid
          format: uuid
+42 −15
Original line number Original line Diff line number Diff line
#!/bin/bash
#!/bin/bash
declare -A services
ENDPOINTS="analyse-service:8080,search-service:8080,dashboard-service:8080,data-service:8080,metadata-service:8080"
services[4050]=analyse
services[4060]=search
services[4070]=dashboard
services[9093]=data
services[9099]=metadata


# requires https://github.com/mikefarah/yq/ -> v4.44.3
# 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 () {
function retrieve () {
  if [[ "$2" == analyse ]] || [[ "$2" == search ]] || [[ "$2" == dashboard ]]; then
  IP=$(ip $1)
    echo "... retrieve json api from localhost:$1"
  if [[ $IP == "" ]]; then
    curl -sSL "http://localhost:$1/api-$2.json" | yq -o=json - > "./.docs/.openapi/api-$2.yaml"
    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
  else
    echo "... retrieve yaml api from localhost:$1"
    echo "http://$IP:$PORT/v3/api-docs.yaml"
    curl -sSL "http://localhost:$1/v3/api-docs.yaml" > "./.docs/.openapi/api-$2.yaml"
  fi
  fi
}
}


for key in "${!services[@]}"; do
function hostname () {
  echo "Generating ${services[$key]} API"
  IN="$1"
  retrieve "$key" "${services[$key]}"
  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
done
 No newline at end of file
+4 −4
Original line number Original line Diff line number Diff line
@@ -4,16 +4,16 @@
      "inputFile": "./api.base.yaml"
      "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"
  "output": "./api.yaml"
+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! 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
    * Ports: 5000/tcp
    * Prometheus: `http://<hostname>:5000/metrics`
    * Prometheus: `http://<hostname>:5000/metrics`
+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! 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
    * Ports: 8080/tcp
    * UI: `http://<hostname>:8080/`
    * UI: `http://<hostname>:8080/`
+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! 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
    * Ports: 5672/tcp, 15672/tcp, 15692/tcp
    * AMQP: `amqp://<hostname>:5672`
    * AMQP: `amqp://<hostname>:5672`
+1 −1
Original line number Original line Diff line number Diff line
@@ -4,7 +4,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! 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
    * Ports: 3306/tcp
    * JDBC: `jdbc://mariadb:<hostname>:3306`
    * JDBC: `jdbc://mariadb:<hostname>:3306`
+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! 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
    * Ports: 9093/tcp
    * Info: `http://<hostname>:9093/actuator/info`
    * Info: `http://<hostname>:9093/actuator/info`
+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! 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
    * Ports: 80/tcp


+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! debug "Debug Information"


    Image: [`docker.io/openldap:2.6.8-debian-12-r1`](https://hub.docker.com/r/openldap)
    Image: [`docker.io/bitnami/openldap:2.6.8`](https://hub.docker.com/r/openldap)


    * Ports: 1389/tcp, 1636/tcp
    * Ports: 1389/tcp, 1636/tcp


+1 −1
Original line number Original line Diff line number Diff line
@@ -4,7 +4,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! 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
    * Ports: 3306/tcp
    * JDBC: `jdbc://mariadb:<hostname>:3306`
    * JDBC: `jdbc://mariadb:<hostname>:3306`
+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! debug "Debug Information"


    Image: [`registry.datalab.tuwien.ac.at/dbrepo/metadata-service:1.4.7`](https://hub.docker.com/r/dbrepo/metadata-service)
    Image: [`registry.datalab.tuwien.ac.at/dbrepo/metadata-service:1.9.0`](https://hub.docker.com/r/dbrepo/metadata-service)


    * Ports: 9099/tcp
    * Ports: 9099/tcp
    * Info: `http://<hostname>:9099/actuator/info`
    * Info: `http://<hostname>:9099/actuator/info`
+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! debug "Debug Information"


    Image: [`bitnami/prometheus:2.54.1-debian-12-r4`](https://hub.docker.com/r/bitnami/prometheus)
    Image: [`bitnami/prometheus:2.54.1`](https://hub.docker.com/r/bitnami/prometheus)


    * Ports: 8080/tcp
    * Ports: 8080/tcp


+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! debug "Debug Information"


    Image: [`registry.datalab.tuwien.ac.at/dbrepo/search-service:1.4.7`](https://hub.docker.com/r/dbrepo/search-service)
    Image: [`registry.datalab.tuwien.ac.at/dbrepo/search-service:1.9.0`](https://hub.docker.com/r/dbrepo/search-service)


    * Ports: 4000/tcp
    * Ports: 4000/tcp
    * Health: `http://<hostname>:4000/api/search/health`
    * Health: `http://<hostname>:4000/api/search/health`
+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! debug "Debug Information"


    Image: [`docker.io/chrislusf/seaweedfs:3.59`](https://hub.docker.com/r/chrislusf/seaweedfs)
    Image: [`docker.io/chrislusf/seaweedfs:3.71.0`](https://hub.docker.com/r/chrislusf/seaweedfs)


    * Ports: 8888/tcp, 9000/tcp
    * Ports: 8888/tcp, 9000/tcp
    * Prometheus: `http://<hostname>:9091/metrics`
    * Prometheus: `http://<hostname>:9091/metrics`
+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ author: Martin Weise


!!! debug "Debug Information"
!!! debug "Debug Information"


    Image: [`registry.datalab.tuwien.ac.at/dbrepo/ui:1.4.7`](https://hub.docker.com/r/dbrepo/ui)
    Image: [`registry.datalab.tuwien.ac.at/dbrepo/ui:1.9.0`](https://hub.docker.com/r/dbrepo/ui)


    * Ports: 3000/tcp
    * Ports: 3000/tcp


+20 −1

File changed.

Preview size limit exceeded, changes collapsed.

+41 −0

File added.

Preview size limit exceeded, changes collapsed.

+26 −12

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1

File changed.

Preview size limit exceeded, changes collapsed.

+123 KiB

122.55 KiB

+1 −1
Original line number Original line Diff line number Diff line
@@ -14,7 +14,7 @@ author: Martin Weise
![Maintainability Rating](./images/maintainability.svg)
![Maintainability Rating](./images/maintainability.svg)
![Security Rating](./images/security.svg)
![Security Rating](./images/security.svg)


Documentation for version: [v1.8.1](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/releases).
Documentation for version: [v1.9.0](https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/releases).


DBRepo is a repository for data in databases that cover the entire data life cycle supporting data evolution, -citation 
DBRepo is a repository for data in databases that cover the entire data life cycle supporting data evolution, -citation 
and -versioning. It implements the query store of the [RDA WGDC](https://doi.org/10.1162/99608f92.be565013) on precisely
and -versioning. It implements the query store of the [RDA WGDC](https://doi.org/10.1162/99608f92.be565013) on precisely