чат с агентомспроситьAI и агенты7 файловИнфраструктура4 файлаРазработка6 файловОбо мне5 файлов
BeautyPad - CRM для мастеров красоты с шифрованием персональных данных клиентов
  • безопасность
  • шифрование
  • RLS

BeautyPad - CRM для мастеров красоты с шифрованием персональных данных клиентов

CRM для мастеров красоты и массажа: запись клиентов, медицинские карты, финансы - через приложение специалиста и веб-запись для клиента. В медкартах лежат аллергии, противопоказания и контакты, то есть данные, которые нельзя терять и нельзя показывать чужому. Когда делаешь такой продукт один, безопасностью занимается тот же человек, что и вёрсткой, и отдельной команды, которая придёт и проверит, не будет.

Четыре уровня защиты

Изоляция по владельцу на уровне базы. Row-level security в PostgreSQL: мастер физически не может прочитать чужие записи, даже если запрос в приложении написан с ошибкой. Проверка не в коде, где её легко забыть, а в самой базе.

Шифрование чувствительных полей алгоритмом AES-256-GCM. Дамп базы, утёкший бэкап или доступ к диску не дают ничего читаемого.

Слепой индекс. Шифрование ломает поиск: по зашифрованному полю нельзя сделать обычный запрос. Решение - хранить рядом детерминированный отпечаток значения, по которому ищется точное совпадение без расшифровки всей таблицы.

Неизменяемый журнал действий. Кто, что и когда открывал или менял - записи только добавляются. В продукте с медицинскими данными это не бюрократия, а единственный способ ответить на вопрос «кто это удалил» через полгода.

Устройство

Монорепозиторий на Turborepo держит вместе бэкенд, мобильное приложение специалиста и веб-запись клиента, с общим пакетом типов и бизнес-логики. Один разработчик и три приложения - это ровно тот случай, когда общий контракт между ними экономит недели: изменил тип на бэкенде, компилятор сам показал все места, где приложения перестали сходиться.

97,5% коммитов мои: 79 из 81 за время активной разработки, оставшиеся два - автокоммиты вспомогательных инструментов.