API лицензий · 99,98%
+995 574 856 856 [email protected] Грузия, Кутаиси
Документация

Руководство администратора RSG

Описание интерфейса, решения и инструкции по внедрению. Полное руководство по установке, настройке и эксплуатации RSG Admin Panel — от состава решения и сетевых контуров до запуска прокси и регламентов резервного копирования.

Revit Server 2021–2027.NET 8React + Vite10 экранов с аннотациями

Панель администратора RSG

Описание интерфейса, решения и инструкции по внедрению

Обзор решения RSG

RSG (Revit Server Guard) — административный модуль для Revit Server 2021/2022/2023/2024/2025/2026/2027. Его назначение — перенести управление доступом, аудит, обслуживание проектов и контроль шлюзов RS из набора разрозненных серверных настроек в единую веб-панель администратора.

Решение закрывает главный организационный риск Revit Server: без отдельного управляющего контура права на уровне проектов, ролей и разделов фактически нельзя назначать и проверять централизованно. RSG вводит формальную модель: пользователь → проект → роль → раздел/папка, а прокси-контур превращает эту модель в фактическое разрешение или запрет операций Revit-клиента.

ключевые задачи

  • создать единый реестр пользователей, проектов, ролей и разделов;
  • связать реальные папки Revit Server с дисциплинами/разделами документации;
  • назначать проектный доступ и секционные права без ручного редактирования конфигурационных файлов;
  • защищать Revit Server через прокси, который пропускает только разрешённые операции;
  • видеть аудит действий: кто, когда и что изменил или попытался выполнить;
  • централизованно настраивать резервное копирование и получать отчёты по активности;
  • поддерживать несколько версий Revit Server и разные контуры/страны в единой панели.

компоненты решения

Компонент

Роль

Что даёт

Панель администратора RSG

React/Vite-интерфейс администратора.

Навигация, таблицы, матрицы ролей, формы, локализация, тема, отчёты.

RSG.API

.NET 8 backend и Windows Service.

REST API, авторизация админ-панели, SQLite, аудит, отчёты, бэкапы, управление прокси, работа с каталогом RS.

RSG.Core

Общие сущности и контракты.

Пользователи, проекты, роли, разделы, права, лицензирование, DTO и интерфейсы.

RSG.Infrastructure

Реализация сервисов и доступа к данным.

Компоненты: EF Core/SQLite, BackupService, ProjectService, RoleService, RevitProxyManagerService и LicenseService.

RSG.HttpModule

Middleware на стороне RSG.API.

Проверка доступа на REST-запросах, фильтрация выдачи каталогов, HTTP gateway/маршрутизация.

RSG.NetTcpProxy

.NET Framework 4.8.1 net.tcp proxy.

Перехват WCF/net.tcp трафика Revit Server, извлечение пользователя/машины/IP, блокировка или пропуск операций.

База SQLite

rsg.db и rsg-proxy.db.

Основная модель прав, настройки, лицензия, журнал, служебные данные прокси.

Как RSG решает свои задачи

1. Инвентаризация:RSG читает/обновляет каталог Revit Server, группирует проекты по версиям RS и создаёт локальные записи проектов.

2. Нормализация структуры:папки проекта связываются с разделами: например, АР/КР/ОВ/ВК становятся управляемыми дисциплинами, а не просто папками.

3. Ролевая модель:роль получает секционные права. Пользователю назначается роль в проекте; проектный администратор получает расширенные права.

4. Применение политики:HTTP middleware и net.tcp прокси проверяют пользователя, проект, путь и тип операции. Чтение/запись принимаются или отклоняются по модели RSG.

5. Аудит и отчётность:действия и отказы пишутся в журнал, статистика и экспорт помогают доказательно разбирать изменения доступа и активность.

6. Обслуживание:бэкапы, импорт/экспорт настроек, диагностика прокси и страница шлюзов уменьшают зависимость от ручной работы на сервере.

Логика доступа

Уровень

Правило

Практический смысл

Пользователь

пользователь ищется по Revit-логину, AD-идентичности, машине и IP/доверенным привязкам.

Один логин должен соответствовать понятному субъекту доступа.

проект

