Редакция от 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. Мы отвечаем в течение одного рабочего дня.