Files
SQS-service/HISTORY/2026-08-14-session-log.md
T

5.6 KiB
Raw Blame History

Журнал сессии — 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):


Выводы (факты)

  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 + версия на экране).