Admin dashboard for managing business records — clients, files/documents, smart lists, and
audit logs. It is the frontend (single-page app) for the records-api backend; the goal is a
fast, typed UI for staff to create and edit client records, upload and process documents, and
review results.
sx/api/v1), @tanstack/react-table, dayjs, notistack@/* → src/*.Dev server proxies /api to the backend (default dev-records.kibernetika.io, override with
VITE_PROXY_TARGET).
npm install
npm run dev # start dev server (proxies /api to the backend)
npm run build # typecheck + production build
npm test — unit tests (vitest)npm run test:e2e — mocked UI e2e (Playwright, no backend)npm run test:e2e:real — real-backend e2e (manual only, see below)tests/e2e-real/ drives the app against a real backend with real credentials and
consumes real processing resources. It is fully isolated from npm run test:e2e and must be
run manually.
Put credentials in a gitignored .env — either the repo-root .env (shared with the dev
server) or tests/e2e-real/.env (overrides root). Only two vars are required:
[email protected]
REAL_PASSWORD=your-password
Optional:
# Backend the dev server proxies /api to. Must end in /api. Defaults to the dev backend.
VITE_PROXY_TARGET=https://dev-records.kibernetika.io/api
# Target an already-running UI instead of starting a local dev server:
REAL_BASE_URL=https://dev-records.kibernetika.io
# Upload-status polling (defaults shown):
REAL_UPLOAD_STATUS_TIMEOUT_MS=20000
REAL_UPLOAD_POLL_INTERVAL_MS=2000
See tests/e2e-real/.env.example for the full template. Missing creds fail loud.
npm run test:e2e:real # chromium (default)
npm run test:e2e:real:headed # chromium, headed
npm run test:e2e:real:ui # Playwright UI mode
Other browsers (install binaries first with npx playwright install firefox webkit):
npm run test:e2e:real -- --project=firefox
npm run test:e2e:real -- --project=webkit
# all three:
npx playwright test --config tests/e2e-real/playwright.real.config.ts
The test logs in, creates a client, uploads a questionnaire, waits for it to reach
REVIEW_METADATA, then deletes exactly the upload and client it created.
Content type
Image
Digest
sha256:a2f0d81c3…
Size
26.3 MB
Last updated
1 day ago
docker pull kuberlab/records-ui