docs: update thinking log + progress for v0.1.6
This commit is contained in:
@@ -1942,3 +1942,36 @@ G15 перезапущен → **21/21 PASS ✅**
|
|||||||
- [ ] DB_DSN в function pod env
|
- [ ] DB_DSN в function pod env
|
||||||
- [ ] schema.sql при деплое функции
|
- [ ] schema.sql при деплое функции
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2026-04-09 (вечер) — shared-sqs v0.1.6: Queue CRUD + Message UI
|
||||||
|
|
||||||
|
### Реализовано
|
||||||
|
|
||||||
|
**Backend (shared-sqs/app/admin/admin.go):**
|
||||||
|
- `POST /tenants/{id}/queues` — создание очереди (с проверкой лимита MaxQueues)
|
||||||
|
- `DELETE /tenants/{id}/queues/{name}` — удаление очереди
|
||||||
|
- `GET /tenants/{id}/queues/{name}/messages` — peek-просмотр сообщений (read-only, без ReceiptHandle)
|
||||||
|
- `POST /tenants/{id}/queues/{name}/messages` — отправка сообщения через admin API
|
||||||
|
- `DELETE /tenants/{id}/queues/{name}/messages` — purge (очистка без удаления очереди)
|
||||||
|
|
||||||
|
**Frontend (shared-sqs/app/ui/index.html):**
|
||||||
|
- Expandable строки очередей: клик на имя → inline-таблица сообщений
|
||||||
|
- Кнопки действий: 📨 Отправить / 🗑 Очистить / ✕ Удалить
|
||||||
|
- Модалка отправки сообщения (`#modal-send`)
|
||||||
|
- Модалка детали сообщения (`#modal-msg-detail`) — c копированием тела
|
||||||
|
- Модалка создания очереди (`#modal-queue-create`)
|
||||||
|
- JS: `msgCache` для безопасной передачи тела без onclick attrs
|
||||||
|
|
||||||
|
**Сборка:**
|
||||||
|
- `naeel/shared-sqs:v0.1.6` собран и запушен на Docker Hub
|
||||||
|
|
||||||
|
**Git:** коммит `610c604`, ветка `shared-sqs`
|
||||||
|
|
||||||
|
### Осталось
|
||||||
|
|
||||||
|
- [ ] Задеплоить v0.1.6 в K8s (kubectl-токен истёк, нужно обновить)
|
||||||
|
```
|
||||||
|
kubectl -n shared-sqs set image deployment/shared-sqs shared-sqs=naeel/shared-sqs:v0.1.6
|
||||||
|
```
|
||||||
|
|||||||
@@ -287,3 +287,63 @@ go build → OK (все этапы 1-8)
|
|||||||
### Коммит
|
### Коммит
|
||||||
- `12b3bb9` — feat(shared-sqs): add SQS Console UI (v0.1.4)
|
- `12b3bb9` — feat(shared-sqs): add SQS Console UI (v0.1.4)
|
||||||
- Pushed to `sqs-operator`
|
- Pushed to `sqs-operator`
|
||||||
|
|
||||||
|
---
|
||||||
|
# GitHub Copilot (Claude Sonnet 4.6) — продолжение сессии 2026-04-09 (вечер)
|
||||||
|
|
||||||
|
## Контекст
|
||||||
|
|
||||||
|
Продолжение с конца предыдущего сеанса. Была реализована база admins API.
|
||||||
|
Нужно было:
|
||||||
|
1. Исправить `models.NewUUID()` → найти правильную функцию генерации UUID
|
||||||
|
2. Написать frontend для peek/send/purge/queue CRUD
|
||||||
|
3. Собрать + задеплоить v0.1.6
|
||||||
|
|
||||||
|
## Анализ + ход мыслей
|
||||||
|
|
||||||
|
### UUID
|
||||||
|
Сделал `grep` по Uuid в gosqs пакете → нашёл `uuid.NewString()` из `github.com/google/uuid`.
|
||||||
|
Исправил admin.go: добавил import + заменил `models.NewUUID()` → `uuid.NewString()`.
|
||||||
|
Сборка прошла чисто.
|
||||||
|
|
||||||
|
### Frontend (index.html)
|
||||||
|
Прочитал весь текущий HTML/JS. Отметил:
|
||||||
|
- CSS уже есть: `.card`, `.btn`, `.badge`, `.modal`, `.hidden`
|
||||||
|
- JS helpers: `esc()`, `api()`, `fmtDate()`, `fmtBytes()`, `fmtDuration()`
|
||||||
|
- Шаблонные literals со вложенностью (outer: `el.innerHTML = \`...\``, inner: `.map(q => \`...\`)`)
|
||||||
|
|
||||||
|
Решения:
|
||||||
|
- **IDs для expandable rows**: `msgs-${q.name}`, `qicon-${q.name}` — SQS-имена только `[a-zA-Z0-9_-]`, безопасно
|
||||||
|
- **msgCache**: хранить весь объект сообщения в Map по id — чтобы не передавать body через onclick attrs (безопаснее, нет проблем с кавычками)
|
||||||
|
- **State для модалок**: `_sendState`, `_createQueueState` — сохраняем перед открытием модалки
|
||||||
|
- **template literal nesting**: `${esc(tenant.id)}` в inner template работает т.к. tenant из closure
|
||||||
|
|
||||||
|
Добавлено в HTML:
|
||||||
|
- 3 новые модалки: `#modal-send`, `#modal-msg-detail`, `#modal-queue-create`
|
||||||
|
- CSS: `.msg-expand`, `.msg-expand-inner`, `.queue-name-link`
|
||||||
|
- Toolbar очередей: + кнопка "+ Очередь"
|
||||||
|
- Каждая строка очереди: клик на имя → toggle сообщений; кнопки 📨 🗑 ✕
|
||||||
|
- Скрытая expandable строка с `#msgs-inner-{name}`
|
||||||
|
- JS: `toggleMessages`, `loadMessages`, `renderQueueMessages`, `openMsgDetail`, `closeMsgDetail`, `openSendModal`, `closeSendModal`, `sendMessage`, `purgeQueueConfirm`, `openCreateQueueModal`, `closeQueueModal`, `createQueue`, `deleteQueueConfirm`, `copyTextarea`
|
||||||
|
|
||||||
|
Синтаксис проверен через `node -e "new Function(script)"` → OK.
|
||||||
|
|
||||||
|
### Деплой
|
||||||
|
- Docker build v0.1.6 на VM → успешно
|
||||||
|
- `docker push naeel/shared-sqs:v0.1.6` → успешно
|
||||||
|
- `kubectl set image` → **ОШИБКА**: JWT токен в kubeconfig на VM истёк в 16:01 UTC, текущее время 16:07 UTC
|
||||||
|
- Решение: обновил `deployment.yaml` с новым тегом → пользователь задеплоит после обновления токена
|
||||||
|
|
||||||
|
### Коммит
|
||||||
|
- `610c604` feat(shared-sqs): queue CRUD + message peek/send/purge in UI (v0.1.6)
|
||||||
|
- Pushed to branch `shared-sqs`
|
||||||
|
|
||||||
|
## Итог
|
||||||
|
|
||||||
|
Всё реализовано. Осталось только задеплоить — нужен свежий K8s токен (текущий истёк).
|
||||||
|
Команда деплоя:
|
||||||
|
```
|
||||||
|
kubectl -n shared-sqs set image deployment/shared-sqs shared-sqs=naeel/shared-sqs:v0.1.6
|
||||||
|
# или
|
||||||
|
kubectl apply -f shared-sqs/deployments/k8s/deployment.yaml
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user