Почему у каждой библиотеки — своя копия системы
Одна большая платформа для всех или отдельная копия для каждой библиотеки? Мы выбрали второе. Рассказываем, чем пришлось заплатить и что получили взамен.
Когда стало понятно, что идея Katlog может быть интересна не только в рамках одного эксперимента, встал первый архитектурный вопрос. Как дать систему другим библиотекам так, чтобы это было безопасно, дёшево и не требовало от нас круглосуточной поддержки?
Два пути
Общая платформа. Одна система, в которой живут все библиотеки, каждая видит только свои данные. Так устроено большинство облачных сервисов. Обновление одно на всех, обслуживать проще.
Своя копия. Каждая библиотека получает отдельную установку со своей базой данных. Библиотекарь копирует шаблон, при первом запуске создаёт свою учётную запись и загружает файл каталога.
Почему мы выбрали свою копию
- Данные физически разделены. В общей платформе одна ошибка в проверке прав может показать читателям одной библиотеки заказы другой. В отдельных копиях чужих данных просто нет.
- Нечего взламывать «оптом». Атака на одну копию не открывает доступ ко всем остальным.
- Почти бесплатно. Маленькой библиотеке с тысячами записей и десятками обращений в день хватает самой скромной установки.
- Библиотека остаётся хозяйкой. Код и данные принадлежат ей, их можно скачать и перенести.
Закрытая библиотека — закрытая система
Второе решение того же порядка: Katlog рассчитан на закрытые библиотеки, поэтому в нём нет самостоятельной регистрации. Логины и временные пароли выдаёт библиотекарь, а читатель должен подписать согласие на обработку персональных данных. Без отметки о согласии войти нельзя.
В самом эксперименте реальные читатели не участвуют, и их данные не используются. Все учётные записи на скриншотах — тестовые, с вымышленными именами.
Это не только юридическая аккуратность. Каждая форма регистрации — дверь, в которую может постучаться кто угодно. Нет двери — нет и этой проблемы.

Заначка на будущее
Мы не закрываем путь к общей платформе. В базе уже заложено понятие «библиотека», чтобы однажды перейти ко второму пути без переделки. Но начинать с него, пока пользователей несколько, значило бы строить небоскрёб для трёх жильцов.