diff --git a/.docker/.env b/.docker/.env index 7df6edf0fe8433232e7eeaff888aedb8bef359a1..e50d4f6b5b1c15372029abec7a4fb924a70781ad 100644 --- a/.docker/.env +++ b/.docker/.env @@ -1,13 +1,9 @@ -# Example values to override for non-test deployments - -#BASE_URL=https://example.com -#ADMIN_EMAIL=noreply@example.com -#LOG_LEVEL=info -#IDENTITY_SERVICE_ADMIN_PASSWORD=admin -#AUTH_SERVICE_ADMIN_PASSWORD=admin -#METADATA_DB_PASSWORD=dbrepo -#DATA_DB_PASSWORD=dbrepo -#AUTH_DB_PASSWORD=dbrepo -#S3_ACCESS_KEY_ID=seaweedfsadmin -#S3_SECRET_ACCESS_KEY=seaweedfsadmin -#SYSTEM_PASSWORD=admin \ No newline at end of file +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 +OPENLDAP_VERSION=2.6.8 +SEAWEEDFS_VERSION=3.71.0 +PROMETHEUS_VERSION=2.54.1 \ No newline at end of file diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml index 5321cc47d59d5522704eed6c928e1323161584c9..61f2fdc62dcd556d6ec77e157eca0d78dae82892 100644 --- a/.docker/docker-compose.yml +++ b/.docker/docker-compose.yml @@ -1,3 +1,62 @@ +x-resources-nano: &resources-nano + resources: + reservations: + cpus: '0.1' + memory: 128M + limits: + cpus: '0.15' + memory: 192M + +x-resources-nano-hm: &resources-nano-hm + resources: + reservations: + cpus: '0.1' + memory: 1024M + limits: + cpus: '0.5' + memory: 4096M + +x-resources-micro: &resources-micro + resources: + reservations: + cpus: '0.25' + memory: 256M + limits: + cpus: '0.375' + memory: 384M + +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 + retries: 15 + volumes: metadata-db-data: data-db-data: @@ -13,7 +72,7 @@ services: restart: "no" container_name: dbrepo-metadata-db hostname: metadata-db - image: docker.io/mariadb:11.3.2 + image: docker.io/mariadb:${MARIADB_VERSION} volumes: - metadata-db-data:/var/lib/mysql - ./config/1_setup-schema.sql:/docker-entrypoint-initdb.d/1_setup-schema.sql @@ -25,9 +84,9 @@ services: MARIADB_ROOT_PASSWORD: "${METADATA_DB_PASSWORD:-dbrepo}" healthcheck: test: ./usr/local/bin/healthcheck.sh --connect --innodb_initialized - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano-hm logging: driver: json-file @@ -35,7 +94,7 @@ services: restart: "no" container_name: dbrepo-data-db hostname: data-db - image: docker.io/mariadb:11.3.2 + image: docker.io/mariadb:${MARIADB_VERSION} volumes: - data-db-data:/var/lib/mysql - ./config/1_grant-user.sql:/docker-entrypoint-initdb.d/1_grant-user.sql @@ -47,9 +106,9 @@ services: MARIADB_USER: "${READONLY_USERNAME:-readonly}" healthcheck: test: ./usr/local/bin/healthcheck.sh --connect --innodb_initialized - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano-hm logging: driver: json-file @@ -57,7 +116,7 @@ services: restart: "no" container_name: dbrepo-auth-db hostname: auth-db - image: docker.io/bitnami/postgresql:17.0.0-debian-12-r1 + image: docker.io/bitnami/postgresql:${POSTGRES_VERSION} volumes: - auth-db-data:/bitnami/postgresql environment: @@ -67,9 +126,9 @@ services: PGPASSWORD: "${AUTH_DB_PASSWORD:-dbrepo}" healthcheck: test: "psql -U ${AUTH_DB_USERNAME:-keycloak} -h 127.0.0.1 -p 5432 -d ${AUTH_DB_NAME:-keycloak} -c 'select version();'" - interval: 15s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano logging: driver: json-file @@ -77,7 +136,7 @@ services: restart: "no" container_name: dbrepo-auth-service hostname: auth-service - image: bitnami/keycloak:26.0.4-debian-12-r0 + image: docker.io/bitnami/keycloak:${KEYCLOAK_VERSION} volumes: - ./config/import-realms.sh:/docker-entrypoint-initdb.d/import-realms.sh - ./config/master-realm.json:/opt/keycloak/data/import/master-realm.json @@ -97,15 +156,15 @@ 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://127.0.0.1:8080" ## works??? + KEYCLOAK_HOSTNAME_ADMIN: "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 http://localhost:8080/realms/master - interval: 10s - timeout: 5s - retries: 12 + test: curl -fsS localhost:8080/realms/master + <<: *healthcheck-params + deploy: + <<: *resources-small depends_on: dbrepo-identity-service: condition: service_healthy @@ -127,6 +186,8 @@ services: READONLY_USERNAME: "${READONLY_USERNAME:-readonly}" SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}" SYSTEM_PASSWORD: ${SYSTEM_PASSWORD:-admin} + deploy: + <<: *resources-nano depends_on: dbrepo-auth-service: condition: service_healthy @@ -182,9 +243,9 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-small depends_on: dbrepo-auth-service: condition: service_healthy @@ -221,9 +282,9 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: test: curl -sSL localhost:8080/health | grep 'UP' || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-micro logging: driver: json-file @@ -231,7 +292,7 @@ services: restart: "no" container_name: dbrepo-broker-service hostname: broker-service - image: docker.io/bitnami/rabbitmq:3.13.7-debian-12-r4 + image: docker.io/bitnami/rabbitmq:${RABBITMQ_VERSION} ports: - 5672:5672 - 1883:1883 @@ -248,9 +309,9 @@ services: condition: service_healthy healthcheck: test: rabbitmq-diagnostics -q is_running | grep 'is fully booted and running' - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-micro logging: driver: json-file @@ -258,14 +319,14 @@ services: restart: "no" container_name: dbrepo-search-db hostname: search-db - image: docker.io/bitnami/opensearch:2.10.0 + image: docker.io/bitnami/opensearch:${OPENSEARCH_VERSION} ports: - "9200:9200" healthcheck: test: curl -sSL 127.0.0.1:9200 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-medium volumes: - search-db-data:/bitnami/opensearch/data logging: @@ -289,9 +350,9 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: test: curl -sSL localhost:8080/health | grep 'UP' || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-micro logging: driver: json-file @@ -313,14 +374,14 @@ services: NUXT_OIDC_PROVIDERS_KEYCLOAK_REDIRECT_URI: "${BASE_URL:-http://localhost}/auth/keycloak/callback" NUXT_OIDC_PROVIDERS_KEYCLOAK_TOKEN_URL: "${BASE_URL:-http://localhost}/realms/dbrepo/protocol/openid-connect/token" NUXT_OIDC_PROVIDERS_KEYCLOAK_USER_INFO_URL: "${BASE_URL:-http://localhost}/realms/dbrepo/protocol/openid-connect/userinfo" + healthcheck: + test: curl -fsSL 127.0.0.1:3000 && curl -fsSL 127.0.0.1:3000/health + <<: *healthcheck-params + deploy: + <<: *resources-micro depends_on: dbrepo-search-service: condition: service_healthy - healthcheck: - test: curl -fsSL 127.0.0.1:3000 && curl -fsSL 127.0.0.1:3000/health - interval: 10s - timeout: 5s - retries: 12 extra_hosts: - "localhost:host-gateway" logging: @@ -330,16 +391,16 @@ services: restart: "no" container_name: dbrepo-gateway-service hostname: gateway-service - image: docker.io/nginx:1.27.3-alpine3.20-slim + image: docker.io/nginx:${NGINX_VERSION} ports: - "80:8080" volumes: - ./config/dbrepo.conf:/etc/nginx/conf.d/default.conf healthcheck: test: lsof -i TCP:80 || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano depends_on: dbrepo-analyse-service: condition: service_healthy @@ -375,9 +436,11 @@ services: - identity-service-data:/bitnami/openldap 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" - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano + logging: + driver: json-file dbrepo-search-service-init: restart: "no" @@ -392,6 +455,8 @@ services: OPENSEARCH_PORT: ${OPENSEARCH_PORT:-9200} SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}" SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" + deploy: + <<: *resources-nano depends_on: dbrepo-search-db: condition: service_healthy @@ -412,6 +477,8 @@ services: METADATA_SERVICE_ENDPOINT: ${METADATA_SERVICE_ENDPOINT:-http://metadata-service:8080} SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}" SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" + deploy: + <<: *resources-nano depends_on: dbrepo-dashboard-ui: condition: service_healthy @@ -424,7 +491,7 @@ services: restart: "no" container_name: dbrepo-storage-service hostname: storage-service - image: docker.io/bitnami/seaweedfs:3.71.0-debian-12-r4 + image: docker.io/bitnami/seaweedfs:${SEAWEEDFS_VERSION} command: [ "server", "-s3", "-s3.port=9000", "-s3.config=/app/s3_config.json", "-metricsPort=9090" ] volumes: - ./config/s3_config.json:/app/s3_config.json @@ -433,9 +500,9 @@ services: - "8888:8888" healthcheck: test: echo "cluster.check" | weed shell | grep "checking master.*ok" || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano logging: driver: json-file @@ -443,15 +510,15 @@ services: restart: "no" container_name: dbrepo-metric-db hostname: metric-db - image: docker.io/bitnami/prometheus:2.54.1-debian-12-r4 + image: docker.io/bitnami/prometheus:${PROMETHEUS_VERSION} volumes: - ./config/prometheus.yml:/etc/prometheus/prometheus.yml - metric-db-data:/opt/bitnami/prometheus/data healthcheck: test: promtool check healthy - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano logging: driver: json-file @@ -466,6 +533,8 @@ services: 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 depends_on: dbrepo-storage-service: condition: service_healthy @@ -510,9 +579,9 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-large depends_on: dbrepo-data-db: condition: service_healthy @@ -538,9 +607,9 @@ services: LDAP_ROOT: "${IDENTITY_SERVICE_ROOT:-dc=dbrepo,dc=at}" healthcheck: test: curl -fsSL --head 127.0.0.1:3000 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano extra_hosts: - "localhost:host-gateway" logging: @@ -561,9 +630,9 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: test: curl -fsSL --head 127.0.0.1:8080/health - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-micro depends_on: dbrepo-dashboard-ui: condition: service_healthy diff --git a/.env b/.env new file mode 100644 index 0000000000000000000000000000000000000000..e50d4f6b5b1c15372029abec7a4fb924a70781ad --- /dev/null +++ b/.env @@ -0,0 +1,9 @@ +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 +OPENLDAP_VERSION=2.6.8 +SEAWEEDFS_VERSION=3.71.0 +PROMETHEUS_VERSION=2.54.1 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7aac91c7e1b3e9cfbee5f51bf91d490b5b36c71b..c3dd8341c59dbd1975ed8c7175a9d770bcd46317 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ target/ !**/src/main/**/target/ !**/src/test/**/target/ -# TODO .docker/ # generated ready @@ -61,9 +60,6 @@ ready *.crt *.p12 -# Environment -/.env - # X509 root.crt intermediate.crt diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a0fe69487b196fd0fefdb6aad9fb3d12bf70dcb6..50443dc1adcbd814755730c8b2f5d93d390cd6dc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -58,7 +58,7 @@ lint-docker-compose: VERSION: 4.45.1 BINARY: yq_linux_amd64 before_script: - - 'apk --no-cache add bash wget' + - 'apk add --no-cache bash wget' - 'wget https://github.com/mikefarah/yq/releases/download/v${VERSION}/${BINARY} -O /usr/bin/yq && chmod +x /usr/bin/yq' script: - "bash .scripts/check-compose.sh" @@ -83,12 +83,13 @@ lint-docker-compose: - "IGNORE_VOLUMES=1 IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-storage-service-init'" - "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-dashboard-service-init'" - "IGNORE_IMAGE=1 bash .scripts/check-service.sh 'dbrepo-ui'" + - "diff ./.env ./.docker/.env" lint-helm-chart: image: docker.io/alpine:${ALPINE_VERSION} stage: lint before_script: - - apk --no-cache add helm git bash + - apk add --no-cache helm git bash - cp ./helm/dbrepo/values.schema.json ./CI_values.schema.json - helm plugin install https://github.com/losisin/helm-values-schema-json.git - helm package ./helm/seaweedfs --destination ./build @@ -109,7 +110,7 @@ lint-helm-readme: image: docker.io/node:${NODE_VERSION}-alpine${ALPINE_VERSION} stage: lint before_script: - - apk --no-cache add alpine-sdk bash git + - apk add --no-cache alpine-sdk bash git - cp ./helm/dbrepo/README.md ./CI_README.md - git clone https://github.com/bitnami/readme-generator-for-helm - (cd ./readme-generator-for-helm && npm install && npm install -g pkg && pkg . -o /usr/local/sbin/readme-generator) @@ -137,7 +138,7 @@ lint-open-api-version: before_script: - echo "${DOC_VERSION}" > ./doc-version.txt - echo "${APP_VERSION}" > ./app-version.txt - - 'apk --no-cache add bash wget' + - 'apk add --no-cache bash wget' - 'wget https://github.com/mikefarah/yq/releases/download/v${VERSION}/${BINARY} -O /usr/bin/yq && chmod +x /usr/bin/yq' script: - yq '.externalDocs.url' ./.docs/.openapi/api.base.yaml | grep -o "${DOC_VERSION}" > ./openapi-doc-version.txt @@ -689,12 +690,12 @@ release-libs: variables: PIPENV_PIPFILE: "./dbrepo-analyse-service/Pipfile" before_script: - - "apk add sed bash" - "pip install pipenv twine build" - "pipenv install gunicorn && pipenv install --dev --system --deploy" + - "echo ${CI_PIPYRC} | base64 -d > /app/.pypirc" script: - - bash ./lib/python/package.sh - - bash ./lib/python/release.sh + - "python -m build" + - "python -m twine upload --config-file /app/.pypirc --verbose --repository pypi ./lib/python/dist/dbrepo-*" verify-install-script: image: docker.io/docker:${DOCKER_VERSION}-dind diff --git a/dbrepo-analyse-service/Pipfile.lock b/dbrepo-analyse-service/Pipfile.lock index ebab75e9e69f8cf4a017ba465f2ba01d139bf88d..8b86da3d65d0a726ca5e93914bb6b7dcc6cc5efa 100644 --- a/dbrepo-analyse-service/Pipfile.lock +++ b/dbrepo-analyse-service/Pipfile.lock @@ -425,7 +425,7 @@ }, "dbrepo": { "hashes": [ - "sha256:22484d712e4a240a0114b90b5e8eaacbe47aa8f7fc79200557150f081faf7669" + "sha256:27d91126d95c24ed5f373726a9f119abd1f60ac8f4db1b8e59038ffacccd3b75" ], "path": "./lib/dbrepo-1.8.1.tar.gz" }, diff --git a/dbrepo-analyse-service/lib/dbrepo-1.8.1-py3-none-any.whl b/dbrepo-analyse-service/lib/dbrepo-1.8.1-py3-none-any.whl index 261fa7958ae481d4d85bc5efc152e519fa6af802..b149b48f3dc12e6f5bac1207e647246ef981c4a7 100644 Binary files a/dbrepo-analyse-service/lib/dbrepo-1.8.1-py3-none-any.whl and b/dbrepo-analyse-service/lib/dbrepo-1.8.1-py3-none-any.whl differ diff --git a/dbrepo-analyse-service/lib/dbrepo-1.8.1.tar.gz b/dbrepo-analyse-service/lib/dbrepo-1.8.1.tar.gz index 0da3ea37a31f2f3cdeea212e768aab7793f29252..ff71db5d1e93933f51d937485910de5c502f79c0 100644 Binary files a/dbrepo-analyse-service/lib/dbrepo-1.8.1.tar.gz and b/dbrepo-analyse-service/lib/dbrepo-1.8.1.tar.gz differ diff --git a/dbrepo-auth-service/listeners/target/create-event-listener.jar b/dbrepo-auth-service/listeners/target/create-event-listener.jar index 0b0771d3657d44c05fe9fe8fc62f2c7aef23c85b..17f47767177fc6e91dd72a83ffee382873a0f880 100644 Binary files a/dbrepo-auth-service/listeners/target/create-event-listener.jar and b/dbrepo-auth-service/listeners/target/create-event-listener.jar differ diff --git a/dbrepo-dashboard-service/Pipfile.lock b/dbrepo-dashboard-service/Pipfile.lock index 211dd025b06e021c9aa540c64b2adfa3a51b2693..47e4e63efc16d3fdc23680b472be7568aca120b5 100644 --- a/dbrepo-dashboard-service/Pipfile.lock +++ b/dbrepo-dashboard-service/Pipfile.lock @@ -373,7 +373,7 @@ }, "dbrepo": { "hashes": [ - "sha256:22484d712e4a240a0114b90b5e8eaacbe47aa8f7fc79200557150f081faf7669" + "sha256:27d91126d95c24ed5f373726a9f119abd1f60ac8f4db1b8e59038ffacccd3b75" ], "path": "./lib/dbrepo-1.8.1.tar.gz" }, diff --git a/dbrepo-dashboard-service/init/Pipfile.lock b/dbrepo-dashboard-service/init/Pipfile.lock index 4769507d32af65c823f66f0158ebb5ac7e855e42..698ba03e17757708639b62ef0f88a238369afb71 100644 --- a/dbrepo-dashboard-service/init/Pipfile.lock +++ b/dbrepo-dashboard-service/init/Pipfile.lock @@ -259,7 +259,7 @@ }, "dbrepo": { "hashes": [ - "sha256:22484d712e4a240a0114b90b5e8eaacbe47aa8f7fc79200557150f081faf7669" + "sha256:27d91126d95c24ed5f373726a9f119abd1f60ac8f4db1b8e59038ffacccd3b75" ], "path": "./lib/dbrepo-1.8.1.tar.gz" }, diff --git a/dbrepo-dashboard-service/init/lib/dbrepo-1.8.1-py3-none-any.whl b/dbrepo-dashboard-service/init/lib/dbrepo-1.8.1-py3-none-any.whl index 261fa7958ae481d4d85bc5efc152e519fa6af802..b149b48f3dc12e6f5bac1207e647246ef981c4a7 100644 Binary files a/dbrepo-dashboard-service/init/lib/dbrepo-1.8.1-py3-none-any.whl and b/dbrepo-dashboard-service/init/lib/dbrepo-1.8.1-py3-none-any.whl differ diff --git a/dbrepo-dashboard-service/init/lib/dbrepo-1.8.1.tar.gz b/dbrepo-dashboard-service/init/lib/dbrepo-1.8.1.tar.gz index 0da3ea37a31f2f3cdeea212e768aab7793f29252..ff71db5d1e93933f51d937485910de5c502f79c0 100644 Binary files a/dbrepo-dashboard-service/init/lib/dbrepo-1.8.1.tar.gz and b/dbrepo-dashboard-service/init/lib/dbrepo-1.8.1.tar.gz differ diff --git a/dbrepo-dashboard-service/lib/dbrepo-1.8.1-py3-none-any.whl b/dbrepo-dashboard-service/lib/dbrepo-1.8.1-py3-none-any.whl index 261fa7958ae481d4d85bc5efc152e519fa6af802..b149b48f3dc12e6f5bac1207e647246ef981c4a7 100644 Binary files a/dbrepo-dashboard-service/lib/dbrepo-1.8.1-py3-none-any.whl and b/dbrepo-dashboard-service/lib/dbrepo-1.8.1-py3-none-any.whl differ diff --git a/dbrepo-dashboard-service/lib/dbrepo-1.8.1.tar.gz b/dbrepo-dashboard-service/lib/dbrepo-1.8.1.tar.gz index 0da3ea37a31f2f3cdeea212e768aab7793f29252..ff71db5d1e93933f51d937485910de5c502f79c0 100644 Binary files a/dbrepo-dashboard-service/lib/dbrepo-1.8.1.tar.gz and b/dbrepo-dashboard-service/lib/dbrepo-1.8.1.tar.gz differ diff --git a/dbrepo-search-service/Pipfile.lock b/dbrepo-search-service/Pipfile.lock index 00b29bcf7f9f6e99d68df9e8a0dfdabf74de51c9..b72046d18e5d89345e6fe9429d3c0948c5f8e2f5 100644 --- a/dbrepo-search-service/Pipfile.lock +++ b/dbrepo-search-service/Pipfile.lock @@ -373,7 +373,7 @@ }, "dbrepo": { "hashes": [ - "sha256:22484d712e4a240a0114b90b5e8eaacbe47aa8f7fc79200557150f081faf7669" + "sha256:27d91126d95c24ed5f373726a9f119abd1f60ac8f4db1b8e59038ffacccd3b75" ], "path": "./lib/dbrepo-1.8.1.tar.gz" }, diff --git a/dbrepo-search-service/init/Pipfile.lock b/dbrepo-search-service/init/Pipfile.lock index 900dbd5715e72bb8c38c69ca654a1a3119f2ef69..504fe399cad18614669a19db465fbca031063a37 100644 --- a/dbrepo-search-service/init/Pipfile.lock +++ b/dbrepo-search-service/init/Pipfile.lock @@ -259,7 +259,7 @@ }, "dbrepo": { "hashes": [ - "sha256:22484d712e4a240a0114b90b5e8eaacbe47aa8f7fc79200557150f081faf7669" + "sha256:27d91126d95c24ed5f373726a9f119abd1f60ac8f4db1b8e59038ffacccd3b75" ], "path": "./lib/dbrepo-1.8.1.tar.gz" }, diff --git a/dbrepo-search-service/init/lib/dbrepo-1.8.1-py3-none-any.whl b/dbrepo-search-service/init/lib/dbrepo-1.8.1-py3-none-any.whl index 261fa7958ae481d4d85bc5efc152e519fa6af802..b149b48f3dc12e6f5bac1207e647246ef981c4a7 100644 Binary files a/dbrepo-search-service/init/lib/dbrepo-1.8.1-py3-none-any.whl and b/dbrepo-search-service/init/lib/dbrepo-1.8.1-py3-none-any.whl differ diff --git a/dbrepo-search-service/init/lib/dbrepo-1.8.1.tar.gz b/dbrepo-search-service/init/lib/dbrepo-1.8.1.tar.gz index 0da3ea37a31f2f3cdeea212e768aab7793f29252..ff71db5d1e93933f51d937485910de5c502f79c0 100644 Binary files a/dbrepo-search-service/init/lib/dbrepo-1.8.1.tar.gz and b/dbrepo-search-service/init/lib/dbrepo-1.8.1.tar.gz differ diff --git a/dbrepo-search-service/lib/dbrepo-1.8.1-py3-none-any.whl b/dbrepo-search-service/lib/dbrepo-1.8.1-py3-none-any.whl index 261fa7958ae481d4d85bc5efc152e519fa6af802..b149b48f3dc12e6f5bac1207e647246ef981c4a7 100644 Binary files a/dbrepo-search-service/lib/dbrepo-1.8.1-py3-none-any.whl and b/dbrepo-search-service/lib/dbrepo-1.8.1-py3-none-any.whl differ diff --git a/dbrepo-search-service/lib/dbrepo-1.8.1.tar.gz b/dbrepo-search-service/lib/dbrepo-1.8.1.tar.gz index 0da3ea37a31f2f3cdeea212e768aab7793f29252..ff71db5d1e93933f51d937485910de5c502f79c0 100644 Binary files a/dbrepo-search-service/lib/dbrepo-1.8.1.tar.gz and b/dbrepo-search-service/lib/dbrepo-1.8.1.tar.gz differ diff --git a/docker-compose.yml b/docker-compose.yml index aefe240d07c5d95ec474b4132adb78706f50da35..65e02ca64adca69a818cd7615baf812c9dd16c14 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,62 @@ +x-resources-nano: &resources-nano + resources: + reservations: + cpus: '0.1' + memory: 128M + limits: + cpus: '0.15' + memory: 192M + +x-resources-nano-hm: &resources-nano-hm + resources: + reservations: + cpus: '0.1' + memory: 1024M + limits: + cpus: '0.5' + memory: 4096M + +x-resources-micro: &resources-micro + resources: + reservations: + cpus: '0.25' + memory: 256M + limits: + cpus: '0.375' + memory: 384M + +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 + retries: 15 + volumes: metadata-db-data: data-db-data: @@ -13,7 +72,7 @@ services: restart: "no" container_name: dbrepo-metadata-db hostname: metadata-db - image: docker.io/mariadb:11.3.2 + image: docker.io/mariadb:${MARIADB_VERSION} volumes: - metadata-db-data:/var/lib/mysql - ./dbrepo-metadata-db/1_setup-schema.sql:/docker-entrypoint-initdb.d/1_setup-schema.sql @@ -25,9 +84,9 @@ services: MARIADB_ROOT_PASSWORD: "${METADATA_DB_PASSWORD:-dbrepo}" healthcheck: test: ./usr/local/bin/healthcheck.sh --connect --innodb_initialized - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano-hm logging: driver: json-file @@ -35,7 +94,7 @@ services: restart: "no" container_name: dbrepo-data-db hostname: data-db - image: docker.io/mariadb:11.3.2 + image: docker.io/mariadb:${MARIADB_VERSION} volumes: - data-db-data:/var/lib/mysql - ./dbrepo-data-db/1_grant-user.sql:/docker-entrypoint-initdb.d/1_grant-user.sql @@ -47,9 +106,9 @@ services: MARIADB_USER: "${READONLY_USERNAME:-readonly}" healthcheck: test: ./usr/local/bin/healthcheck.sh --connect --innodb_initialized - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano-hm logging: driver: json-file @@ -57,7 +116,7 @@ services: restart: "no" container_name: dbrepo-auth-db hostname: auth-db - image: docker.io/bitnami/postgresql:17.0.0-debian-12-r1 + image: docker.io/bitnami/postgresql:${POSTGRES_VERSION} volumes: - auth-db-data:/bitnami/postgresql ports: @@ -69,9 +128,9 @@ services: PGPASSWORD: "${AUTH_DB_PASSWORD:-dbrepo}" healthcheck: test: "psql -U ${AUTH_DB_USERNAME:-keycloak} -h 127.0.0.1 -p 5432 -d ${AUTH_DB_NAME:-keycloak} -c 'select version();'" - interval: 15s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano logging: driver: json-file @@ -79,7 +138,7 @@ services: restart: "no" container_name: dbrepo-auth-service hostname: auth-service - image: docker.io/bitnami/keycloak:26.0.4-debian-12-r0 + image: docker.io/bitnami/keycloak:${KEYCLOAK_VERSION} volumes: - ./dbrepo-auth-service/import-realms.sh:/docker-entrypoint-initdb.d/import-realms.sh - ./dbrepo-auth-service/master-realm.json:/opt/keycloak/data/import/master-realm.json @@ -104,10 +163,10 @@ services: SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}" SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: - test: curl -fsS http://localhost:8080/realms/master - interval: 10s - timeout: 5s - retries: 12 + test: curl -fsS localhost:8080/realms/master + <<: *healthcheck-params + deploy: + <<: *resources-small depends_on: dbrepo-identity-service: condition: service_healthy @@ -132,6 +191,8 @@ services: READONLY_USERNAME: "${READONLY_USERNAME:-readonly}" SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}" SYSTEM_PASSWORD: ${SYSTEM_PASSWORD:-admin} + deploy: + <<: *resources-nano depends_on: dbrepo-auth-service: condition: service_healthy @@ -192,9 +253,9 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-small depends_on: dbrepo-auth-service: condition: service_healthy @@ -236,9 +297,9 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: test: curl -sSL localhost:8080/health | grep 'UP' || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-micro logging: driver: json-file @@ -246,7 +307,7 @@ services: restart: "no" container_name: dbrepo-broker-service hostname: broker-service - image: docker.io/bitnami/rabbitmq:3.13.7-debian-12-r4 + image: docker.io/bitnami/rabbitmq:${RABBITMQ_VERSION} ports: - 15672:15672 - 5672:5672 @@ -264,9 +325,9 @@ services: condition: service_healthy healthcheck: test: rabbitmq-diagnostics -q is_running | grep 'is fully booted and running' - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-micro logging: driver: json-file @@ -274,14 +335,14 @@ services: restart: "no" container_name: dbrepo-search-db hostname: search-db - image: docker.io/bitnami/opensearch:2.10.0 + image: docker.io/bitnami/opensearch:${OPENSEARCH_VERSION} ports: - "9200:9200" healthcheck: test: curl -sSL 127.0.0.1:9200 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-medium volumes: - search-db-data:/bitnami/opensearch/data logging: @@ -310,9 +371,9 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: test: curl -sSL localhost:8080/health | grep 'UP' || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-micro logging: driver: json-file @@ -340,14 +401,14 @@ services: NUXT_OIDC_PROVIDERS_KEYCLOAK_REDIRECT_URI: "${BASE_URL:-http://localhost}/auth/keycloak/callback" NUXT_OIDC_PROVIDERS_KEYCLOAK_TOKEN_URL: "${BASE_URL:-http://localhost}/realms/dbrepo/protocol/openid-connect/token" NUXT_OIDC_PROVIDERS_KEYCLOAK_USER_INFO_URL: "${BASE_URL:-http://localhost}/realms/dbrepo/protocol/openid-connect/userinfo" + healthcheck: + test: curl -fsSL 127.0.0.1:3000 && curl -fsSL 127.0.0.1:3000/health + <<: *healthcheck-params + deploy: + <<: *resources-micro depends_on: dbrepo-search-service: condition: service_healthy - healthcheck: - test: curl -fsSL 127.0.0.1:3000 && curl -fsSL 127.0.0.1:3000/health - interval: 10s - timeout: 5s - retries: 12 extra_hosts: - "localhost:host-gateway" logging: @@ -357,16 +418,16 @@ services: restart: "no" container_name: dbrepo-gateway-service hostname: gateway-service - image: docker.io/nginx:1.27.3-alpine3.20-slim + image: docker.io/nginx:${NGINX_VERSION} ports: - "80:8080" volumes: - ./dbrepo-gateway-service/dbrepo.conf:/etc/nginx/conf.d/default.conf healthcheck: test: lsof -i TCP:80 || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano depends_on: dbrepo-analyse-service: condition: service_healthy @@ -389,7 +450,7 @@ services: restart: "no" container_name: dbrepo-identity-service hostname: identity-service - image: bitnami/openldap:2.6.8-debian-12-r1 + image: bitnami/openldap:${OPENLDAP_VERSION} ports: - '1389:1389' - '1636:1636' @@ -405,9 +466,11 @@ services: - identity-service-data:/bitnami/openldap 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" - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano + logging: + driver: json-file dbrepo-search-service-init: restart: "no" @@ -425,6 +488,8 @@ services: OPENSEARCH_PORT: ${OPENSEARCH_PORT:-9200} SYSTEM_USERNAME: "${SYSTEM_USERNAME:-admin}" SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" + deploy: + <<: *resources-nano depends_on: dbrepo-search-db: condition: service_healthy @@ -433,22 +498,27 @@ services: logging: driver: json-file - dbrepo-storage-service-init: + dbrepo-dashboard-service-init: restart: "no" init: true - container_name: dbrepo-storage-service-init - hostname: storage-service-init - image: dbrepo-storage-service-init:latest + container_name: dbrepo-dashboard-service-init + hostname: search-dashboard-init + image: dbrepo-dashboard-service-init:latest build: - context: ./dbrepo-storage-service/init + context: ./dbrepo-dashboard-service/init network: host 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} + 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 depends_on: - dbrepo-storage-service: + dbrepo-dashboard-ui: + condition: service_healthy + dbrepo-metadata-service: condition: service_healthy logging: driver: json-file @@ -457,7 +527,7 @@ services: restart: "no" container_name: dbrepo-storage-service hostname: storage-service - image: docker.io/bitnami/seaweedfs:3.71.0-debian-12-r4 + image: docker.io/bitnami/seaweedfs:${SEAWEEDFS_VERSION} command: [ "server", "-s3", "-s3.port=9000", "-s3.config=/app/s3_config.json", "-metricsPort=9090" ] volumes: - ./dbrepo-storage-service/s3_config.json:/app/s3_config.json @@ -466,9 +536,9 @@ services: - "8888:8888" healthcheck: test: echo "cluster.check" | weed shell | grep "checking master.*ok" || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano logging: driver: json-file @@ -476,15 +546,37 @@ services: restart: "no" container_name: dbrepo-metric-db hostname: metric-db - image: docker.io/bitnami/prometheus:2.54.1-debian-12-r4 + image: docker.io/bitnami/prometheus:${PROMETHEUS_VERSION} volumes: - ./dbrepo-metric-db/prometheus.yml:/etc/prometheus/prometheus.yml - metric-db-data:/opt/bitnami/prometheus/data healthcheck: test: promtool check healthy - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-nano + logging: + driver: json-file + + dbrepo-storage-service-init: + restart: "no" + init: true + container_name: dbrepo-storage-service-init + hostname: storage-service-init + image: dbrepo-storage-service-init:latest + build: + context: ./dbrepo-storage-service/init + network: host + 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 + depends_on: + dbrepo-storage-service: + condition: service_healthy logging: driver: json-file @@ -531,35 +623,43 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: test: curl -sSL localhost:8080/actuator/health/liveness | grep 'UP' || exit 1 - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-large depends_on: dbrepo-data-db: condition: service_healthy logging: driver: json-file - dbrepo-dashboard-service-init: + dbrepo-dashboard-ui: restart: "no" - init: true - container_name: dbrepo-dashboard-service-init - hostname: search-dashboard-init - image: dbrepo-dashboard-service-init:latest + container_name: dbrepo-dashboard-ui + hostname: dashboard-ui + image: dbrepo-dashboard-ui:latest build: - context: ./dbrepo-dashboard-service/init + context: ./dbrepo-dashboard-ui network: host + ports: + - "3000:3000" + volumes: + - dashboard-ui-data:/opt/bitnami/grafana/data 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}" - depends_on: - dbrepo-dashboard-ui: - condition: service_healthy - dbrepo-metadata-service: - condition: service_healthy + BASE_URL: "${BASE_URL:-http://localhost}" + # do not attempt to set it in the grafana.ini, hours wasted here: 7 + GF_SERVER_ROOT_URL: http://dashboard-ui:3000/dashboard/ + GF_INSTALL_PLUGINS: "yesoreyeram-infinity-datasource" + GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION: "true" + LDAP_ADMIN_USERNAME: "${IDENTITY_SERVICE_ADMIN_USERNAME:-admin}" + LDAP_ADMIN_PASSWORD: "${IDENTITY_SERVICE_ADMIN_PASSWORD:-admin}" + LDAP_ROOT: "${IDENTITY_SERVICE_ROOT:-dc=dbrepo,dc=at}" + healthcheck: + test: curl -fsSL --head 127.0.0.1:3000 + <<: *healthcheck-params + deploy: + <<: *resources-nano + extra_hosts: + - "localhost:host-gateway" logging: driver: json-file @@ -581,42 +681,11 @@ services: SYSTEM_PASSWORD: "${SYSTEM_PASSWORD:-admin}" healthcheck: test: curl -fsSL --head 127.0.0.1:8080/health - interval: 10s - timeout: 5s - retries: 12 + <<: *healthcheck-params + deploy: + <<: *resources-micro depends_on: dbrepo-dashboard-ui: condition: service_healthy logging: driver: json-file - - dbrepo-dashboard-ui: - restart: "no" - container_name: dbrepo-dashboard-ui - hostname: dashboard-ui - image: dbrepo-dashboard-ui:latest - build: - context: ./dbrepo-dashboard-ui - network: host - ports: - - "3000:3000" - volumes: - - dashboard-ui-data:/opt/bitnami/grafana/data - environment: - BASE_URL: "${BASE_URL:-http://localhost}" - # do not attempt to set it in the grafana.ini, hours wasted here: 7 - GF_SERVER_ROOT_URL: http://dashboard-ui:3000/dashboard/ - GF_INSTALL_PLUGINS: "yesoreyeram-infinity-datasource" - GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION: "true" - LDAP_ADMIN_USERNAME: "${IDENTITY_SERVICE_ADMIN_USERNAME:-admin}" - LDAP_ADMIN_PASSWORD: "${IDENTITY_SERVICE_ADMIN_PASSWORD:-admin}" - LDAP_ROOT: "${IDENTITY_SERVICE_ROOT:-dc=dbrepo,dc=at}" - healthcheck: - test: ps -o pid= -p 1 - interval: 10s - timeout: 5s - retries: 12 - extra_hosts: - - "localhost:host-gateway" - logging: - driver: json-file diff --git a/helm/dbrepo/files/create-event-listener.jar b/helm/dbrepo/files/create-event-listener.jar index 0b0771d3657d44c05fe9fe8fc62f2c7aef23c85b..17f47767177fc6e91dd72a83ffee382873a0f880 100644 Binary files a/helm/dbrepo/files/create-event-listener.jar and b/helm/dbrepo/files/create-event-listener.jar differ diff --git a/helm/dbrepo/templates/_resources.tpl b/helm/dbrepo/templates/_resources.tpl index e53a2effa29068f5ca6b0ee5293115427d2e3d3e..be31108c93f7f5bbbcf9d5a9c13313190da554db 100644 --- a/helm/dbrepo/templates/_resources.tpl +++ b/helm/dbrepo/templates/_resources.tpl @@ -19,7 +19,7 @@ These presets are for basic testing and not meant to be used in production ) "nano-hm" (dict "requests" (dict "cpu" "100m" "memory" "1024Mi" "ephemeral-storage" "50Mi") - "limits" (dict "cpu" "500m" "memory" "2048Mi" "ephemeral-storage" "2Gi") + "limits" (dict "cpu" "500m" "memory" "4096Mi" "ephemeral-storage" "2Gi") ) "micro" (dict "requests" (dict "cpu" "250m" "memory" "256Mi" "ephemeral-storage" "50Mi") diff --git a/lib/python/sensor.csv b/lib/python/sensor.csv deleted file mode 100644 index 9a3b18d2d91e4e65eb2d49e732a0e0a00ef993fd..0000000000000000000000000000000000000000 --- a/lib/python/sensor.csv +++ /dev/null @@ -1,5 +0,0 @@ -date,precipitation,lat,lng -2024-03-19,1.3,48.19482170115862,16.370144073925285 -2024-03-20,3.4,48.19482170115862,16.370144073925285 -2024-03-21,0,48.19482170115862,16.370144073925285 -2024-03-22,0,48.19482170115862,16.370144073925285 \ No newline at end of file diff --git a/lib/python/smaller.csv b/lib/python/smaller.csv deleted file mode 100644 index a8a157f85e03cb5d92981d0cd8806ca51dc4e3ee..0000000000000000000000000000000000000000 --- a/lib/python/smaller.csv +++ /dev/null @@ -1,9 +0,0 @@ -"00000157-ca59-4cd9-9c20-b6e07a461720","Factory/Power/Active/Sum/value","8910.427734375","1695370294.260122" -"000001cc-6640-45cd-bca3-d4edd907993f","Factory/Power/Active/Sum/value","5193.7080078125","1686120654.770266" -"00000819-d0d3-4e63-8bad-316fd4605072","Factory/Power/Active/Sum/value","2744.0185546875","1686161362.024192" -"00000b14-0a50-46cc-a289-f0c2d559d348","Factory/Power/Active/Sum/value","3047.9697265625","1695324339.994483" -"000012b9-1e54-4079-a42f-769761e4a446","Factory/Power/Active/Sum/value","3604.2626953125","1695146853.947941" -"0000131f-bc1e-4d15-a79f-3feb7024c7bb","Factory/Power/Active/Sum/value","2871.40625","1686159611.775427" -"00001420-94ac-4fb9-a3ca-f40105247f20","Factory/Power/Active/Sum/value","2843.608642578125","1686009614.272813" -"00001443-769a-4bd1-b5d7-ad702a76ab93","Factory/Power/Active/Sum/value","2843.680908203125","1686002382.359535" -"0000144f-f325-43f6-9954-7b633a935c48","Factory/Power/Active/Sum/value","2856.92724609375","1685938173.948616"