# Журнал сессии — 2026-08-14 (продолжение миграции shared-sqs) **Рабочая папка:** /home/naeel/nubes/SQS-service --- ## Текущее состояние - Сервис ЗАДЕПЛОЕН и работает: `https://sqs.containerk8s.dev.nubes.ru` - `/health` → `OK` (200) - Образ: Docker Hub `naeel/shared-sqs:latest` - Репа: Gitea `gitea.services.ngcloud.ru/Nail/SQS-service` --- ## Что сделано сегодня 1. Добавлен инфо-блок «Информация о сервисе» на страницу входа `/ui` (`app/ui/index.html`). Коммит `032ca66`. Образ пересобран, запушен (`digest 4bb4f20d`). 2. **Проблема:** вход в UI с реальным JWT → `Ошибка: token rejected by cloud API (HTTP 403)`. Причина: контейнер валидировал JWT на `deck-api-test.ngcloud.ru/api/v1` (default в `app/admin/admin.go`), а production JWT туда не подходит. 3. **Поиск правильного endpoint** (в `~/tf_provider`, по указанию пользователя): - `deck-api*.ngcloud.ru` — **ЛЕГАСИ** (пользователь явно запретил этот формат) - Правильный: **API Gateway** `lk-api-gateway.ngcloud.ru` 4. Найдено в `~/tf_provider/TOOLS/config/prod/profile.env`: ``` NUBES_API_ENDPOINT="https://lk-api-gateway.ngcloud.ru/api/v1/svc" ``` (test: `...-test...`, dev: `...-dev...`) Также default в `TOOLS/yaml-generator/internal/config/config.go`: `getenvDefault("NUBES_API_ENDPOINT", "https://lk-api-gateway.ngcloud.ru/api/v1/svc")` 5. **Тест токенов против gateway** (токены из `/home/naeel/nubes/tokens_all.txt`): - БЕЗ User-Agent → **все 403** (DDoS-Guard блокирует) - С `User-Agent: Mozilla/5.0`: | Токен | gateway-PROD | gateway-TEST | |---|---|---| | tazetdinovn@gmail.com (TEST) | 401 | **200** | | tazet@narod.ru (PROD) | **200** | 401 | | ntazetdinov@nubes.ru (PROD) | **200** | 401 | --- ## Выводы (факты) 1. Правильный `NUBES_ENDPOINT` = **`https://lk-api-gateway.ngcloud.ru/api/v1/svc`** 2. **КРИТИЧНО:** наш код `PingNubesAPI` (`app/auth/jwt.go`) **НЕ шлёт User-Agent** → gateway возвращает 403 → токен всегда отклоняется. Нужна правка кода: добавить `User-Agent: Mozilla/5.0`. --- ## Предстоящие правки (СОГЛАСОВАНЫ? — нет, ждут «делай») 1. `Dockerfile`: `ENV NUBES_ENDPOINT=https://lk-api-gateway.ngcloud.ru/api/v1/svc` 2. `app/auth/jwt.go`: в `PingNubesAPI` добавить `User-Agent: Mozilla/5.0` 3. `app/admin/admin.go`: сменить default endpoint на gateway PROD После правок: пересборка → push Docker Hub → redeploy → проверка входа в UI. --- ## Правила, зафиксированные в этой сессии - Код менять ТОЛЬКО после согласования с пользователем. - deck-api*.ngcloud.ru — ЛЕГАСИ, НЕ использовать (только lk-api-gateway). - ngcloud за DDoS-Guard: curl-запросы всегда с `User-Agent: Mozilla/5.0`. - Всё документировать в HISTORY. --- ## v0.1.26 — вывод версии на экран + фикс схемы тегов (14.08.2026, утро) **Проблема**: пользователь заметил, что версии не повышаются — всё время пушился только `latest`, под мог кэшировать `latest` и redeploy подтягивал старый образ. Плюс запрос: выводить версию на экран. **Что сделано**: 1. `app/models/constants.go`: `var Version = "dev"` (переопределяется через ldflags). 2. `app/router/router.go`: публичный `/health` теперь отдаёт JSON `{"status":"ok","version":"v0.1.26"}`. 3. `app/admin/admin.go`: `adminHealthDetail` дополнен полем `version` (в /admin/health и /ui/api/health). 4. `app/ui/index.html`: - блок «Информация о сервисе» на странице входа: строка «Версия» (fetch публичного /health); - образ в инфо-блоке теперь `naeel/shared-sqs:v0.1.26`; - дашборд: карточка «Версия» (health.version). 5. `Makefile`: `VERSION=v0.1.26`, `LDFLAGS=-X shared-sqs/app/models.Version=$(VERSION)`, `docker-build` тегает `$(VERSION)` + `latest`; исправлена цель `build` (`./app/cmd/` вместо одного файла goaws.go). 6. `Dockerfile`: `ARG VERSION=dev`, ldflags при сборке. **Проверки**: make build OK; `/health` → `{"status":"ok","version":"v0.1.26"}`; go test router/admin/models — ok. **Git**: коммит `3a105de` «v0.1.26: …», пуш в Gitea (`166baa9..3a105de`). **Образ**: `naeel/shared-sqs:v0.1.26` собран и запушен на Docker Hub, digest `sha256:b4d1dccda75a67e1a5db3887576e1112993d6485504e683d0fa82a2374bca99b`, `latest` указывает на него же. **Следующий шаг**: в deck указать путь образа `naeel/shared-sqs:v0.1.26` и сделать redeploy — тогда под гарантированно стянет новый образ (код с перебором стендов NUBES_ENDPOINT + версия на экране).