Запись UserProjectAccess даёт видимость проекта; роль «Нет» запрещает доступ.

пользователь видит только назначенные проекты.

Корень проекта

CanWriteProject разрешает запись в корне проекта, но не автоматически внутри разделов.

Можно разрешить служебные операции в корне без полного доступа ко всем дисциплинам.

Раздел/папка

SectionFolderBinding связывает папку с кодом раздела; RoleSectionAccess.CanWrite разрешает запись.

права выдаются на дисциплины, а не на произвольные ручные исключения.

Администратор проекта

IsProjectAdmin или встроенные админ-роли дают полный доступ к проекту.

Нужно для BIM-администратора/ответственного за проект.

RSG Admin

Администратор системы проходит проверку с полными правами управления.

Роль для обслуживания самого RSG и критических настроек.

Описание функциональности

Единая модель доступа:пользователи, проекты, роли и разделы связаны в единой модели. Это лучше, чем хранить логику доступа в памяти отдельных администраторов или в разрозненных файлах.

Секционный контроль:RSG учитывает не только проект целиком, но и папки/разделы внутри проекта. Это особенно важно для BIM-процессов, где разные исполнители отвечают за разные дисциплины.

Прокси как enforcement-слой:панель не просто показывает таблицы, а может физически блокировать операции Revit Server через прокси-контур.

Аудит:журнал фиксирует изменения и отказы, что снижает риск нерасследуемых инцидентов.

Масштабируемость интерфейса:таблицы, фильтры, сортировки, дерево, карточки состояния и экспорт позволяют работать с большим числом проектов/пользователей.

Мультиверсионность:профили прокси и инстансы RS рассчитаны на Revit Server 2021–2027.

Сервисная эксплуатация:RSG.API устанавливается как Windows Service, использует ProgramData для runtime-данных, пишет логи и управляет firewall для HTTP-порта панели.

Локализация и тема:интерфейс уже содержит i18n-контур, переключение языка, страны и темы без перезапуска приложения.

Руководство по установке, запуску и настройке

Ниже приведён практический порядок действий, чтобы RSG работал как управляющая панель и как защитный прокси-контур для Revit Server.

1. предварительные условия

  • Windows Server с установленным Revit Server нужных версий.
  • .NET 8 Runtime/Hosting Bundle для RSG.API, если публикация не self-contained.
  • .NET Framework 4.8.1 для RSG.NetTcpProxy.
  • Node.js/npm нужны только на машине сборки фронтенда, а не обязательно на боевом сервере.
  • права локального администратора для установки Windows Service, открытия firewall и изменения конфигов Revit Server.
  • Папки ProgramData/RSG, backup-каталоги и логи должны быть доступны учётной записи службы.
  • DNS-имя или статический IP сервера, которые будут использовать BIM-клиенты.

2. Начальная настройка в интерфейсе

  1. Откройте «Конфигурацию» и проверьте статус базы, лицензии, путей и версии.
  2. Установите или активируйте лицензию RSG.
  3. Проверьте/создайте пользователей, назначьте активность, роли, IP/машину или AD-идентичность.
  4. Откройте «Проекты», выполните обновление каталога RS и импортируйте нужные проекты.
  5. Откройте «Разделы» и настройте каталог дисциплин, если он отличается от встроенного.
  6. Свяжите папки проектов с разделами через привязки SectionFolderBinding.
  7. Откройте «Роли» и настройте матрицу прав по разделам.
  8. На странице «Обзор» проверьте итоговую матрицу назначений.

Назначение портов и сетевого контура

Контур

По умолчанию

Где задаётся

Кто должен иметь доступ

Комментарий

RSG Admin Panel / API

TCP 5080 HTTP

appsettings: RSG:Http:Port или --install --http-port

Только администраторы RSG / BIM-админы

Служба RSG.API слушает этот порт. Установщик открывает firewall-правило «RSG Admin Panel».

Dev UI Vite

TCP 5173

RSG.AdminPanel/vite.config.js

Только разработчик

Нужно для разработки. В боевой эксплуатации UI обычно собран в RSG.API/wwwroot.

Revit Server Admin HTTP

TCP 80

