Перейти к содержимому

Что нового

История обновлений платформы

wave-10

Волна аудита: 10 раундов, 10 релизов, стабильнее и безопаснее

Прогнали платформу через 100 независимых проверок. Сделали 10 релизов подряд — от безопасности до склада. Прод ни разу не упал, тесты 167/167 после каждого деплоя.

Безопасность

  • •Закрыта CSRF-уязвимость: проверка Origin теперь точная, а не по подстроке
  • •Rate-limits на сброс пароля, смену пароля, сохранение ключей
  • •HSTS заголовок — браузер принудительно идёт по HTTPS
  • •Куки входа помечены secure + httponly + samesite
  • •Ключи API в UI: убрали утечку первого символа, показываем только ****last4
  • •Уволенный сотрудник сразу теряет доступ (ревокируем refresh-токены)
  • •Перед отправкой ошибок в Telegram админу — маскируем JWT, пароли, email

Надёжность

  • •Фоновые задачи запускаются только в одном worker'е (раньше дублировались ×4)
  • •Починили утечку памяти в парсерах Excel (50-100 МБ на запрос)
  • •Бэкап БД переписан на атомарный snapshot + проверка целостности + SHA256
  • •Ежесуточный VACUUM/ANALYZE в 03:30 UTC
  • •Retry-After от маркетплейсов уважаем, +20% джиттер от перегрузки
  • •Email убран из логов логина (защита от log injection)

Ozon FBO (дистрибуция)

  • •Окно поиска таймслотов расширили с 21 до 28 дней
  • •Cancel_draft считает "already cancelled" успехом, а не ошибкой
  • •SSE не шлёт данные в закрытое соединение (is_disconnected)
  • •Retry корректно обрабатывает пустой slot2
  • •UNIQUE-индексы на draft_id и supply_order_id — защита от дублей

Склад

  • •Нельзя удалить approved-инвентаризацию (возвращаем 409)
  • •UNIQUE на штрихкод и алиас сокращений (case-insensitive)
  • •Bulk abbreviations считает реально созданные, а не попытки

Интеграции маркетплейсов

  • •WB 429 retry уважает Retry-After заголовок
  • •Логирование Deprecation/Sunset от API (раннее предупреждение об устаревании)
  • •Audit-лог при смене ключей маркетплейса
  • •Cluster changelog (Ozon) теперь per-аккаунт, не путает данные

Интерфейс

  • •Toast-ы: ошибки видны 8 сек, успехи 3 сек (раньше одинаково)
  • •Дедупликация одинаковых toast'ов в окне 1.2 сек — без спама
  • •Защита от двойного submit на slow 3G
  • •Корректные aria-атрибуты и autoFocus на формах

Производительность БД

  • •Новые индексы для рефералов, инвайтов, подписок и ярлыков склада
  • •Tuning SQLite (cache_size, mmap, wal_autocheckpoint, busy_timeout)
  • •cleanup_expired_tokens теперь чистит и user_sessions

Observability (мониторинг)

  • •Uptime-check на явный /api/health 200 (вместо 401 "auth endpoint alive")
  • •Добавили в logrotate логи cron'а и uptime (перестали расти бесконечно)
  • •Перенесли request_id в фоновые потоки (больше не теряется в логах)
  • •IP клиента в audit-логе входов (через X-Forwarded-For)
  • •Отдельный TELEGRAM_ADMIN_CHAT_ID для админских алертов

Product polish

  • •Resend: проверяем result.error — раньше rejected письма считались отправленными
  • •html.escape на plan/payment_id/email в шаблонах писем
  • •html.escape на SKU и маркетплейс в Telegram-сообщениях
  • •Audit-лог при просмотре админом списка пользователей (152-ФЗ)

Нашли баг или есть идея?

Напишите нам — каждое обращение читаем лично