diff --git a/TASKS.md b/TASKS.md index 62aeb5e..7188e4b 100644 --- a/TASKS.md +++ b/TASKS.md @@ -10,6 +10,7 @@ DoD: - Alpine UI pages have consistent feedback and shell state - Settings page exposes only honest live functionality and clearly marks deferred capabilities - Wizard live actions have stable loading and feedback behavior on real backend requests +- Public UI routes use clean canonical paths instead of exposing `/html/...` ## Next diff --git a/apps/ui/html/agents.html b/apps/ui/html/agents.html index bec89ed..277372e 100644 --- a/apps/ui/html/agents.html +++ b/apps/ui/html/agents.html @@ -23,7 +23,7 @@
- Operations - Agents - API Keys - Logs - Usage + Operations + Agents + API Keys + Logs + Usage
diff --git a/apps/ui/html/api-keys.html b/apps/ui/html/api-keys.html index 7d22507..9e61256 100644 --- a/apps/ui/html/api-keys.html +++ b/apps/ui/html/api-keys.html @@ -35,7 +35,7 @@
- Operations - Agents - API Keys - Logs - Usage + Operations + Agents + API Keys + Logs + Usage
diff --git a/apps/ui/html/logs.html b/apps/ui/html/logs.html index d881319..c80f73f 100644 --- a/apps/ui/html/logs.html +++ b/apps/ui/html/logs.html @@ -21,7 +21,7 @@
- Operations - Agents - API Keys - Logs - Usage + Operations + Agents + API Keys + Logs + Usage
diff --git a/apps/ui/html/settings.html b/apps/ui/html/settings.html index b2f1663..62d4ea9 100644 --- a/apps/ui/html/settings.html +++ b/apps/ui/html/settings.html @@ -21,7 +21,7 @@
- Operations - Agents - API Keys - Logs - Usage + Operations + Agents + API Keys + Logs + Usage
diff --git a/apps/ui/html/usage.html b/apps/ui/html/usage.html index e00ea12..6dcf31e 100644 --- a/apps/ui/html/usage.html +++ b/apps/ui/html/usage.html @@ -21,7 +21,7 @@
diff --git a/apps/ui/html/wizard/index.html b/apps/ui/html/wizard/index.html index a67e11f..57d02dc 100644 --- a/apps/ui/html/wizard/index.html +++ b/apps/ui/html/wizard/index.html @@ -22,7 +22,7 @@ diff --git a/apps/ui/html/workspace-setup.html b/apps/ui/html/workspace-setup.html index dc53806..522dad8 100644 --- a/apps/ui/html/workspace-setup.html +++ b/apps/ui/html/workspace-setup.html @@ -23,7 +23,7 @@
-
'; }).join('') + '
' + - '' + + '' + '' + 'Workspace settings' + ''; diff --git a/apps/ui/nginx.conf b/apps/ui/nginx.conf index 14b118a..a14db78 100644 --- a/apps/ui/nginx.conf +++ b/apps/ui/nginx.conf @@ -1,10 +1,96 @@ server { listen 3000; server_name _; + absolute_redirect off; root /usr/share/nginx/html; index index.html; + location = / { + try_files /index.html =404; + } + + location = /index.html { + return 302 /; + } + + location = /login { + try_files /html/login.html =404; + } + + location = /agents { + try_files /html/agents.html =404; + } + + location = /api-keys { + try_files /html/api-keys.html =404; + } + + location = /logs { + try_files /html/logs.html =404; + } + + location = /usage { + try_files /html/usage.html =404; + } + + location = /settings { + try_files /html/settings.html =404; + } + + location = /workspace-setup { + try_files /html/workspace-setup.html =404; + } + + location = /wizard { + return 302 /wizard/; + } + + location = /wizard/ { + try_files /html/wizard/index.html =404; + } + + location ~ ^/wizard/(.+)$ { + rewrite ^/wizard/(.+)$ /html/wizard/$1 break; + try_files $uri =404; + } + + location = /html/login.html { + return 302 /login; + } + + location = /html/agents.html { + return 302 /agents; + } + + location = /html/api-keys.html { + return 302 /api-keys; + } + + location = /html/logs.html { + return 302 /logs; + } + + location = /html/usage.html { + return 302 /usage; + } + + location = /html/settings.html { + return 302 /settings; + } + + location = /html/workspace-setup.html { + return 302 /workspace-setup$is_args$args; + } + + location = /html/wizard/ { + return 302 /wizard/$is_args$args; + } + + location = /html/wizard/index.html { + return 302 /wizard/; + } + location / { try_files $uri $uri/ /index.html; } diff --git a/docs/alpine-ui-integration-plan.md b/docs/alpine-ui-integration-plan.md index 9adb9b9..73bad74 100644 --- a/docs/alpine-ui-integration-plan.md +++ b/docs/alpine-ui-integration-plan.md @@ -2,7 +2,7 @@ ## 1. Назначение документа -Этот документ фиксирует, как переносимый Alpine UI из `apps/ui` должен подключаться к реальному backend. +Этот документ фиксирует, как Alpine UI в `apps/ui` подключается к реальному backend. Его задача: @@ -13,12 +13,11 @@ ## 2. Текущее состояние -Сейчас `apps/ui` уже заменен на Alpine.js UI, перенесенный из `test-ui`. +Сейчас `apps/ui` уже является основной Alpine.js UI-кодовой базой. Важно: -- `apps/ui` теперь является основной UI-кодовой базой; -- `test-ui` остается fallback-источником и не должен использоваться как рабочая папка интеграции; +- `apps/ui` является единственной рабочей UI-кодовой базой; - новый UI пока опирается на `localStorage`, mock JSON и локальные сценарии; - backend уже поддерживает `workspace`, `operations`, `agents`, `platform access`, `logs`, `usage`, но не все UI-flow закрыты полностью. diff --git a/docs/as-is-to-be.md b/docs/as-is-to-be.md index 653515d..c0f3c08 100644 --- a/docs/as-is-to-be.md +++ b/docs/as-is-to-be.md @@ -2,7 +2,7 @@ ## 1. Назначение документа -Этот документ фиксирует переход от текущего состояния проекта к целевой продуктовой модели, которую задает `test-ui`. +Этот документ фиксирует переход от текущего состояния проекта к целевой продуктовой модели, отраженной в текущем Alpine UI. ## 2. As Is diff --git a/docs/backend-gap-plan.md b/docs/backend-gap-plan.md index 1083d3d..d17513c 100644 --- a/docs/backend-gap-plan.md +++ b/docs/backend-gap-plan.md @@ -2,7 +2,7 @@ ## 1. Назначение документа -Этот документ превращает `test-ui` и `docs/as-is-to-be.md` в конкретный backend-план. +Этот документ превращает целевой Alpine UI и `docs/as-is-to-be.md` в конкретный backend-план. Его задача: @@ -16,7 +16,7 @@ - новая функциональность наращивается слоями сверху; - сначала вводятся tenant boundary и agent publishing; - потом access layer и observability; -- перенос `test-ui` в `apps/ui` делается после фиксации backend-контрактов. +- UI развивается в `apps/ui` после фиксации backend-контрактов. ## 3. Что сохраняем без переписывания @@ -331,7 +331,7 @@ ### Wave 5. UI integration - заменить mock data реальными API -- перенести `test-ui` в `apps/ui` +- развивать и полировать Alpine UI в `apps/ui` - пройти e2e сценарии ## 11. Что делаем следующим шагом diff --git a/docs/implementation-plan.md b/docs/implementation-plan.md index 4234251..2513522 100644 --- a/docs/implementation-plan.md +++ b/docs/implementation-plan.md @@ -2,7 +2,7 @@ ## 1. Назначение документа -Этот документ фиксирует порядок перехода от текущего состояния проекта к целевой модели, заданной `test-ui`. +Этот документ фиксирует порядок перехода от текущего состояния проекта к целевой Alpine UI модели. Принцип: @@ -101,7 +101,7 @@ DoD: Цель: -- перенести `test-ui` в `apps/ui` и подключить его к реальному backend. +- довести `apps/ui` до полной работы на реальном backend. DoD: diff --git a/docs/operations-workspace-contracts.md b/docs/operations-workspace-contracts.md index f617b85..7499244 100644 --- a/docs/operations-workspace-contracts.md +++ b/docs/operations-workspace-contracts.md @@ -9,9 +9,9 @@ Документ нужен как промежуточный слой между: -- целевым UI в `test-ui`; +- текущим Alpine UI в `apps/ui`; - `docs/backend-gap-plan.md`; -- будущей реализацией `admin-api`. +- реализацией `admin-api`. ## 2. Общие правила