Общие настройки прокси: AdminPort; IIS/RS

RSG.API и администраторы

Используется для RevitServerAdmin{year}/ и диагностики AdminRESTService.

Публичный net.tcp прокси

TCP 808

Общие настройки прокси: ListenPort

Клиенты Revit

Публичная точка входа прокси. Клиенты должны идти сюда, а не напрямую в Revit Server.

Revit Server target net.tcp

TCP 8086

Общие настройки прокси: TargetPort; конфиг RS

Только прокси и локальный сервер

Внутренняя конечная точка реального RS. Желательно закрыть прямой доступ от пользователей.

Decision API / служебный контур

http://127.0.0.1:5080/api/proxy-gateways/decision

Строится из RSG:Http:Port или RSG:NetTcpProxy:DecisionApiUrl

Локально / служебно

В коде RSG.API есть endpoint decision; текущий NetTcpProxy также читает rsg.db и rsg-proxy.db напрямую, поэтому DB-пути критичны.

Основная БД

C:\ProgramData\RSG\rsg.db

RSG:DatabasePath

RSG.API, proxy read-only

Хранить пользователей, проекты, роли, разделы, лицензию, флаги защиты.

БД прокси

C:\ProgramData\RSG\rsg-proxy.db

RSG:NetTcpProxy:DatabasePath / ProxyDatabasePath

RSG.API и прокси

Хранить параметры listen/target и служебные события прокси.

Логи RSG.API

C:\ProgramData\RSG\Logs\rsg-*.log

Serilog в appsettings

Администраторы

Диагностика backend и Windows Service.

Логи прокси

C:\ProgramData\RSG\Logs\Proxy

RSG:NetTcpProxy:LogsPath / ProxyLogsPath

Администраторы

Диагностика запуска, маршрутизации, неизвестных пользователей и отказов.

Правила выбора портов

  • Не используйте 0–1023 для RSG:Http:Port; код откатывает такие значения на 5080.
  • Не назначайте один и тот же порт RSG.API, proxy listen и реальному Revit Server.
  • PublicHost не должен быть localhost/127.0.0.1, если клиенты подключаются с других машин.
  • ListenPort прокси должен быть открыт от рабочих станций Revit-клиентов.
  • TargetPort Revit Server должен быть доступен прокси, но не должен быть удобным обходным маршрутом для обычных пользователей.
  • Если меняется TargetPort, проверьте правку конфигов RS и перезапуск связанных служб Revit Server/IIS согласно локальной схеме.
  • Если используется HTTPS/TLS для админ-панели, поставьте reverse proxy/IIS перед RSG.API и ограничьте прямой HTTP-доступ на 5080.

Зачем нужен прокси и как его запустить

Прокси нужен потому, что Revit Server обслуживает рабочие операции Revit-клиентов не только через административный REST, но и через WCF/net.tcp транспорт. Админ-панель может хранить модель прав, но сама по себе не перехватывает трафик Revit. Прокси становится промежуточным слоем между клиентом и реальным Revit Server: он принимает net.tcp соединение, определяет пользователя/машину/IP и путь операции, сверяет это с моделью RSG и только после этого пропускает запрос дальше.

Что делает прокси

  • слушает публичный net.tcp порт, обычно 808;
  • перенаправляет разрешённый трафик на реальный Revit Server target host/port, обычно 127.0.0.1:8086;
  • извлекает идентичность из NBFX/SOAP/WCF сообщений и сокета клиента;
  • проверяет флаг защиты версии RS: Protected_2021… Protected_2027;
  • разрешает видимость корневых папок проектов по назначениям пользователя;
  • разрешает запись только в проектный корень, разделы или весь проект согласно роли;
  • логирует неизвестных пользователей и спорные попытки доступа;
  • фильтрует корневую выдачу Revit Server, чтобы пользователь не получал лишние проекты.

