platform: modularize api/gui, add docs-tests-web foundation, and refresh root config

This commit is contained in:
beckline
2026-03-26 22:40:54 +03:00
parent 0e2d7f61ea
commit 6a56d734c2
562 changed files with 70151 additions and 16423 deletions

View File

@@ -0,0 +1,37 @@
# C2 Решение по стеку web prototype
Дата: 2026-03-07
Статус: approved
Владелец: Engineering
## 1) Принятое решение
- Для web prototype используется `Vite + React + TypeScript` (SPA).
- Бэкенд-ядро остаётся в Go (`/api/v1` + SSE `/api/v1/events/stream`).
- `Next.js` на MVP-этапе не используется.
## 2) Почему так
- В проекте уже есть готовый Go API-контракт; отдельный Node/SSR-слой не обязателен.
- Цель текущего этапа: рабочая control-plane панель, а не SEO-публичный сайт.
- `Vite` даёт быстрый старт, простой билд и минимальные операционные риски.
## 3) Базовый frontend stack
- `react` + `typescript`
- `vite`
- `react-router`
- `@tanstack/react-query` для REST
- `EventSource` (SSE) для realtime
- lightweight UI state (например, `zustand`) только для локального состояния интерфейса
## 4) Когда рассматривать переход на Next.js
- Появляется требование SSR/SEO.
- Нужен встроенный BFF/edge middleware в самом фронтенд-проекте.
- Требуется server-side session orchestration, которую нецелесообразно держать в Go gateway.
## 5) Архитектурный инвариант
- Независимо от UI-фреймворка, источник истины остаётся в Go-ядре.
- UI не дублирует бизнес-логику маршрутизации/transport/policy.
- Контракт для web/iOS/Android остаётся единым: `/api/v1`.
## 6) Статус внедрения
- Создан модуль `selective-vpn-web/` (foundation level).
- На текущем этапе включены read-only проверки и SSE connectivity; mutating controls будут подключаться по фазам P1/E4.