Local viewer for YDB clusters
You can preview working UI using YDB docker image. It will be UI with the latest stable ydb version.
Run on a machine with Docker installed:
docker pull cr.yandex/yc/yandex-docker-local-ydb
docker run -dp 8765:8765 cr.yandex/yc/yandex-docker-local-ydb
Open http://localhost:8765 to view it in the browser.
docker run --rm -ti --name ydb-local -h localhost \
-p 8765:8765 \
-e MON_PORT=8765 \
cr.yandex/yc/yandex-docker-local-ydb:latest
npm ci
npm run dev
For API reference, open Swagger UI on http://localhost:8765/viewer/api/.
Image cr.yandex/yc/yandex-docker-local-ydb
corresponds to :latest
tag. It's the latest stable ydb version.
To test new features, you can use ydb version that is currently in testing mode with cr.yandex/yc/yandex-docker-local-ydb:edge
image
or use a build from main
brunch with ghcr.io/ydb-platform/local-ydb:nightly
image.
Also you can set specific version like cr.yandex/yc/yandex-docker-local-ydb:23.1
You can run the app with your own params by adding .env
file to project root. There is an example in .env.example
.
.env
file to project root by copying examplecp .env.example .env
.env
npm run start
. Your custom params from .env
file will be appliedYDB docker represents a single node cluster with only one version, small amount of storage groups, PDisks and VDisks. It may be not enough for development purposes. If you have your own development cluster with sufficient amount of entities, you can run the app in the dev mode with this cluster as backend. To do it, alter REACT_APP_BACKEND
param in your .env
file:
REACT_APP_BACKEND=http://your-cluster-host:8765
REACT_APP_META_BACKEND=undefined
META_YDB_BACKEND=undefined
If you have meta backend for multi cluster version, you can run the app in dev mode with this backend by setting REACT_APP_META_BACKEND
param in .env
:
REACT_APP_BACKEND=undefined
REACT_APP_META_BACKEND=http://your-meta-host:8765
META_YDB_BACKEND=undefined
If you need to connect to the meta backend from a server, you need to set META_YDB_BACKEND
param in .env
:
REACT_APP_BACKEND=undefined
REACT_APP_META_BACKEND=undefined
META_YDB_BACKEND=http://your-meta-host:8765
For e2e tests we use @playwright/tests
. Tests configuration is in playwright.config.ts
. Tests are set up in tests
dir.
Install all Playwright dependencies and chromium to run tests.
npm run test:e2e:install
Run tests. If PLAYWRIGHT_BASE_URL
is provided, tests run on this url, otherwise Playwright webServer
is started with npm run dev
on http://localhost:3000
and all tests run there.
npm run test:e2e
E2E tests are run in CI in e2e_tests
job. Tests run on Playwright webServer
(it is started with npm run dev
), webServer
uses docker container cr.yandex/yc/yandex-docker-local-ydb
as backend.
Base command npm run build
builds the app for production to the build
folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
To test production bundle with latest YDB backend release, do the following:
npm ci
npm run build:embedded
.docker run -it --hostname localhost -dp 2135:2135 -p 8765:8765 -v ~/projects/ydb-embedded-ui/build:/ydb_data/node_1/content/monitoring cr.yandex/yc/yandex-docker-local-ydb:latest
If you want to test embedded version in production mode, but YDB docker is not enough and you have your own ydb development cluster, you can manually update UI for the specific cluster host.
It also could be usefull for development purposes, because some operations, that are not 'read-only', like some update queries or tablets restart could be allowed by CORS only for the same origin and so could not be executed in dev mode.
npm ci
npm run build:embedded
build
folder to /content/monitoring
folder on desired cluster hosthttp://your-cluster-host:8765/monitoring
to see updated UIIt's assumed, that you have all the necessary access rights to update files on the host.