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

1000px.jpg

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 — обновление платформы и интеграций

>>> Подробнее о платформе

©  Linux.org.ru