CADBase 0.3.2 — инженерная платформа, теперь полностью открытая

CADBase — это цифровая платформа для публикации, хранения, версионирования и обмена 3D-моделями, чертежами и сопроводительной документацией.
Релиз версии 0.3.2 знаменует собой важный рубеж в развитии платформы CADBase: теперь весь код открыт под свободными лицензиями. Серверная часть (cdbs-back), процессы фоновой обработки (cdbs-proc) и миграции для БД (cdbs-migrations) становятся доступными сообществу.
Изначально планировалось публиковать проект сразу в open source, но потом перешли к закрытой разработке с планом открыть код через некоторое время. Исходный код веб-приложения был открыт под лицензией MIT в 2023 году и теперь, в 2026 году, открыты исходные коды всех репозиториев. Пусть и с большой задержкой, но теперь это сделано — хорошая новость.
Что это меняет?
В первую очередь это повышает доверие и избавляет от опасений, что это «черный ящик» или платформа может стать недоступной. Появляется возможность создавать собственные решения на основе платформы CADBase и принимать непосредственное участие в её развитии.
Теперь все желающие могут запустить платформу на собственных ресурсах. В планах — опубликовать инструкцию и скрипты для деплоя, чтобы разворачивать всё одной командой в соответствии с трендами.
Помимо этого, развитие платформы может происходить вместе с развитием других инженерных инструментов. К примеру, через создание интеграций специализированного ПО с платформой со стороны сообщества или разработчика этого ПО.
Кратко о лицензировании:
- Веб-приложение (
cdbs-app) — MIT License - Серверная часть (
cdbs-back,cdbs-proc) — GNU Affero General Public License v3.0 - Схема базы данных и основные данные (
cdbs-migrations) — PostgreSQL License
К слову, при выборе лицензии для серверной части учитывалась рекомендация из комментариев к прошлой новости.
Теперь разработка ведётся публично, и пора рассказать, что изменилось с новыми релизами.
Обновление веб-интерфейса
Просмотр 3D-моделей
Добавлена поддержка STEP — одного из самых распространённых форматов обмена 3D-моделями в инженерии. Таким образом, просмотрщик CADBase поддерживает 6 форматов: STL, GLTF, GLB, STEP, GCode и IFC.
Горячие клавиши были переработаны: для сброса вида используется H (вместо R), Z для каркасного режима (вместо W) и T для управления трансформационным гизмо.
В полноэкранном режиме клавиши W, E, R переключают режимы гизмо (перемещение/вращение/масштабирование); цифровые клавиши теперь работают так: 1/3/7/0 — виды спереди/слева/сверху/изометрия, 9 — противоположный вид, 2/4/6/8 — повороты камеры, 5 — переключение между перспективной и ортографической проекцией. Слушатели горячих клавиш активируются только при фокусе на просмотрщике (canvas).
Добавлена обработка двойного клика по модели, который устанавливает центр вращения (pivot point) камеры в точку, куда кликнул пользователь. То есть камера, сместив центр вращения, будет вращаться вокруг этой точки.
Чтобы ускорить повторную загрузку недавно просмотренных моделей и снизить нагрузку на сеть, переработана система кэширования: реализован простой in-memory кэш с вытеснением по очереди добавления (удаляется самый старый).
Исправлена проблема с центрированием и автоматическим масштабированием моделей.
Система управления доступом
По запросу одного из пользователей был реализован прототип RBAC — системы управления доступом. Пользователь в итоге пропал так же внезапно, как и появился, но код был написан и добавлен в основную ветку.
У пользователей появилась возможность назначать роли участникам компании, ограничивать доступ к компонентам на уровне отдельных пользователей или компаний. Если доступ выдаётся компании, то он распространяется на всех её членов в соответствии с ролями в ней.
Реализация пока что является прототипом, так как на стороне сервера и базы данных остались некоторые моменты, которые планируется доделать в будущем. Оперативность завершения будет зависеть от запросов пользователей.
Безопасность пользовательского интерфейса
Изменена логика управления сессиями: теперь токен пользователя автоматически обновляется, а при истечении сессии происходит перенаправление на страницу авторизации. Это избавляет пользователя от лишних действий и неожиданных вылетов, делая работу с платформой более комфортной. Должно быть удобно для тех, кто заходит на сайт платформы примерно раз в неделю.
Добавлена санитизация HTML и Markdown, чтобы минимизировать риск XSS-атак через пользовательский контент.
Рассчитываем на обратную связь в части безопасности. Надеемся, что наши пользователи будут сообщать о проблемах нам, а не злым хакерам. Хотя бы ставьте в копию :)
Ключевые изменения под капотом
API Key для интеграций
Теперь разработчики могут подключать свои инструменты к CADBase через API-ключи.
Что это даёт:
- Можно создавать, обновлять и отзывать ключи через интерфейс пользователя на сайте платформы.
- Ключи передаются через заголовок
X-API-Key(стандартный подход). - У каждого ключа есть срок действия и базовый аудит использования в виде даты последней активности.
Дополнения, плагины, импорт/экспорт данных — всё это теперь можно делать без использования пользовательских JWT-сессий.
Управление сессиями и JWT
Вся логика работы с токенами перенесена в общий модуль. Это упростит поддержку и сделает код более понятным для изучения.
Переход от внешних файлов к переменным окружения упростил деплой в Kubernetes, позволяя подставлять ключи при развёртывании.
Безопасность
Добавлены современные заголовки безопасности:
- HSTS — принудительное HTTPS.
- CSP — контроль над загружаемыми ресурсами.
- X-Content-Type-Options, X-Frame-Options и другие.
Оптимизация кода и обработка ошибок
- Перешли на всемирное координированное время (UTC) вместо локальной привязки.
- Теперь используется встроенный механизм Argon2, убрана ручная работа с солью и процесс верификации стал проще и правильнее.
- Реализована параллельная проверка загруженных файлов в S3-хранилище. Это ускоряет процесс при загрузке нескольких файлов и снижает время простоя.
Сейчас платформа CADBase метит в нишу открытой среды обмена инженерными данными, которая связывает независимых инженеров, конструкторские бюро и производственные предприятия. Это что-то «крафтовое» и на Rust.
Репозитории и зеркала
Разработка на GitLab — https://gitlab.com/cadbase/
Зеркала
Codeberg — https://codeberg.org/mnnxp/
GitHub — https://github.com/mnnxp/
10.02.22 CADBase — сайт для хранения и обмена чертежами
10.02.23 CADBase — цифровая платформа для обмена 3D-моделями и чертежами
06.11.23 Обновление платформы CADBase для обмена конструкторскими данными
10.02.25 Развитие платформы CADBase за год
19.09.25 CADBase 0.3 — обновление платформы и интеграций
>>> Подробнее о платформе
