Node.js 22 и Fastify
Серверная часть. Входные данные проверяются по схемам до того, как попадут в код; каждый модуль системы – отдельный подключаемый блок со своим адресом в API.
Один набор на все проекты: отступление от него требует обоснования.
Серверная часть. Входные данные проверяются по схемам до того, как попадут в код; каждый модуль системы – отдельный подключаемый блок со своим адресом в API.
Права доступа проверяет сама база: ошибка в коде приложения не открывает чужие записи. Схема – источник правды, изменения идут миграциями и проверяются тестами.
Мобильные приложения: iOS, Android и веб из одной кодовой базы. Один код и одна команда на все платформы – правки выходят везде одновременно.
Веб-интерфейсы внутренних систем: реестры, карточки, журналы. Строгая типизация TypeScript и сборка за секунды – ошибки ловятся до запуска.
Одинаковое окружение на стенде и в эксплуатации; сертификаты продлеваются сами. Выпуск – замена контейнеров по описанию из репозитория.
Серверы, резервные копии и DNS – в России. Персональные данные не покидают страну; вход администраторов – по ключам и со вторым фактором.
Каждое изменение проходит автоматическую сборку и тесты; в репозитории внутренней платформы – ещё линтер и проверку на персональные данные в коде. Без этого изменение не принимается.
Ежедневно, с выгрузкой за пределы сервера и проверкой восстановления. Копии зашифрованы, ключ хранится отдельно от них; глубина хранения – 14 дней.
Внешний помощник получает доступ к системе как обычный клиент: по протоколу, по правам роли, с журналом. Токен ограничен сроком, в базе хранится только его хэш.
Ответы моделей проверяются на заранее подготовленных примерах, как обычные тесты: изменение модели или запроса не проходит незаметно.
Предупреждения об уязвимостях в библиотеках разбираются по списку в каждом выпуске, а не копятся. Версии зафиксированы, обновления проходят те же проверки, что и код.
Репозитории – в российском сервисе, приватные. В основную ветку изменения попадают только через запрос и проверки; на сервер код приходит из своего зеркала.
JavaScript и TypeScript, Dart, Python, SQL.
Статические файлы на нашем сервере. Без счётчиков, внешних шрифтов, сторонних скриптов и cookie.