2026-03-27 - 2026-06-27
Overview
28 Issues closed from 1 user
Closed
#48 Документировать CSV-экспорт мнемоник как фичу владельца
Closed
#59 Сохранять userStates в SQLite вместо in-memory Map
Closed
#58 Заменить 214+ console.log на структурированное логирование (pino)
Closed
#50 Вынести WireGuard конфиг из репозитория
Closed
#49 Удалить привилегированный режим из Docker
Closed
#53 Разбить index.js — заменить if/else роутер на Map-диспетчер
Closed
#52 Разбить userWalletsHandler.js на модули
Closed
#51 Разбить adminProductHandler.js на модули
Closed
#57 Разбить database.js на миграции + подключение
Closed
#90 Сохранять userStates в SQLite вместо in-memory Map
Closed
#89 Заменить 214+ console.log на структурированное логирование (pino)
Closed
#88 Разбить database.js на миграции + подключение
Closed
#87 Устранить дублирование getBaseWalletType() — унифицировать
Closed
#86 Устранить дублирование convertToUsd — вынести в утилиту
Closed
#85 Устранить дублирование isAdmin() — вынести в middleware
Closed
#84 Разбить index.js — заменить if/else роутер на Map-диспетчер
Closed
#83 Разбить userWalletsHandler.js на модули (751 строк)
Closed
#82 Разбить adminProductHandler.js на модули (1054 строк)
Closed
#55 Устранить дублирование convertToUsd — вынести в утилиту
Closed
#56 Устранить дублирование getBaseWalletType() — унифицировать
Closed
#54 Устранить дублирование isAdmin() — вынести в middleware
Closed
#47 Добавить валидацию входных данных во всех handlers
Closed
#46 Улучшить KDF для шифрования мнемоник (SHA-256 → HKDF)
Closed
#45 Заменить MD5 на crypto.randomUUID() для tx_hash
Closed
#41 Вынести секреты из docker-compose.yml в .env файл
Closed
#44 Обернуть покупку в транзакцию (race condition)
Closed
#43 Исправить SQL-инъекции в database.js и userService.js
Closed
#42 Удалить fallback ENCRYPTION_KEY из config.js
59 Issues created by 1 user
Opened
#41 Вынести секреты из docker-compose.yml в .env файл
Opened
#42 Удалить fallback ENCRYPTION_KEY из config.js
Opened
#43 Исправить SQL-инъекции в database.js и userService.js
Opened
#44 Обернуть покупку в транзакцию (race condition)
Opened
#45 Заменить MD5 на crypto.randomUUID() для tx_hash
Opened
#46 Улучшить KDF для шифрования мнемоник (SHA-256 → HKDF)
Opened
#47 Добавить валидацию входных данных во всех handlers
Opened
#48 Документировать CSV-экспорт мнемоник как фичу владельца
Opened
#49 Удалить привилегированный режим из Docker
Opened
#50 Вынести WireGuard конфиг из репозитория
Opened
#51 Разбить adminProductHandler.js на модули
Opened
#52 Разбить userWalletsHandler.js на модули
Opened
#53 Разбить index.js — заменить if/else роутер на Map-диспетчер
Opened
#54 Устранить дублирование isAdmin() — вынести в middleware
Opened
#55 Устранить дублирование convertToUsd — вынести в утилиту
Opened
#56 Устранить дублирование getBaseWalletType() — унифицировать
Opened
#57 Разбить database.js на миграции + подключение
Opened
#58 Заменить 214+ console.log на структурированное логирование (pino)
Opened
#59 Сохранять userStates в SQLite вместо in-memory Map
Opened
#60 Создать Express.js сервер для Admin API
Opened
#72 Вынести секреты из docker-compose.yml в .env файл
Opened
#73 Удалить fallback ENCRYPTION_KEY из config.js
Opened
#74 Исправить SQL-инъекции в database.js и userService.js
Opened
#75 Обернуть покупку в транзакцию (race condition)
Opened
#76 Заменить MD5 на crypto.randomUUID() для tx_hash
Opened
#77 Улучшить KDF для шифрования мнемоник (SHA-256 → HKDF)
Opened
#78 Добавить валидацию входных данных во всех handlers
Opened
#79 Улучшить безопасность экспорта мнемоник (фича владельца)
Opened
#80 Убрать privileged режим из Docker
Opened
#81 Вынести WireGuard конфиг из репозитория
Opened
#82 Разбить adminProductHandler.js на модули (1054 строк)
Opened
#83 Разбить userWalletsHandler.js на модули (751 строк)
Opened
#84 Разбить index.js — заменить if/else роутер на Map-диспетчер
Opened
#85 Устранить дублирование isAdmin() — вынести в middleware
Opened
#86 Устранить дублирование convertToUsd — вынести в утилиту
Opened
#87 Устранить дублирование getBaseWalletType() — унифицировать
Opened
#88 Разбить database.js на миграции + подключение
Opened
#89 Заменить 214+ console.log на структурированное логирование (pino)
Opened
#90 Сохранять userStates в SQLite вместо in-memory Map
Opened
#91 Создать Express.js сервер для Admin API
Opened
#92 Реализовать JWT-авторизацию для Admin API
Opened
#93 Создать API для управления настройками бота (Settings API)
Opened
#94 Создать API для управления администраторами
Opened
#95 Создать API для управления кошельками (Wallets API)
Opened
#96 Создать API для управления товарами (Products API)
Opened
#97 Создать API для управления заказами (Purchases API)
Opened
#98 Инициализировать React-фронтенд для Admin Panel
Opened
#99 Создать страницу авторизации и layout админ-панели
Opened
#100 Создать дашборд со статистикой магазина
Opened
#101 Создать страницу управления настройками бота
Opened
#102 Создать страницу управления товарами и каталогом
Opened
#103 Создать страницу заказов и статистики
Opened
#104 Создать страницу управления кошельками
Opened
#105 Создать страницу управления пользователями
Opened
#106 Настроить тестовую инфраструктуру (Jest)
Opened
#107 Написать тесты для критических бизнес-процессов
Opened
#108 Настроить CI/CD pipeline для Gitea
Opened
#109 Добавить ESLint и Prettier
Opened
#110 Харденинг Docker для production