Zimin A.N.
4f04872de8
fix(admin-ui): COPY .npmrc + pnpm-lock.yaml в Dockerfile build stage
...
pnpm install в Docker падал т.к. .npmrc отсутствовал — @nstart/* резолвились
в public npm registry (404). Добавил .npmrc + pnpm-lock.yaml в первый COPY до
install, чтобы scope mapping на repo.nstart.cloud сработал.
Заодно --frozen-lockfile вместо --no-frozen-lockfile (lockfile в репо есть,
CI воспроизводимый install).
2026-05-04 02:29:41 +03:00
Александр Зимин
d5a747616a
fix(admin-ui): envsubst FQDN с per-cluster DNS suffix
...
nginx resolver не использует search list, поэтому в proxy_pass нужен
FQDN. Cluster domain различается:
- cluster.265 (staging): 265.local
- srvaltum01 (prod): altum.local
- default kubespray: cluster.local
Решение: nginx.conf — template с ${ORDINIS_NAMESPACE} и
${CLUSTER_DOMAIN}, обрабатывается официальным nginx entrypoint
(/docker-entrypoint.d/20-envsubst-on-templates.sh). Helm подставляет
ENV из fieldRef + values per-env.
2026-05-04 01:21:34 +03:00
Александр Зимин
1eba2ee59b
feat(admin-ui): minimal React+Vite+TanStack scaffolding
...
- Vite 7 + React 19 + TanStack Router (file-based) + TanStack Query
- Tailwind v4 (CSS-first config, OKLCH brand colors)
- i18next + react-i18next с RU/EN switcher в header
- Axios client с Accept-Language interceptor + JWT placeholder
- 2 pages: /dictionaries (list cards) + /dictionaries/$name (records table)
- Dockerfile (node build + nginx serving + API proxy)
- README + .gitignore
Backend:
- Новый GET /api/v1/dictionaries в read-api (DictionaryListController),
фильтрует по доступному scope через ScopeContext
- DictionaryListItem DTO без heavy schema_json
routeTree.gen.ts — stub; реальное содержимое генерится Vite plugin'ом при
первом 'pnpm dev'.
2026-05-04 00:55:04 +03:00