Редакция от 2026-05-17
Безопасность данных
Документ, который потом покажут приёмочной комиссии, не должен зависеть от случайности. Ниже — что мы делаем, чтобы исполнительная документация в ID Platform не пропала и не была подделана.
Резервное копирование
Дамп базы данных и снимок файлового хранилища (фото, PDF, аудит-лог) создаются каждый день. Запускаются по cron на стороне сервера через скрипты backup-postgres.sh и backup-minio.sh.
Дамп БД сжимается gzip’ом и складывается в защищённое хранилище. Срок хранения резервных копий — 30 дней. Процедура восстановления документирована, тестируется на dev-окружении.
Изоляция организаций (multi-tenant)
Каждая организация работает в своём workspace. Все запросы проходят через multi-tenant фильтр по workspace_id — данные одной компании не видны другой ни при каких условиях, даже если ID документа угадан.
В B2B-режиме доступы к конкретным объектам выдаёт ПТО через таблицу object_access. В B2C-режиме (личный кабинет инженера) workspace принадлежит одному пользователю, других участников нет.
Аудит-лог действий
Каждое значимое действие — создание АОСР, подписание, добавление фото, изменение заголовка журнала — пишется в отдельную таблицу audit_log с IP-адресом, ID пользователя и точным временем.
Удаление документов работает через soft delete: записи в АОСР, журнале и фото получают пометку deleted_at и из общего списка исчезают, но физически из БД не пропадают. Это даёт возможность восстановить случайно удалённое и отвечает на вопросы аудиторов «куда делся документ».
Юридическая сила PDF
Каждый акт сохраняется как PDF с QR-кодом. QR ведёт на публичную страницу проверки документа: статус, состав комиссии, даты подписания и хеш PDF. Если документ изменили после подписания — хеш не совпадёт.
В B2B-режиме подписи участников фиксируются электронно с криптографическим хешем. В B2C — PDF распечатывается, и подписи собираются на бумаге, но сам факт создания акта и его метаданные остаются в системе.
Аутентификация и пароли
Пароли пользователей хранятся не в виде текста, а как хеш bcrypt с 10 раундами. Даже если кто-то получит копию базы — восстановить исходные пароли вычислительно невозможно.
Сессии — HttpOnly cookie c флагом SameSite=Lax; токены не доступны JavaScript на стороне страницы. Сброс пароля проходит через одноразовую ссылку с TTL 1 час, которая инвалидируется после использования или при запросе новой.
В B2C-режиме регистрация требует подтверждения email до первого входа — это закрывает атаку «зарегистрировался на чужой email».
Фотодокументация: где сделали и когда
Фото для журнала и АОСР делаются только через камеру мобильного приложения — галерея устройства намеренно отключена. К каждому файлу автоматически подтягиваются GPS-координаты, время съёмки и автор. Метаданные сохраняются в БД и на сервере, и подделать их на стройплощадке нельзя.
Размещение серверов и шифрование at-rest
Точные данные о ЦОД и провайдере шифрования диска будут опубликованы до выхода Сервиса из пилотного режима. В период пилота сервер расположен в инфраструктуре, согласованной с пилотными клиентами индивидуально.
Вопросы и инциденты
Любые вопросы по безопасности данных, подозрение на компрометацию аккаунта или ошибку доступа — пишите на support@asbuilt.kz. Мы отвечаем в течение одного рабочего дня.