103 lines
5.6 KiB
Markdown
103 lines
5.6 KiB
Markdown
# Журнал сессии — 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 + версия на экране).
|