Repinoid
2aa9a656a7
P2.7: убрать SNS-следы (Topics/Subscriptions) из goaws.yaml
...
Модели Environment уже не содержат Topics/SnsPort (форк вычистил SNS), но yaml
хранил легаси Topics и SNS-комментарии. Оставлен только SQS-конфиг.
2026-10-06 18:15:28 +03:00
Repinoid
876971eea8
P2.3: timing-safe сравнение admin bearer-токена
...
bearerAuthMiddleware теперь сравнивает Authorization через subtle.ConstantTimeCompare
(с предварительной проверкой длины), а не через != — устраняет timing side-channel
при подборе admin-токена.
2026-10-06 18:14:27 +03:00
Repinoid
424ec32a6a
P1.5: убрать демо-бэкдор (публичный bypass-токен UI)
...
Удалены authenticateUIDemoToken, uiDemoToken/uiDemoTenantID/uiDemoEmail и их
константы (demo-ui-shared-sqs-ngcloud-2026) — публичный путь входа в UI мимо
JWT-валидации. seed.go теперь создаёт demo-тенанта со СЛУЧАЙНЫМИ кредами
(tenant.Create), без захардкоженного SecretKey в исходнике. Тест
TestJWTAuth_AllowsDemoToken заменён на TestJWTAuth_RejectsMissingToken.
2026-10-06 18:13:40 +03:00
Repinoid
db41878951
P1.3: реализован MessageRetentionPeriod (эвикция просроченных сообщений)
...
processQueueTick теперь эвиктит сообщения старше retention (SentTime + retention < now):
удаляет их из очереди и из Redis (DeleteMessagesPersist), разблокируя FIFO-группы.
Retention == 0 означает отсутствие истечения. PeriodicTasks итерируется по (key, queue),
чтобы передать queueKey для удаления из Redis. Устраняет забивание очередей до OverLimit.
2026-10-06 18:10:57 +03:00
Repinoid
5642b893a8
chore: удалить мёртвые унаследованные тесты gosqs (несовместимы с мультитенантным форком)
...
13 файлов *_test.go требовали отсутствующие в git пакеты app/fixtures и
app/test, и даже с ними падали бы: написаны под дофорковый GoAws, где не было
тенанта в контексте и tenant-scoped ключей {accessKey}:{queueName}.
Причина зафиксирована в doc/thinking/tests-inherited-broken-2026-10-06.md.
2026-10-06 18:09:29 +03:00
Repinoid
ac06572e25
doc: находка — унаследованные Go-тесты gosqs мёртвые (несовместимы с форком)
...
Тесты требуют тенанта из контекста и tenant-scoped ключей, а написаны под
дофорковый GoAws. Восстановление app/fixtures + app/test сделает их
компилируемыми, но падающими. Нужны новые тесты под мультитенантное поведение.
2026-10-06 18:07:31 +03:00
Repinoid
12b25e393d
P0.2: JWT принимается только при явном 2xx от Nubes API
...
Раньше любой статус, кроме 401/403 (включая 5xx/429/редиректы), считался
подтверждением токена. Теперь валидность подтверждается только явным 2xx;
401/403 — отклонён, прочие статусы — ошибка стенда (пробуем следующий).
2026-10-06 18:04:42 +03:00
Repinoid
c19a056de3
P0.3: синхронный персист SendMessage до ответа 200
...
Добавлен persistence.SaveMessageSync (синхронный HSet, возвращает ошибку).
SendMessage теперь пишет сообщение в Redis ДО возврата клиенту; при ошибке Redis
сообщение откатывается из памяти и возвращается InternalError (новая ошибка в
models/errors.go). Устраняет окно потери подтверждённого сообщения при краше пода
между 200 OK и асинхронной записью.
2026-10-06 18:04:22 +03:00
Repinoid
928a3fb85d
P0.1: случайные креды тенанта — убран детерминированный вывод из email
...
CreateFromJWT больше не выводит ID/AccessKey/SecretKey из email через SHA256
с захардкоженной солью (это позволяло вычислить чужие креды по публичному email).
Креды генерируются случайно через crypto/rand. Удалены tenantIDFromEmail,
accessKeyFromEmail, secretKeyFromEmail, secretKeySalt и ветка legacy-пересчёта.
Идемпотентность по email сохранена (повторный логин возвращает тот же тенант).
2026-10-06 18:03:40 +03:00
Repinoid
6e96a4d007
doc(sqs): подробный план доработок P0/P1/P2 для DeepSeek Flash
2026-10-05 21:38:03 +03:00
Repinoid
9528441c97
doc(sqs): мой критический анализ отчёта Opus (перепроверка по коду)
2026-10-05 21:38:03 +03:00
Repinoid
e8ccd8bae1
doc(sqs): промпт для Opus (allowlist файлов) + его отчёт КРАКО и план
2026-10-05 21:38:03 +03:00
“Naeel”
60b15fdb1c
doc: HANDOFF-NEW-CHAT.md — резюме сессии для перехода в новый чат
2026-08-16 07:55:43 +04:00
“Naeel”
7897fda9e7
doc: тикет — дополнение: таймера 31с внутри кластера нет, он на внешнем шлюзе
2026-08-15 21:28:55 +04:00
“Naeel”
96f6d64184
doc: черновик тикета в Nubes (явления A/B, 6 доказательств); все фазы плана выполнены
2026-08-15 21:17:17 +04:00
“Naeel”
6d451c33d1
HISTORY: период таймаутов 32.9с (18 интервалов 32.7-33.0с) — таймер доказан; полная проверка скриптов и кредов OK; +tcp_mtu_probe.py
2026-08-15 20:38:01 +04:00
“Naeel”
5c2180d40e
doc: финал плана (решения зафиксированы) + сравнение четырёх агентов
2026-08-15 15:05:12 +04:00
“Naeel”
cd7f5a7d5a
doc: план v4 от Опуса 4.8 + ответы на уточнения (нет второго ISP, NET_RAW вряд ли, echo отложить)
2026-08-15 15:03:33 +04:00
“Naeel”
5f6c0a5bf7
doc: план v3 от Соннета — разделение явлений A/B, port-forward первым; принят за основу
2026-08-15 14:56:13 +04:00
“Naeel”
b91f21a50d
doc: план v2 от DeepSeek V4 Pro (новый чат) — стратегия изоляции слоёв; сравнение с Flash
2026-08-15 14:50:02 +04:00
“Naeel”
bd63c04ea3
doc: план сетевых экспериментов от DeepSeek V4 Flash (не Соннет) с поправками — nubes-network-bug-plan
2026-08-15 14:41:53 +04:00
“Naeel”
7460f59432
tests: 30-мин сравнение с локали — p50 90мс vs 140мс, но 49 таймаутов у shared (5.5%), YMQ 1 ошибка
2026-08-15 13:01:11 +04:00
“Naeel”
9950271259
tests: сравнение shared-SQS vs YMQ — p50 6-8мс vs 60-62мс; у shared выброс send 12-25с на прогон (платформа?)
2026-08-15 12:10:11 +04:00
“Naeel”
904d34904c
tests: fifo_dlq_probe — опрос DLQ до 10с вместо мгновенной проверки (гонка с тиком); финальная регрессия зелёная
2026-08-15 09:31:11 +04:00
“Naeel”
2d47e86425
HISTORY: полная регрессия на ВМ — api_test 22/22, sdk_test 15/15; флап fifo_dlq_probe разобран (гонка теста, сервис 5/5)
2026-08-15 09:25:32 +04:00
“Naeel”
cc20282ab0
HISTORY: P1.4/P2.5/P3.8 PASS, фикс api_test; +cli_load_test.py
2026-08-15 09:17:04 +04:00
“Naeel”
28f8527f8b
tests: change-visibility 5с вместо 1с — гонка с таймером AWS-семантики
2026-08-15 09:07:24 +04:00
“Naeel”
9f69262b8c
v0.1.35: фиксы — синхронные удаления в Redis (воскрешение очередей) + RedrivePolicy tenant-scoped DLQ
2026-08-15 08:57:25 +04:00
“Naeel”
c66ac28766
HISTORY: FIFO/DLQ e2e — FIFO PASS, найден баг RedrivePolicy (tenant-scoped ключ)
2026-08-15 08:43:10 +04:00
“Naeel”
33735b0deb
HISTORY: P0.1 таймауты + P0.2 рестарт PASS + найден дефект воскрешения удалённых очередей
2026-08-15 08:41:58 +04:00
“Naeel”
dcafb1ad71
v0.1.35: серверные таймауты по Соннету — ReadHeaderTimeout вместо ReadTimeout, MaxHeaderBytes
2026-08-15 08:34:02 +04:00
“Naeel”
d850e56cd9
chore: убрать __pycache__ из репо, добавить в .gitignore
2026-08-14 23:04:27 +04:00
“Naeel”
1862975a57
tests: авточистка очередей до и после прогона (мусор не копится)
2026-08-14 22:19:27 +04:00
“Naeel”
97db8f267d
tests: без больших тел (платформа MTU 51с); превышение лимита через MaximumMessageSize=1024
2026-08-14 20:53:32 +04:00
“Naeel”
5599561527
HISTORY: результаты диагностики платформы (зависание больших POST ~51с, WAF) + platform_probe
2026-08-14 20:32:30 +04:00
“Naeel”
d452afe854
v0.1.35: устранены гонки map (ChangeVisibility/DeleteBatch) и nil-deref под Lock + OverLimit
2026-08-14 18:48:35 +04:00
“Naeel”
ff70bbeada
tests: фикс invalid_cases (очереди удаляются после сценариев) + полные AWS-коды в EXPECTED_CODES + invalid_probe
2026-08-14 17:45:37 +04:00
“Naeel”
4e093db632
v0.1.35: лимит очередей JWT-тенантов 50, обновление лимита при логине
2026-08-14 16:51:12 +04:00
“Naeel”
bc198dfb0c
v0.1.35: FifoQueue/ContentBasedDeduplication в whitelist (совместимость CLI v2)
2026-08-14 16:02:51 +04:00
“Naeel”
ee23079267
v0.1.35: whitelist имён атрибутов и для JSON-протокола (UnmarshalJSON)
2026-08-14 16:00:48 +04:00
“Naeel”
1869ce922b
v0.1.35: resolveProtocol — query-mode клиенты парсят JSON-ответы (эмпирика), ошибки AWS-JSON __type
2026-08-14 15:56:40 +04:00
“Naeel”
23718f0b0e
v0.1.35: query-mode XML-ответы, TOCTOU receive, валидации AWS, purge 60s, сужение локов
2026-08-14 15:53:08 +04:00
“Naeel”
072518ec52
tests: api_test.sh (CLI 22 проверки) + sdk_test.py (boto3 15 проверок)
2026-08-14 14:43:36 +04:00
“Naeel”
1c407be9d9
v0.1.34: кэш валидации JWT + smoke-тесты
2026-08-14 14:16:38 +04:00
“Naeel”
a1936b760f
v0.1.34: кэш валидации JWT (TTL 5 мин + grace 2 мин) — консоль устойчива к флаку шлюза
2026-08-14 14:09:49 +04:00
“Naeel”
854effb206
v0.1.33: строгий нейтральный стиль текстов на главной и в примерах
2026-08-14 13:49:26 +04:00
“Naeel”
63fb4fe93b
v0.1.32: главная — пошаговый старт; примеры команд — на /examples крупным шрифтом; консоль сразу в аккаунт
2026-08-14 13:45:06 +04:00
“Naeel”
d57aec40b5
v0.1.31: админский UI /admin, юзерский UI без слова «тенант»
2026-08-14 10:19:35 +04:00
“Naeel”
c088d7b938
v0.1.30: локальные логотип и favicon /static в консоли (внешние terra.k8c.ru битые)
2026-08-14 10:10:18 +04:00
“Naeel”
6466d3cb75
v0.1.29: светлый Nubes-дизайн консоли, читаемая модалка Credentials (env + файл кредов)
2026-08-14 09:56:18 +04:00
“Naeel”
4badef12ea
v0.1.28: email-идентичность — детерминированные креды из email, credentials-эндпоинт, UI модалка
2026-08-14 09:43:36 +04:00
“Naeel”
f689684fef
v0.1.27: страница-описание сервиса на корне / (дизайн Nubes) + /static
2026-08-14 09:05:16 +04:00
“Naeel”
10a5853c61
v0.1.26: версия в /health, admin health и UI; ldflags VERSION; Makefile build фикс
2026-08-14 08:19:14 +04:00
“Naeel”
a1b1fe3b25
fix: валидация JWT перебором всех стендов gateway (токен любого стенда принимается)
2026-08-14 08:05:16 +04:00
“Naeel”
7169bf6dfd
fix: JWT-валидация через lk-api-gateway PROD + User-Agent в PingNubesAPI
2026-08-14 07:51:05 +04:00
“Naeel”
32bc33b8c1
feat: UI — инфо-блок о сервисе на странице входа
2026-08-13 23:20:51 +04:00
“Naeel”
a838f756f9
fix: Makefile — вернуть registry Docker Hub (образ пушится на naeel/shared-sqs)
2026-08-13 23:11:12 +04:00
“Naeel”
936268c217
feat: Dockerfile — ENV для Redis и seed-demo (под деплой на Nubes)
2026-08-13 22:07:42 +04:00
“Naeel”
b5695dbd53
chore: удалить устаревшие тестовые файлы (SNS-легаси, несуществующие импорты)
2026-08-13 22:06:26 +04:00
“Naeel”
ae338d2b4a
chore: переместить исторические doc в doc/legacy, удалить tests и пустые легаси-папки
2026-08-13 22:03:08 +04:00
“Naeel”
a6a67244c8
chore: удалить легаси — k8s/helm манифесты (уходим на Nubes Managed)
2026-08-13 22:00:52 +04:00
“Naeel”
56e87eaf1e
chore: убрать легаси — pearlharbor креды удалены, doc/api и yandex YMQ помечены ЛЕГАСИ
2026-08-13 21:58:08 +04:00
“Naeel”
0e0af356e4
docs: пометка ЛЕГАСИ в doc/legacy/PLAN.md
2026-08-13 21:55:09 +04:00
“Naeel”
9ec4673893
chore: git локально, после пуша синк на ВМ
2026-08-13 21:51:36 +04:00
“Naeel”
d3c29d8e3e
doc: план миграции shared-sqs на Nubes Managed
2026-08-13 14:03:09 +04:00
“Naeel”
5429f1f62b
Add GitHub rules: copilot-instructions.md and pravila.md
2026-05-08 14:20:07 +04:00