Пошаговый запуск прокси

  1. Скопируйте RSG.NetTcpProxy.exe и зависимости в каталог, указанный в RSG:NetTcpProxy:BinaryPath, например C:\Program Files\RSG\NetTcpProxy\. Откройте RSG Admin Panel → «Шлюзы RS».
  2. В общих настройках задайте PublicHost: DNS/IP, которые будут использовать Revit-клиенты. Не указывайте localhost, если клиенты не на этом же сервере.
  3. Задайте ListenPort, например 808. Это порт входа прокси для клиентов.
  4. Задайте TargetHost: реальный хост Revit Server. Если прокси установлен на том же сервере, обычно 127.0.0.1.
  5. Задайте TargetPort: внутренний net.tcp порт Revit Server, обычно 8086.
  6. Задайте AdminPort: HTTP-порт административного сайта Revit Server, обычно 80.
  7. Проверьте пути ProxyExecutablePath, ProxyDatabasePath, RsgDatabasePath и ProxyLogsPath.
  8. Нажмите «Применить». RSG запишет общие настройки, конфиг прокси и актуальную access-policy.
  9. Для нужных версий RS включите профиль и AuthorizationEnabled. Версии, не входящие в лицензию, должны оставаться выключенными.
  10. Нажмите «Детект» для каждой версии. Нормальная диагностика должна видеть Admin UI, serverProperties и содержимое.
  11. Нажмите «Start»/«Запустить». После запуска проверьте статус процесса, pid, доступность ListenPort и хвост лога.
  12. Перенастройте клиентские подключения Revit Server на PublicHost:ListenPort.
  13. Закройте прямой доступ пользователей к TargetPort, иначе прокси можно обойти.
  14. Проверить тестовым пользователем: нет назначения → отказ, есть проектная роль → видимость проекта, есть секционное право → запись в нужном разделе.

Что создаёт RSG при запуске прокси

Файл/параметр

Назначение

RSG.NetTcpProxy.exe.config

Runtime-конфиг прокси: ListenAddress, PublicListenAddress, TargetAddress, пути БД/логов, параметры timeout/cache.

access-policy.json

Снимок политики для версий RS и пользователей: protectionEnabled, allowedProjects, writeFolders.

rsg-proxy.db

Служебные настройки прокси и журнал нераспознанных/служебных событий.

RSG.NetTcpProxy.log

Подробный лог маршрутизации, ошибок порта, SQLite, режима bypass/protected и отказов.

GlobalSettings Protected_YYYY

Флаг включения защиты для версии Revit Server.

Важная логика безопасности прокси

  • Если версия RS не защищена, прокси может работать в bypass-режиме: трафик идёт дальше, но защита фактически не применяется.
  • Если лицензия не покрывает версию RS, policy-файл не должен включать protectionEnabled для этой версии.
  • Если прокси не может открыть rsg.db, он может перейти в режим допуска/обхода, поэтому доступность и права на базу критичны.
  • Если у пользователя нет доверенной привязки логин+машина+IP, он может попасть в список неизвестных запросов. После проверки администратором такую привязку можно принять.
  • Нельзя оставлять внутренний target-порт RS открытым для пользователей, иначе они смогут обращаться к Revit Server, минуя RSG.

Регламент настройки доступа

Шаг

Действие

Проверка результата

1

Создать/импортировать пользователей.

В «Пользователях» видны активные записи, IP/машина/AD заполнены для реальных клиентов.

2

Обновить каталог RS.

В «Проектах» видны инстансы Revit Server и реальные папки.

3

Импортировать проекты в RSG.

проект получил RSFolderPath и отображается в списке.

4

Связать папки с разделами.

В «Разделах»/«Проектах» есть привязки FolderPath → SectionCode.

5

Настроить роли.

В матрице ролей отмечен CanWrite для нужных разделов.

6

Назначить пользователю роль в проекте.

В «Обзоре» появилась связка пользователь-проект-роль.

7

Обновить/запустить прокси.

access-policy.json актуален, прокси запущен, ListenPort доступен.

8

Протестировать Revit-клиентом.

Разрешённые операции проходят, запрещённые возвращают отказ и попадают в аудит/лог.

Процедура резервного копирования

  • Задайте BackupBasePath в appsettings или в настройках проекта.
  • Для каждого проекта укажите путь бэкапа и расписание на странице «Бэкапы».
  • Проверьте, что служба RSG.API имеет права записи в каталог бэкапа.
  • Запустите ручной бэкап перед первым включением расписания.
  • Проверьте историю: успешный статус, время, путь и отсутствие ошибок.
  • Отдельно копируйте C:\ProgramData\RSG\rsg.db, rsg-proxy.db и proxy-gateways.json как конфигурационную часть RSG.

