Revit Server Guard
Шлюз перед Autodesk Revit Server. Применяет access-control: пользователи, проекты, разделы. Без RSG любой залогиненный AD-юзер видит всё.
- Триал 90 дней
- Машинная привязка SHA-256
- Поддержка RS 2021—2027
RSG — программный шлюз перед TCP/HTTP-портами Autodesk Revit Server. Закрывает то, что у RS не закрыто из коробки: кто, какие проекты и разделы открывает, читает, редактирует. Машинно-привязанные лицензии, оффлайн-режим, поддержка air-gapped сетей.
Укажите пользователей, срок, версии Revit Server и количество лицензий. Итог пересчитывается сразу по формуле сайта.
Стартует автоматически, не сбрасывается переустановкой. Полный функционал на 3 месяца.
Сейчас в продаже флагман — Revit Server Guard. На той же платформе скоро будут плагины для Autodesk Revit и Autodesk 3ds Max. Все три категории сводятся к одному лицензионному API, одному форуму и одному личному кабинету — это даёт единый учёт лицензий и общую базу знаний.
Шлюз перед Autodesk Revit Server. Применяет access-control: пользователи, проекты, разделы. Без RSG любой залогиненный AD-юзер видит всё.
Расширения для повседневной работы BIM-координатора: пакетная обработка, экспорт, проверка моделей. Та же инфраструктура лицензирования, что и у RSG.
Инструменты для архвиз- и продакшн-команд: автоматизация сцен, оптимизация рендера, batch-обработка. Тот же логин, тот же кабинет.
Этот блок логично стоит сразу после карточки продукта: сначала посетитель понимает, что продаётся, затем видит, как именно выглядит ежедневная работа администратора — права, разделы, шлюзы, бэкапы и аналитика в едином тёмном интерфейсе.
Администратор выбирает раздел Revit Server и сразу видит структуру проекта, привязанные папки и пользователей с доступом — без ручной правки конфигураций.
RSG (Revit Server Guard) — административный модуль для Revit Server 2021–2027. Переносит управление доступом, аудит и обслуживание проектов из набора серверных настроек в единый веб-интерфейс. Ниже — все десять рабочих экранов с разбором того, что делает каждый элемент, как он работает и зачем нужен.
Стартовый экран администратора. Сводная таблица показывает, кто из пользователей какую роль имеет в каком проекте, с раскладкой по разделам/дисциплинам. Здесь же — переключение «таблица / дерево», поиск, групповые операции и обновление данных.
| № | Элемент | Что делает | Как работает | Зачем нужен |
|---|---|---|---|---|
| 1 | Логотип RSG и фирменная область | Показывает продукт и отделяет системную навигацию от рабочей области. | Компонент Sidebar берёт выбранный вариант эмблемы из SidebarLogoContext; вариант хранится в localStorage и меняется на странице «Конфигурация». | Даёт постоянную визуальную привязку к приложению и не смешивает бренд с рабочими таблицами. |
| 2 | Левое меню разделов | Переключает страницы: обзор, пользователи, проекты, роли, разделы, шлюзы, бэкапы, аудит, статистика, конфигурация. | Активный пункт хранится в состоянии App; переход не перезагружает браузер, а меняет React-компонент страницы. | Так администратор быстро переходит между связанными контурами управления RSG. |
| 3 | Верхняя панель пользователя, языка, страны и темы | Показывает текущую учётную запись, язык интерфейса, страновой контур и светлую/тёмную тему. | I18nContext перестраивает подписи из labels.js; CountryScopeContext фильтрует роли/разделы по стране; ThemeContext переключает CSS-переменные. | Глобальные настройки видны всегда и применяются ко всем страницам без потери состояния. |
| 4 | Заголовок и хлебные крошки | Показывают, что открыта страница «Обзор» и это центр управления доступом. | Рендерится в hero-блоке DashboardPage; тексты берутся через t(...), поэтому локализуются. | Снижает риск ошибки: администратор понимает текущий контекст перед массовыми изменениями. |
| 5 | Поиск, показ всех и сортировка | Фильтрует сводку назначений, показывает скрытые/пустые элементы и меняет порядок строк. | search, showAll и sortMode находятся в состоянии страницы; showAll и sortMode дополнительно сохраняются в localStorage. | Позволяет быстро найти нужную связку «пользователь–роль–проект» в большой матрице. |
| 6 | Переключатель представления таблица/дерево | Меняет визуальный способ чтения одной и той же модели назначений. | DashboardPage передаёт данные либо в PivotTable, либо в PivotTree; выбор хранится в localStorage. | Таблица удобна для плотной проверки, дерево — для иерархии и раскрытия групп. |
| 7 | Команды развернуть/свернуть группы | Открывают или закрывают все группы сводной таблицы. | expanded — Set идентификаторов групп; кнопки массово заполняют или очищают это состояние. | Ускоряет аудит: можно увидеть либо только верхний уровень, либо полный состав назначений. |
| 8 | Кнопка обновления | Перечитывает данные назначений и связанных разделов. | reloadAll увеличивает refreshTick; эффекты повторно выполняют fan-out запросы api.getProjectAccess и api.getRoleSectionAccess. | Нужно после изменений в других разделах, чтобы сводка не показывала устаревшие данные. |
| 9 | Панель «Сводная таблица назначений» | Главная рабочая область: показывает связи между пользователями, ролями, проектами и разделами. | Данные собираются из GlobalData и отдельных API-запросов по каждому проекту/роли, затем нормализуются в assignments. | Это единая контрольная точка, где видно кто, где и с какой ролью имеет доступ. |
| 10 | Критерии группировки | Определяют, что является главным измерением, вторичным измерением и редактируемым полем. | mode и secondaryDim задают структуру строк; editableDim вычисляется как третье измерение из project/user/role. | Позволяет читать одну и ту же матрицу с разных управленческих точек зрения. |
| 11 | Строки назначений и inline-редактирование | Раскрывают группы, показывают роли и проекты, позволяют менять роль или удалить назначение. | Изменение вызывает api.updateAccess/grantAccess/revokeAccess; клики по интерактивным элементам защищены от случайного выбора строки. | Администратор меняет доступ прямо в контексте найденной строки, без перехода в отдельные карточки. |
| 12 | Нижняя строка статуса | Показывает количество якорных сущностей и число отображаемых назначений. | Счётчики anchorCount и displayCount пересчитываются после фильтрации и группировки. | Даёт быструю проверку масштаба выборки и помогает понимать, не скрыты ли данные фильтром. |
Справочник людей, имеющих доступ к Revit Server. Здесь видны логин, имя, IP/машина, AD-привязка, статус активности, лицензионный счётчик. Из этого экрана управляется жизненный цикл учётной записи и её назначения по проектам.
| № | Элемент | Что делает | Как работает | Зачем нужен |
|---|---|---|---|---|
| 1 | Левое меню | Открывает справочники, управление, обслуживание и информационные разделы. | Sidebar подсвечивает activePage и вызывает onNavigate без перезагрузки. | Постоянная навигация ускоряет администрирование пользователей и доступов. |
| 2 | Карточки статистики | Показывают всего пользователей, активных, заблокированных, встроенных, администраторов и потребление лицензии. | UsersPage агрегирует список пользователей и статус лицензии через api.getLicenseStatus. | Администратор сразу видит лимиты и состояние базы идентичностей. |
| 3 | Поиск и сегментированные фильтры | Находит пользователей по логину, имени, email и разделяет всех/активных/заблокированных. | Локальное состояние search/statusFilter фильтрует массив users до рендера таблицы. | Снижает время поиска нужного субъекта и риск редактирования не того пользователя. |
| 4 | История подключений | Открывает сведения о последних подключениях/клиентских привязках выбранного пользователя. | Компонент вызывает серверные методы для клиентских привязок и отображает их в модальном/боковом представлении. | Нужна для расследований и контроля фактической активности. |
| 5 | Добавить / удалить | Создаёт новую учётную запись или удаляет выбранную. | createUser/deleteUser вызывают соответствующие API; после операции перезагружается глобальный список. | Позволяет вести реестр пользователей без прямого доступа к базе. |
| 6 | Сохранить / загрузить | Экспортирует или импортирует базу пользователей. | exportUsersDatabase скачивает файл, importUsersDatabase отправляет FormData на сервер. | Используется для резервного переноса и восстановления справочника. |
| 7 | Реестр пользователей | Основная таблица пользователей с логином, именем, IP, телефоном, email и статусом. | Данные приходят через GlobalData/users; строки нормализуют поля разных регистров id/Id/login/Login. | Это центральное место выбора субъекта для дальнейших назначений. |
| 8 | Индикаторы статуса и лицензии | Показывают активен ли пользователь и занимает ли лицензионное место. | Статусы выводятся как badge/иконки; блокировка и активность меняются api.blockUser/unblockUser/activateUser/deactivateUser. | Помогает отличать временно выключенных пользователей от действующих. |
| 9 | Кнопки действий в строке | Редактируют пользователя, меняют пароль встроенного аккаунта, блокируют/активируют или удаляют. | Обработчики открывают Drawer/Modal и затем вызывают updateUser/changeBuiltInPassword или операции статуса. | Действия расположены рядом со строкой, чтобы операция была адресной. |
| 10 | Панель доступа к проекту | После выбора пользователя показывает проекты и права, которые ему выданы. | Запрашивает api.getProjectAccess по проектам и фильтрует записи по selectedUser. | Нужна для проверки где пользователь имеет доступ и для отзыва лишних назначений. |
| 11 | Панель назначения роли | Показывает и редактирует роли пользователя в выбранных проектах. | grantAccess/updateAccess/revokeAccess создают, меняют или удаляют назначение роли. | Разделяет управление личностью и управление проектными полномочиями. |
| 12 | Пустое состояние панелей | Подсказывает, что для правой части нужно выбрать пользователя. | Панели рендерят EmptyState, пока selectedUser отсутствует. | Не даёт ошибочно воспринимать пустой список как отсутствие прав. |
Связь между реальными проектами Revit Server и моделью прав RSG. Каталог RS, импорт проектов в локальную базу, дерево папок, привязки к разделам, назначение пользователей с ролями.
| № | Элемент | Что делает | Как работает | Зачем нужен |
|---|---|---|---|---|
| 1 | Карточки состояния | Суммируют число проектов, серверов RS, неимпортированных проектов и проектов с доступом. | ProjectsPage использует getProjects, getRsInstances и каталог RS для вычисления сводки. | Показывает, насколько синхронизированы локальная база RSG и фактический Revit Server. |
| 2 | Фильтр по имени или пути | Сужает дерево каталога по названию проекта или пути. | Строка поиска фильтрует локально список catalog/projects перед отображением. | Позволяет быстро найти проект в большом каталоге RS. |
| 3 | Команды обновить/создать/переименовать/удалить | Обновляют каталог, создают локальную запись проекта, переименовывают или удаляют проект. | Вызываются api.refreshRsCatalog, createProject, updateProject, deleteProject/forceDeleteProject. | Закрывает базовый жизненный цикл проекта в RSG. |
| 4 | Каталог RS | Показывает проекты, найденные на Revit Server, с группировкой по версиям. | getRsProjects и getRsCatalogStatus читают серверный каталог; импорт создаёт проект в базе RSG. | Нужен, чтобы права выдавались на реальные RS-проекты, а не на произвольные строки. |
| 5 | Группы Revit Server | Разделяют проекты по версиям/инстансам RS. | Список строится из rsInstanceId/versionYear, полученных с сервера. | Так администратор не путает одинаковые имена в разных версиях Revit Server. |
| 6 | Структура выбранного проекта | Показывает дерево папок и моделей внутри проекта. | api.getRsCatalogTree(projectId) получает структуру, затем компонент RsTree рендерит иерархию. | Даёт понимание, какие папки можно связать с разделами и удалить при необходимости. |
| 7 | Кнопки действий структуры | Открывают операции над выбранным элементом: обновление, привязка, удаление элемента. | deleteProjectItem отправляет projectId/path/itemType; другие кнопки меняют состояние выбранной папки. | Позволяет работать не только с проектом целиком, но и с его внутренней структурой. |
| 8 | Привязки разделов | Связывают папки проекта с дисциплинами/разделами каталога. | getProjectSectionBindings читает текущие связи, updateProjectSectionBindings сохраняет массив bindings. | Нужно, чтобы роль с доступом к разделу автоматически попадала на нужные папки проекта. |
| 9 | Кнопка «Назначить» | Добавляет выбранный раздел к папке/части проекта. | При нажатии формируется запись привязки sectionCode + folderPath и отправляется в API. | Снижает ручную настройку прав: доступ строится от разделов, а не от отдельных папок. |
| 10 | Пользователи и роли | Показывает пользователей проекта и их роли. | getProjectAccess(projectId) возвращает назначения; grant/update/revoke меняют связи. | Позволяет сразу проверить, кто имеет проектный доступ. |
| 11 | Выпадающий список роли | Меняет роль пользователя в выбранном проекте. | updateAccess отправляет новый roleId и флаг администратора проекта. | Даёт адресное изменение прав без перехода на страницу ролей. |
| 12 | Нижний статус выбранной цели | Показывает текущий выбранный проект и количество элементов. | Состояние selectedProject используется в подписи footer и в правых панелях. | Помогает не потерять контекст при работе с несколькими панелями. |
Главное место настройки полномочий: каждая строка — роль (например, Специалист АР, ГИП), каждый столбец — раздел/дисциплина. Проставленные галочки определяют, что роль может писать в каких разделах.
| № | Элемент | Что делает | Как работает | Зачем нужен |
|---|---|---|---|---|
| 1 | Карточки статистики ролей | Показывают всего ролей, встроенные, пользовательские, заблокированные и юзеров. | RolesPage рассчитывает значения по списку roles и связанным пользователям. | Позволяет оценить структуру ролевой модели до редактирования. |
| 2 | Фильтр ролей | Ищет роль по названию. | Фильтр применяется к массиву ролей перед построением строк матрицы. | Нужен при большом числе специализированных ролей. |
| 3 | Создать / копировать / редактировать | Открывают формы управления ролью. | createRole, updateRole и копирование используют модальные формы с проверками имени и встроенности. | Позволяет расширять типовую матрицу без ручной правки базы. |
| 4 | Сохранить / сбросить | Сохраняет изменения секционных прав или восстанавливает встроенные роли. | updateRoleSectionAccess отправляет секционные права роли; resetRoles/resetAllRoles/refreshBuiltinRoles возвращают базовый каталог. | Защищает от случайной порчи матрицы и даёт управляемое восстановление. |
| 5 | Матрица ролей | Главная таблица: каждая строка — роль, каждый столбец — раздел/дисциплина. | Роли приходят из GlobalData; секционные права загружаются через api.getRoleSectionAccess. | Это место, где определяется, какие разделы проекта видит каждая роль. |
| 6 | Группы разделов | Объединяют дисциплины по блокам проектной/рабочей документации. | Разметка строится из sectionCatalogData и встроенных групп разделов. | Группировка облегчает чтение широкого набора дисциплин. |
| 7 | Ячейки доступа | Отмечают доступ роли к конкретному разделу. | Клик меняет локальную матрицу roleSectionAccess, затем сохраняется через API. | Позволяет точно собрать полномочия: например, только АР или только ОВ. |
| 8 | Колонка пользователей и действий | Показывает число пользователей роли и кнопки редактирования/блокировки. | getRoleUsers/getRoleImpact проверяют использование роли; delete может требовать replacement role. | Администратор видит последствия изменения роли до удаления или блокировки. |
| 9 | Панель пользователей | После выбора роли показывает, кому она назначена. | Правая панель запрашивает связанных пользователей выбранной роли. | Нужна для оценки влияния перед изменением прав. |
| 10 | Панель проектов | Показывает проекты, где выбранная роль используется. | getRoleImpact возвращает проектные связи и помогает построить список. | Позволяет понимать, какие проекты затронет изменение роли. |
| 11 | Пустое состояние правых панелей | Сообщает, что нужно выбрать роль. | Пока selectedRole пустой, рендерится EmptyState. | Исключает неверное толкование пустой панели как отсутствия связей. |
| 12 | Footer статуса | Фиксирует режим чтения/переключения и наличие выбранной роли. | Компонент выводит служебные счётчики и статус selectedRole. | Полезен при длинной прокрутке матрицы. |
Справочник дисциплин (АР, КР, ОВ, ВК и т.д.) — основа всей модели прав в RSG. Здесь же управляются привязки разделов к реальным папкам проектов Revit Server.
| № | Элемент | Что делает | Как работает | Зачем нужен |
|---|---|---|---|---|
| 1 | Карточки состояния | Показывают количество разделов, собственных разделов, узлов, привязок и пользователей. | SectionsPage собирает статистику из sections registry и assignment/binding API. | Помогает быстро понять заполненность каталога дисциплин. |
| 2 | Поиск по разделам | Фильтрует каталог по коду или названию. | Строка поиска локально сокращает список видимых section entries. | Ускоряет поиск дисциплины в длинной матрице. |
| 3 | Загрузка / сохранение каталога | Импортирует или экспортирует настройки разделов. | Кнопки используют API и JSON/файловый обмен, после операции список обновляется. | Нужно для переноса типового каталога между инсталляциями. |
| 4 | Создать / удалить / сбросить | Добавляет пользовательский раздел, удаляет или восстанавливает встроенный набор. | create/delete/reset/refresh endpoints меняют каталог и синхронизируют встроенные определения. | Позволяет адаптировать RSG под локальные стандарты компании. |
| 5 | Каталог разделов | Основная таблица кодов, имён и связанных пользователей. | Данные строятся из sectionCatalogData и серверного /sections registry. | Это справочник дисциплин, на котором строится вся модель прав. |
| 6 | Коды и иерархия групп | Показывают номера и принадлежность к проектной/рабочей документации. | Группы и коды берутся из встроенного каталога; вложенность визуально разделена строками-заголовками. | Сохраняет связь RSG с привычной структурой проектной документации. |
| 7 | Наименования разделов | Дают человекочитаемое описание кода. | Названия локализуются через getSectionTitle и labels/sectionCatalog. | Администратор видит смысл кода без обращения к отдельной таблице. |
| 8 | Счётчик пользователей | Показывает сколько пользователей затронуто разделом. | getSectionAssignments или рассчитанные связи показывают использование секции. | Помогает понять влияние изменения раздела. |
| 9 | Панель структуры проекта | После выбора раздела показывает папки проекта, которые можно к нему привязать. | getRsCatalogTree и getProjectSectionBindings читают дерево и существующие bindings. | Позволяет связать дисциплину с реальными папками RS. |
| 10 | Панель списка доступа | Показывает пользователей, получающих доступ через выбранный раздел. | getSectionAssignments возвращает пользователей/проекты/роли для секционного доступа. | Даёт контроль последствий: кто фактически получит права. |
| 11 | Пустое состояние | Сообщает, что нужно выбрать раздел. | До выбора раздела right panels показывают EmptyState с подсказкой. | Предотвращает путаницу между пустым результатом и невыбранным контекстом. |
| 12 | Скролл и итоговая строка | Показывает глубину списка и статус матрицы. | Таблица прокручивается внутри панели, footer хранит служебную подпись. | Удобно для длинных каталогов: заголовки и контекст остаются читаемыми. |
Защитный контур RSG — net.tcp proxy, который перехватывает трафик Revit-клиентов перед реальным Revit Server. Здесь настраиваются порты, пути, статусы защиты и запускается/останавливается служба.
| № | Элемент | Что делает | Как работает | Зачем нужен |
|---|---|---|---|---|
| 1 | Карточки состояния | Показывают количество версий RS, состояние proxy, число защищённых и обнаруженных версий. | GatewaysPage получает статус через getProxyGateways и getLicenseStatus. | Администратор сразу видит, работает ли защитный контур. |
| 2 | Маршрут gateway API | Показывает URL, через который админ-панель обращается к шлюзам. | Поле строится из базового host/endpoint; копирование использует значение маршрута. | Нужно для диагностики связи между UI и backend/proxy. |
| 3 | Публичный и внутренний host | Задают внешний адрес и внутреннюю точку, куда перенаправляется трафик. | Поля сохраняются в shared proxy settings через updateProxyGatewayShared/updateProxyGateway. | Разделяет адрес для клиентов и локальный адрес службы. |
| 4 | Порты внешнего, внутреннего и admin канала | Определяют сетевые входы proxy и административного интерфейса. | После редактирования применяются настройки proxy; при необходимости patchRevitServerPort меняет RS-конфигурацию. | Нужно, чтобы proxy не конфликтовал с IIS/Revit Server и мог перехватывать доступ. |
| 5 | Пути исполняемого файла, баз и логов | Показывают откуда запускается proxy и где лежат базы/логи. | Пути задаются установщиком или конфигурацией; UI обычно читает их как справочную информацию. | Помогает диагностировать сервис без ручного поиска файлов на сервере. |
| 6 | Команды обновить/применить/старт/стоп | Управляют чтением настроек и жизненным циклом proxy. | Кнопки вызывают refresh, updateProxyGateway, startProxyGateway, stopProxyGateway/restart. | Администратор может управлять защитой без захода в службы Windows. |
| 7 | Строка состояния proxy | Показывает запущен или остановлен proxy. | Статус приходит с сервера и обновляется после команд управления. | Даёт быстрый контроль: защита может быть настроена, но не запущена. |
| 8 | Телеметрия и лог | Показывает последние строки лога proxy. | getProxyGatewayLog читает последние N строк и выводит их в консольную панель. | Нужна для быстрой диагностики ошибок запуска и маршрутизации. |
| 9 | Матрица защиты по версиям RS | Показывает, для каких версий Revit Server включена защита. | Каждая версия имеет отдельный профиль; updateProxyGateway сохраняет состояние protected/enabled. | Позволяет независимо включать защиту для RS 2021–2027. |
| 10 | Кнопка детекта | Проверяет доступность конкретной версии RS и диагностирует ответы. | Запускается probe/detect endpoint; UI показывает коды ответов host/admin/rest. | Нужно, чтобы проверить корректную маршрутизацию перед включением защиты. |
| 11 | Сохранить / загрузить | Экспортирует и импортирует настройки gateway/proxy. | exportProxyGatewaySettings и importProxyGatewaySettings обмениваются профилями конфигурации. | Удобно для переноса на другой сервер и резервного восстановления. |
| 12 | Footer портов | Показывает ключевые порты текущего профиля. | Строка берёт актуальные значения из state после загрузки настроек. | Служит контрольной сверкой после изменения портов. |
Централизованное расписание резервного копирования всех проектов Revit Server. На одной таблице видно: путь хранения, расписание, дата последнего бэкапа, статус успеха/ошибки.
| № | Элемент | Что делает | Как работает | Зачем нужен |
|---|---|---|---|---|
| 1 | Карточки состояния | Показывают количество проектов, настроенных, включённых, запусков, успешных и неудачных бэкапов. | BackupPage агрегирует getBackupStatus/getBackupHistory по проектам. | Даёт быстрый контроль качества резервного копирования. |
| 2 | Сетка проектов и настроек | Основная таблица всех проектов, для которых можно настроить бэкап. | Проекты берутся из GlobalData; статусы бэкапа подгружаются отдельно по каждому projectId. | Централизует бэкапы всех RS-проектов в одном экране. |
| 3 | Группы Revit Server | Разделяют проекты по версиям/инстансам RS. | Группировка вычисляется по metadata проекта и связанному rsInstance. | Удобно проверять покрытие бэкапами по каждой версии Revit Server. |
| 4 | Путь бэкапа | Показывает каталог назначения резервной копии или отсутствие настройки. | updateBackupSettings сохраняет путь в настройках проекта. | Без пути бэкап нельзя надёжно запустить; это ключевой параметр хранения. |
| 5 | Расписание | Показывает периодичность автоматического резервного копирования. | Настройки расписания отправляются через updateBackupSettings и затем используются фоновым BackupJob. | Снимает зависимость от ручных запусков и уменьшает риск потери данных. |
| 6 | Последний бэкап | Показывает дату/время последнего выполненного копирования. | getBackupHistory возвращает историю; последняя запись выводится в таблице. | Позволяет сразу понять, актуальна ли защита проекта. |
| 7 | Статус | Отражает готовность/ошибку/выполнение резервного копирования. | getBackupStatus возвращает текущее состояние и прогресс. | Администратор видит проблемные проекты без открытия каждой карточки. |
| 8 | Кнопка «Запустить» | Запускает резервное копирование выбранного проекта вручную. | runBackup(projectId, incremental) отправляет команду backend и обновляет статус. | Нужна для срочного копирования перед опасными операциями. |
| 9 | Кнопка настроек | Открывает параметры бэкапа конкретного проекта. | Drawer/Modal заполняется текущими settings и сохраняет их через updateBackupSettings. | Параметры редактируются адресно, рядом с нужным проектом. |
| 10 | Вертикальная прокрутка | Позволяет работать со многими проектами без перегрузки страницы. | Таблица прокручивается внутри панели, шапка и контекст остаются сверху. | Масштабирует интерфейс на большие каталоги проектов. |
| 11 | Навигация обслуживания | Показывает, что экран относится к обслуживанию, а не справочникам. | Группа меню «Обслуживание» содержит «Бэкапы». | Помогает отделить регулярные сервисные операции от настройки прав. |
| 12 | Footer записей | Показывает служебный итог по настройкам/строкам. | Счётчики формируются из отфильтрованного списка и статусов. | Даёт контроль полноты отображаемого списка. |
Полная хроника изменений: кто, когда, что сделал, какой результат. Поддерживает фильтры по пользователю и типу действия, экспорт в PDF/XLSX для отчётов и расследований.
| № | Элемент | Что делает | Как работает | Зачем нужен |
|---|---|---|---|---|
| 1 | Карточки журнала | Показывают всего событий, текущую страницу, отображаемые строки, активный фильтр, запрос и отказы. | AuditPage вызывает api.getAuditLog с query/action/page/pageSize и строит сводные значения. | Позволяет понять масштаб журнала и активность фильтров. |
| 2 | Индикатор live-потока | Показывает, что журнал открыт в режиме актуального наблюдения. | Страница периодически обновляет или повторно запрашивает лог; статус выводится в верхней панели. | Администратор видит новые события без ручного поиска. |
| 3 | Экспорт PDF/XLSX | Выгружает журнал в отчётный формат. | api.exportReport формирует файл на сервере, UI скачивает blob. | Нужен для передачи аудита руководству или вложения в акт расследования. |
| 4 | Поиск по пользователю | Фильтрует события по субъекту. | Значение поля попадает в параметры api.getAuditLog. | Сужает расследование до конкретного пользователя. |
| 5 | Фильтр действия | Показывает все действия или выбранный тип. | Select меняет action filter; запрос к API возвращает только нужные события. | Позволяет отдельно анализировать выдачу доступа, отзыв, создание, обновление и т.п. |
| 6 | Таблица потока событий | Основная область журнала: каждая строка — событие. | Результаты getAuditLog мапятся в строки с колонками time/user/action/type/object/details/ip. | Фиксирует кто, когда и что сделал в системе. |
| 7 | Колонка времени | Показывает дату и время события. | Время форматируется на клиенте из timestamp сервера. | Нужно для восстановления последовательности действий. |
| 8 | Колонка пользователя | Показывает инициатора события. | user/login берётся из AuditLogEntry; при отсутствии показывается технический прочерк. | Даёт ответ на вопрос «кто изменил доступ». |
| 9 | Колонка действия | Человекочитаемая метка события. | ACTION_LABELS и локализация переводят внутренний код AuditAction. | Упрощает чтение журнала без знания серверных enum. |
| 10 | Тип и объект | Показывает тип сущности и идентификатор объекта. | Поля objectType/objectId приходят с backend. | Помогает открыть связанную сущность в проектах, ролях или пользователях. |
| 11 | Детали | Содержит дополнительные параметры события. | Строка details формируется сервером. | Позволяет понять, какие именно параметры были изменены. |
| 12 | Колонка IP | Показывает адрес клиента или прочерк. | IP берётся из записи аудита, если доступен. | Нужна для технического расследования и выявления внешних подключений. |
Графики и сводки по активности: проекты, пользователи, роли, типы действий за выбранный период. Экспорт PDF/XLSX, отдельная выгрузка активности моделей по проекту.
| № | Элемент | Что делает | Как работает | Зачем нужен |
|---|---|---|---|---|
| 1 | Hero-метрики | Показывают период, число проектов, пользователей, ролей, типов действий и событий. | StatsPage параллельно вызывает getProjectStats, getUserStats, getRoleStats и getActionStats. | Даёт быстрый обзор активности за выбранный период. |
| 2 | Переключатель периода | Меняет окно анализа: 7, 14 или 30 дней. | period хранится в состоянии; from вычисляется как текущая дата минус periodDays. | Позволяет сравнивать короткий и более длинный период активности. |
| 3 | Экспорт PDF/XLSX | Скачивает сводный отчёт статистики. | handleExport вызывает api.exportReport("statistics", format, from). | Используется для регулярных управленческих отчётов. |
| 4 | Выбор проекта для Excel | Задаёт проект, по которому нужно выгрузить активность моделей. | selectedProjectId заполняется из GlobalData.projects; значение передаётся в exportProjectModelActivity. | Позволяет получать детальный отчёт по моделям конкретного проекта. |
| 5 | Кнопка «Выгрузить Excel» | Создаёт Excel с моделями выбранного проекта и последними изменениями. | api.exportProjectModelActivity(projectId) возвращает blob, который скачивается как .xlsx. | Нужно для BIM-администраторов при анализе файловой активности. |
| 6 | График по проектам | Показывает количество действий по проектам. | Recharts строит bar chart на данных projectStats. | Позволяет быстро увидеть самые активные проекты. |
| 7 | Диаграмма по ролям | Показывает распределение активности или назначений по ролям. | roleStats выводится в PieChart/Donut с цветами из PIE_COLORS. | Помогает понять какие роли реально используются. |
| 8 | Блок активных пользователей | Показывает лидеров активности либо пустое состояние. | userStats сортируется по count; если данных нет, рендерится EmptyState. | Делает видимой реальную вовлечённость пользователей. |
| 9 | Распределение действий | Показывает доли разных типов событий. | actionStats преобразуется в donut chart; подписи берутся из ACTION_LABELS. | Указывает, какие операции преобладают: выдача, отзыв, обновление и т.д. |
| 10 | Легенда графика | Расшифровывает цвета типов действий. | Recharts Legend получает список action labels и цвета. | Позволяет читать диаграмму без наведения курсора. |
| 11 | Footer статистики | Показывает период и итог событий. | Нижняя строка использует totalActions и выбранный период. | Даёт проверочный итог для отчёта. |
| 12 | Навигация информационного блока | Показывает, что статистика относится к разделу информации. | Пункт «Статистика» активен в Sidebar. | Отделяет аналитику от операций изменения данных. |
Финальный экран настройки: статус лицензии, пути баз данных, цветовая тема, эмблема, пароль встроенного администратора. Точка входа в служебные параметры RSG.
| № | Элемент | Что делает | Как работает | Зачем нужен |
|---|---|---|---|---|
| 1 | Карточки состояния системы | Показывают статус лицензии, базы, ролей, пользователей, проектов и режима доступа. | ConfigPage вызывает getLicenseStatus/getDatabaseInfo и использует GlobalData. | Даёт административную сводку перед изменением настроек. |
| 2 | Версия и время | Показывают версию RSG и текущее время/дату сборки интерфейса. | Значения рендерятся в верхней части конфигурации рядом со статус-картами. | Нужно для поддержки: сразу видно, какую версию смотрит пользователь. |
| 3 | Информация о системе | Показывает числовые параметры: роли, пользователи, проекты и подключение Revit Server. | Данные берутся из global state и статусов backend. | Помогает проверить, что админ-панель связана с сервером и базой. |
| 4 | Пути и каталоги | Показывает расположение базы RSG, proxy database и каталогов логов. | Пути читаются из серверной конфигурации; редактирование через UI ограничено, чтобы не нарушить установку. | Администратор видит техническую конфигурацию без доступа к серверному файлу appsettings. |
| 5 | Кнопка обновления путей | Перечитывает системные сведения. | Вызывает backend API для обновления database/config info и перерисовывает панель. | Нужна после установки, миграции или ручного изменения конфигурации. |
| 6 | Выбор эмблемы боковой панели | Позволяет выбрать один из вариантов логотипа. | Выбранный variant сохраняется в localStorage rsg-sidebar-logo и передаётся через SidebarLogoContext. | Даёт настройку внешнего вида без перекомпиляции приложения. |
| 7 | Панель цвета и темы | Настраивает акцент, фон, заголовки, масштаб шрифта и тени панелей. | CSS-переменные строятся из выбранных hex и применяются на root; значения хранятся в localStorage. | Позволяет адаптировать интерфейс под рабочее место и презентационный стиль. |
| 8 | Панель лицензии RSG | Показывает активность лицензии, срок и данные заказчика. | getLicenseStatus читает статус, installLicense/removeLicense/activation endpoints меняют лицензию. | Управляет правом использования системы и лимитами. |
| 9 | Параметры лицензии | Выбирают срок, лимит пользователей, количество лицензий и версии Revit Server. | UI мапит duration/user tier/version flags в модель LicenseRequest/LicenseStatus. | Позволяет сформировать корректную лицензионную заявку. |
| 10 | Стоимость и действия лицензии | Показывает расчёт стоимости и кнопки новая/продлить/активировать. | mapDatesToDurationCode, mapMaxUsersToTier и серверный license service формируют запрос/установку. | Связывает коммерческие параметры с технической активацией. |
| 11 | Пароль учётной записи | Меняет пароль текущей встроенной учётной записи. | changeBuiltInPassword отправляет текущий и новый пароль; пустой новый пароль может удалить пароль. | Даёт администратору управление доступом к самой панели. |
RSG читает БД Revit Server в read-only, перехватывает TCP/HTTP-трафик и накладывает права на уровне проектов и разделов. Лицензия — подписанный envelope, привязка к машине, публичный ключ зашит в клиент: подменить лицензию или поднять «свой сайт» под тем же URL невозможно без приватного ключа.
SHA-256 от MACHINE_NAME | MAC1 | MAC2 | … — 64 hex-символа. Один ключ — одна машина по умолчанию, или N машин, если так заказано.
.rsgreq / .rsglicЗакрытый контур, нет исходящего интернета — не проблема. Покупатель скачивает запрос лицензии из админ-панели, загружает в кабинет, получает подписанный файл.
Клиенту достаточно исходящего HTTPS на ваш домен, никаких входящих коннектов с нашей стороны. Файрвол на стороне клиента остаётся как был.
Префикс ключа активации, fingerprint, IP, user-agent, HTTP-статус — на стороне сайта; кто, что и когда открывал в RS — на стороне клиента. Аномалии видно сразу.
RSG ставится рядом с существующим Revit Server, не ломая текущую конфигурацию. Триал стартует автоматически на первом запуске. Когда время покупать — ключ активации приходит на email, активация — в админ-панели в один клик.
Windows-сервис на .NET 8 + TCP-прокси + админ-панель. Существующий Revit Server остаётся как есть.
Стартует автоматически, не сбрасывается переустановкой. Полный функционал на 3 месяца.
В админ-панели → «Активировать через интернет». Сайт подписывает лицензию ECDSA P-256 и привязывает к machine fingerprint.
Пользователи, группы, проекты, разделы, разрешённые действия. Аудит каждого открытия модели.
Когда админ нажимает «Активировать через интернет», RSG.Server отправляет короткий JSON на наш License API. Сайт собирает payload, подписывает приватным ключом и возвращает envelope. Клиент проверяет подпись зашитым публичным ключом.
Темы по RSG, по плагинам Revit и по плагинам 3ds Max — в одном месте, под общим аккаунтом. Открытое чтение для всех, создание тем — для зарегистрированных, приватные разделы — для покупателей с активной лицензией.
Чтобы лицензионный статус, заказы и темы жили под одним аккаунтом. На форуме видно, кто из участников — покупатель с активной лицензией, кто триальщик, а кто гость. Это сильно меняет качество ответов в технических ветках. И SSO одно — между сайтом, кабинетом и форумом.
Перейти к форуму →Если ответа здесь нет — пишите в форум или на support@. Мы отвечаем в рабочие дни в течение суток, по приоритетной поддержке — в пределах SLA.
RSG переходит в режим bypass — защита отключается, Revit Server продолжает работать как обычно. Это сделано специально, чтобы клиент не упирался в неработающий продакшн в момент истечения. После установки лицензии RSG возвращается в режим Full.
Да. Триал стартует автоматически без обращения к нашему серверу. Активация лицензии — через файлы .rsgreq (запрос лицензии скачивается из админ-панели) и .rsglic (подписанная лицензия загружается обратно). Сайт никогда не стучится в инфраструктуру клиента.
Machine fingerprint считается из имени машины и MAC-адресов сетевых карт. Если хост и MAC сохранились — fingerprint тот же, лицензия валидна. Если железо менялось — нужна повторная активация по тому же ключу (по умолчанию один ключ — одна машина, но это настраивается параметром quantity).
Да. Для российских юрлиц — счёт в рублях, акт, УПД, поддержка ИНН и КПП. Поле companyUid попадает в payload лицензии, чтобы в админке клиента было видно, на какую организацию выпущен ключ. Для международных — Stripe-инвойс на компанию.
Да. Лицензия может быть выпущена либо на конкретный массив версий [2022, 2023, 2025], либо на все версии (unlimitedRsVersions = true). RSG детектирует установленные на хосте версии RS автоматически и предлагает выбрать тариф под нужное количество версий.
Пока нет, в разработке первые релизы. Подпишитесь на блог или дождитесь анонса в форуме — тем, кто уже купил RSG, дадим скидку на старте продаж плагинов. Технически плагины используют тот же лицензионный API и тот же кабинет — мы строим всё на одной платформе, чтобы не плодить лишнего.
Скачайте установщик, поставьте на тот же хост, что и RS, дайте ему полчаса работы. Если права доступа в вашей команде имеют значение — за вечер увидите, что RSG делает то, что Revit Server из коробки не делает.