Диагностика и типичные проблемы

Симптом

Вероятная причина

Что проверить

Панель не открывается

Служба не запущена, порт занят, firewall.

Команды и проверки: sc query RSG.API, netstat -ano, правило брандмауэра «RSG Admin Panel», RSG:Http:Port.

Каталог RS не читается

Неверный host/admin port/API path, или RS недоступен.

Автоопределение, URL RevitServerAdminRESTService{year}/AdminRESTService.svc/serverProperties.

Прокси не стартует

Не найден exe, занят ListenPort, нет прав на БД/лог.

Пути в «Шлюзы RS», RSG.NetTcpProxy.log, netstat, права ProgramData\RSG.

клиенты не подключаются

PublicHost/ListenPort недоступны, или клиенты идут на старый адрес.

DNS/IP, firewall на ListenPort, настройки клиента Revit Server.

Защита не срабатывает

Версия не защищена, прокси в bypass, клиенты обходят target-порт.

Protected_YYYY, AuthorizationEnabled, статус прокси, firewall на TargetPort.

пользователь не распознан

Нет привязки логин/машина/IP, или Revit не передал заголовки.

История подключений, неизвестные запросы, Adopt/привязка IP/машины.

Отказ при записи в раздел

Нет SectionFolderBinding, или у роли нет CanWrite.

Привязки разделов, матрица ролей, назначение пользователя в проекте.

Отчёты/экспорт не формируются

Ошибка backend или прав на папку временных файлов.

Логи RSG.API, права службы, состояние базы.

Рекомендации по эксплуатации в production

  • Сразу назначить пароль встроенному Administrator и ограничить доступ к панели только администраторам.
  • Использовать отдельное DNS-имя для RSG Admin Panel и отдельное DNS-имя/порт для Revit-прокси.
  • Закрыть прямой пользовательский доступ к внутреннему target-порту Revit Server.
  • Хранить rsg.db, rsg-proxy.db, proxy-gateways.json и appsettings.json в регулярном резервном копировании.
  • Включить аудит и регулярно экспортировать отчёты для контроля доступа.
  • Перед изменением портов делать скрин/экспорт текущих настроек прокси.
  • Для HTTPS поставить reverse proxy/IIS с сертификатом и ограничить прямой доступ к HTTP-порту 5080.
  • Перед обновлением версии RSG остановить прокси, сделать копии ProgramData\RSG, обновить файлы, запустить службу и выполнить детект версий RS.

Иллюстрация 1. Обзор — сводная таблица назначений доступа

Аннотированная версия: персональные значения в таблицах/полях замаскированы; выноски вынесены за пределы интерфейса.

Подробная легенда

№

Элемент

Что делает

Как работает

Зачем нужен

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 пересчитываются после фильтрации и группировки.

Даёт быструю проверку масштаба выборки и помогает понимать, не скрыты ли данные фильтром.

Приватность: на изображении скрыты имена пользователей, названия проектов и/или чувствительные значения, если они присутствовали на скриншоте.

Иллюстрация 2. Пользователи — реестр идентичностей и назначения

Аннотированная версия: персональные значения в таблицах/полях замаскированы; выноски вынесены за пределы интерфейса.

Подробная легенда

№

Элемент

Что делает

Как работает

Зачем нужен

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 отсутствует.

Не даёт ошибочно воспринимать пустой список как отсутствие прав.

Приватность: на изображении скрыты имена пользователей, названия проектов и/или чувствительные значения, если они присутствовали на скриншоте.

Иллюстрация 3. Проекты — каталог 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 и в правых панелях.

Помогает не потерять контекст при работе с несколькими панелями.

Приватность: на изображении скрыты имена пользователей, названия проектов и/или чувствительные значения, если они присутствовали на скриншоте.

Иллюстрация 4. Роли — матрица прав по разделам

Аннотированная версия: персональные значения в таблицах/полях замаскированы; выноски вынесены за пределы интерфейса.

Подробная легенда

№

Элемент

Что делает

Как работает

Зачем нужен

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.

Полезен при длинной прокрутке матрицы.

Приватность: на изображении скрыты имена пользователей, названия проектов и/или чувствительные значения, если они присутствовали на скриншоте.

Иллюстрация 5. Разделы — каталог дисциплин и привязки

Аннотированная версия: персональные значения в таблицах/полях замаскированы; выноски вынесены за пределы интерфейса.

Подробная легенда

№

Элемент

Что делает

Как работает

Зачем нужен

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 хранит служебную подпись.

Удобно для длинных каталогов: заголовки и контекст остаются читаемыми.

Приватность: на изображении скрыты имена пользователей, названия проектов и/или чувствительные значения, если они присутствовали на скриншоте.

Иллюстрация 6. Шлюзы RS — управление прокси и защитой

Аннотированная версия: персональные значения в таблицах/полях замаскированы; выноски вынесены за пределы интерфейса.

Подробная легенда

№

Элемент

Что делает

Как работает

Зачем нужен

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 после загрузки настроек.

Служит контрольной сверкой после изменения портов.

Приватность: на изображении скрыты имена пользователей, названия проектов и/или чувствительные значения, если они присутствовали на скриншоте.

Иллюстрация 7. Бэкапы — сетка резервного копирования проектов

Аннотированная версия: персональные значения в таблицах/полях замаскированы; выноски вынесены за пределы интерфейса.

Подробная легенда

№

Элемент

Что делает

Как работает

Зачем нужен

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 записей

Показывает служебный итог по настройкам/строкам.

Счётчики формируются из отфильтрованного списка и статусов.

Даёт контроль полноты отображаемого списка.

Приватность: на изображении скрыты имена пользователей, названия проектов и/или чувствительные значения, если они присутствовали на скриншоте.

Иллюстрация 8. Журнал аудита — поток событий и экспорт

Аннотированная версия: персональные значения в таблицах/полях замаскированы; выноски вынесены за пределы интерфейса.

Подробная легенда

№

Элемент

Что делает

Как работает

Зачем нужен

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

Детали

Содержит дополнительные параметры события.

Строка деталей формируется сервером; для чувствительных значений в документе применена маскировка.

Позволяет понять, какие именно параметры были изменены.

12

Колонка IP

Показывает адрес клиента или прочерк.

IP берётся из записи аудита, если доступен.

Нужна для технического расследования и выявления внешних подключений.

Приватность: на изображении скрыты имена пользователей, названия проектов и/или чувствительные значения, если они присутствовали на скриншоте.

Иллюстрация 9. Статистика — аналитика активности и отчёты

Аннотированная версия: персональные значения в таблицах/полях замаскированы; выноски вынесены за пределы интерфейса.

Подробная легенда

№

Элемент

Что делает

Как работает

Зачем нужен

1

Hero-метрики

Показывают период, число проектов, пользователей, ролей, типов действий и событий.

StatsPage параллельно вызывает getProjectStats, getUserStats, getRoleStats и getActionStats.

Даёт быстрый обзор активности за выбранный период.

2

Переключатель периода

Меняет окно анализа: 7, 14 или 3 месяца.

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.

Отделяет аналитику от операций изменения данных.

Приватность: на изображении скрыты имена пользователей, названия проектов и/или чувствительные значения, если они присутствовали на скриншоте.

Иллюстрация 10. Конфигурация — системные настройки, лицензия и внешний вид

Аннотированная версия: персональные значения в таблицах/полях замаскированы; выноски вынесены за пределы интерфейса.

Подробная легенда

№

Элемент

Что делает

Как работает

Зачем нужен

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 отправляет текущий и новый пароль; пустой новый пароль может удалить пароль.

Даёт администратору управление доступом к самой панели.

12

кнопки сохранения пароля

Сохраняют новый пароль или удаляют существующий.

Обработчик валидирует совпадение полей и вызывает API смены пароля.

Предотвращает случайное расхождение пароля и подтверждения.

Хотите изучить вторую часть документации?

Перейти к комплексному анализу →