Конструктор рабочих столов
Конструктор рабочих столов (КРС) позволяет создавать пользовательские рабочие столы (дашборды), добавлять виджеты и размещать их на экране дашборда.
Дашборды отбирают данные по заданному запросу из системы-источника и визуализируют их в интерфейсе при помощи настроенных виджетов и фильтров.
Настройка модуля осуществляется в интерфейсе VK GRC в разделе Настройки → Настройки КРС.
Информация в разделе представлена в следующих вкладках:
- Источники — перечень источников данных.
- Поля ввода — настройки полей ввода, используемых в фильтрах.
- Фильтры — перечень фильтров, используемых для фильтрации данных, отображаемых на рабочем столе.
- Запросы — перечень запросов в систему-источник для получения данных для конкретного виджета.
- Действия — перечень действий (кнопок).
- Виджеты — перечень настроенных виджетов.
- Дашборды — перечень настроенных рабочих столов.
Данные конструктора рабочих столов хранятся в схеме custom_desktop. В схему входят следующие таблицы:
custom_desktop.source— настройки подключения к хранилищу данных.custom_desktop.input_field— настройки полей ввода, используемых в фильтрах.custom_desktop.filter— настройки фильтров.custom_desktop.query— настройки запросов.custom_desktop.filter_query_map— маппинг фильтров и запросов.custom_desktop.action— настройки действий (кнопок).custom_desktop.widget— настройки виджетов.custom_desktop.widget_action_map— связь виджета и действий.custom_desktop.query_widget_map— связь запроса с виджетом.custom_desktop.button— описание кнопки-виджета.custom_desktop.table_field— описание колонок таблицы для виджетов типа «таблица».custom_desktop.dashboard— настройки дашбордов.custom_desktop.dashboard_widget_map— связь дашбордов с виджетами.
Ниже приведен рекомендуемый порядок создания и настройки рабочих столов:
- Создать источник получения данных.
- Создать запросы к источнику данных.
- Создать фильтры и поля ввода.
- Настроить связи фильтров и запросов
- Создать требуемые действия.
- Создать виджеты для визуализации данных.
- Создать колонки для виджетов типа «Таблица».
- Настроить связи действий с виджетами.
- Создать дашборд.
- Настроить связь дашборда с виджетами
На вкладке Источники находятся настройки подключения к хранилищу данных, откуда система может визуализировать информацию.
Данные на странице представлены в табличном виде с указанием следующей информации:
- Код — кодовое обозначение источника.
- Краткое наименование — отображаемое название источника.
- Тип подключения — наименование типа подключения.
- Создал — имя пользователя, создавшего запись.
- Дата и время создания
- Обновил — имя пользователя, обновившего запись
- Дата и время обновления.
В разделе доступна кнопка Создать для создания нового источника.
Данные об источниках хранятся в таблице custom_desktop.source
Карточка редактирования источника доступна при двойном нажатии на строку с источником в общем списке.

Карточка содержит в себе следующие поля:
- Код — кодовое обозначение источника
- Наименование — отображаемое название источника.
- Тип БД — тип подключения. Возможные варианты:
- PostgreSQL,
- ClickHouse.
- Описание — текстовое описание источника.
- Data Source Name — наименование источника данных вида address:port/database
- Пользователь — имя пользователя (логин) БД.
- Изменить пароль — «Да» открывает поле для смены пароля.
- Пароль — изменение пароля для подключения к БД.
На вкладке Поля ввода находятся настройки полей ввода, которые используются в фильтрах.
Данные на странице представлены в табличном виде с указанием следующей информации:
- Код — кодовое обозначение объекта.
- Тип поля — тип данных поля.
- Создал — имя пользователя, создавшего объект.
- Дата и время создания
- Обновил — имя пользователя, обновившего объект
- Дата и время обновления.
В разделе доступна кнопка Создать для создания нового поля.
Данные о полях ввода хранятся в таблице custom_desktop.input_field
Карточка редактирования поля ввода доступна при двойном нажатии на строку с полем в общем списке.

Карточка содержит в себе следующие поля:
- Код — кодовое обозначение источника
- Тип — тип поля в форме. Возможные варианты:
- input — поле для ввода текста.
- textarea — поле для ввода большого текста (при вводе появляется значок копирования справа).
- datepicker — поле для выбора одной даты (из календаря).
- date_picker_range — поле для выбора диапазона дат. Каждая дата выбирается из календаря. При необходимости можно добавить выбор времени как в примере для поля payload и тогда можно будет выбрать дату+время.
- select — поле для выбора одного варианта из выпадающего плоского списка.
- multiselect — поле для выбора множества вариантов из выпадающего плоского списка.
- tree_select — поле для выбора одного варианта из выпадающего древовидного списка.
- tree_multiselect — поле для выбора множества вариантов из выпадающего древовидного списка.
- radio — выбор одного варианта ответа. Список вариантов указывается в поле options.
- number — поле для ввода целочисленного значения.
- Флаг блокировки — состояние доступности поля.
- Флаг обязательности — обязательность заполнения поля (в т.ч. условная)
- Порядковый номер — расположение поля в форме по порядку
- Пояснение названия — текстовая подсказка возле названия поля.
- Флаг загрузки всего списка опций — указание отображения всех вариантов опций сразу.
- URL для загрузки опций — ссылка, по которой будут браться варианты значений для поля.
- Плейсхолдер — замещающий текст.
- Тип данных значения селекта — возможные варианты:
- boolean,
- number,
- string.
- Значение по умолчанию — автоматически заполняемое значение.
В нижней части формы доступна кнопка Добавить опцию, которая добавляет дополнительные поля:
- Видимое название — наименование опции.
- Значение — выводимое значение.
На вкладке Фильтры находятся настройки фильтров. Фильтр — это объект интерфейса, отображаемый в дашборде, предоставляющий возможность на лету менять срезы, по которым осуществляется отображение данных. В запрос данные фильтра пробрасываются в виде параметра в контексте Jinja. Фильтр в интерфейсе может принимать разный вид: поле с выпадающим списком, поле ввода, радиокнопка и т.д.
Данные на странице представлены в табличном виде с указанием следующей информации:
- Код — кодовое обозначение объекта.
- Краткое наименование — название фильтра.
- Создал — имя пользователя, создавшего объект.
- Дата и время создания
- Обновил — имя пользователя, обновившего объект
- Дата и время обновления.
В разделе доступна кнопка Создать для создания нового фильтра.
Данные о фильтрах хранятся в таблице custom_desktop.filter
Карточка редактирования фильтра доступна при двойном нажатии на строку с фильтром в общем списке.

Карточка содержит в себе следующие поля:
- Код — кодовое обозначение фильтра.
- Наименование — название фильтра в интерфейсе.
- Описание — описание фильтра.
- Ссылка на InputField — наименование поля ввода.
На вкладке Запросы находятся запросы в систему-источник для получения данных для конкретного виджета.
Данные на странице представлены в табличном виде с указанием следующей информации:
- Код — кодовое обозначение запроса.
- Краткое наименование — название запроса.
- Создал — имя пользователя, создавшего объект.
- Дата и время создания
- Обновил — имя пользователя, обновившего объект
- Дата и время обновления.
В разделе доступна кнопка Создать для создания нового запроса.
Данные о запросах хранятся в следующих таблицах:
custom_desktop.query— запросыcustom_desktop.filter_query_map— маппинг фильтров и запросов.
Карточка редактирования запроса доступна при двойном нажатии на строку с запросом в общем списке.
Карточка содержит в себе две вкладки:
- Основное — общая информация о запроса.
- Фильтры запроса — перечень вкладок, доступных в карточке пользовательской сущности.
На вкладке Основное содержится общая информация о запросе.

Карточка содержит следующие поля:
- Код — кодовое обозначение запроса.
- Наименование — наименование запроса.
- SQL-выражение — выражение, по которому выбираются данные из источника.
- Источник данных — выбор источника данных из списка.
На вкладке Фильтры запроса содержится информация о добавленных к запросу фильтрах.

На карточке отображаются добавленные к запросу фильтры. Данные отображаются в табличной форме и содержат следующую информацию:
- Код — кодовое обозначение фильтра.
- Краткое наименование
- Обязательный — признак обязательности фильтра.
На вкладке расположена кнопка Добавить для добавления новых фильтров к запросу. Нажатие на кнопку вызывает форму со следующими полями:
- Фильтр — наименование фильтра.
- Является ли параметр обязательным для запроса — признак обязательности фильтра.
На вкладке Действия находятся настройки действий (кнопок), используемых как самостоятельно в виджете-кнопке, так и в рамках виджета-таблицы.
Данные на странице представлены в табличном виде с указанием следующей информации:
- Код — кодовое обозначение объекта.
- Наименование — название кнопки.
- Создал — имя пользователя, создавшего объект.
- Дата и время создания
- Обновил — имя пользователя, обновившего объект
- Дата и время обновления.
В разделе доступна кнопка Создать для создания нового действия.
Данные о действиях хранятся в таблице custom_desktop.action
Карточка редактирования фильтра доступна при двойном нажатии на строку с фильтром в общем списке.

Карточка содержит в себе следующие поля:
- Код — кодовое обозначение кнопки.
- Наименование на UI — название кнопки в интерфейсе.
- Идентификатор для подключения обработчика — Уникальный код кнопки, требуемый для добавления пользовательской функциональности в интерфейсе.
- URL для запроса при нажатии на кнопку — ссылка на исполняемый при нажатии запрос.
- Красный флаг — признак «опасности» кнопки.
- Порядок — порядок отображения кнопки в интерфейсе.
- Дополнительные настройки request — дополнительные настройки запроса (метод, дополнительные заголовки, параметры).
- Указание позиции кнопки — расположение кнопки в интерфейсе.
- Тип — тип кнопки.
- Параметры для навигации — дополнительные параметры для навигации.
- Открытие в новой вкладке — признак выполнения действия в новой вкладке.
На вкладке Виджеты находятся настройки виджетов — объектов, отображаемых на вкладке дашборда. Виджеты имеют следующие функции:
- Визуализация произвольных данных, указанных в запросе.
- Реализация переходов между экранами системы.
Данные на странице представлены в табличном виде с указанием следующей информации:
- Код — кодовое обозначение объекта.
- Наименование — название виджета.
- Создал — имя пользователя, создавшего объект.
- Дата и время создания
- Обновил — имя пользователя, обновившего объект
- Дата и время обновления.
В разделе доступна кнопка Создать для создания нового виджета.
Данные о виджетах хранятся в следующих таблицах:
custom_desktop.widget— виджеты.custom_desktop.widget_action_map— связь виджета и действий.custom_desktop.query_widget_map— связь запроса с виджетом.custom_desktop.button— описание кнопки-виджета.custom_desktop.table_field— описание колонок таблицы для виджетов типа «таблица».
Карточка редактирования виджета доступна при двойном нажатии на строку с запросом в общем списке.
Карточка может содержать в себе следующие вкладки:
- Основное — общая информация о виджете.
- Запросы виджета — перечень запросов, исполняемых в данном виджете.
- Таблица — колонки виджета-таблицы.
- Действия в таблице — перечень действий, доступных для исполнения в таблице.
- Кнопка — настройки для виджета-кнопки.
На вкладке Основное содержится общая информация о виджете.

Карточка содержит следующие поля:
- Код — кодовое обозначение виджета.
- Наименование — название виджета в интерфейсе.
- Тип виджета — возможные варианты:
- График,
- Таблица,
- Кнопка.
- Раскладка графика с Jinja2-шаблонизацией — настройки графика Echarts. Поле доступно только при выборе типа виджета «График».
На вкладке Запросы виджета содержится перечень запросов, исполняемых в виджете.

На вкладке находится кнопка Добавить для добавления запроса к виджету. Нажатие на кнопку открывает форму, содержащую единственное поле Запрос с возможностью выбрать требуемый запрос из выпадающего списка.
Добавленные к виджету запросы отображаются на вкладке в табличной форме с указанием следующей информации:
- Код — кодовое обозначение запроса.
- Краткое наименование — название запроса в интерфейсе.
В конце каждой строки находится кнопка ••• со следующими опциями:
- Редактировать — переход к форме редактирования запроса.
- Удалить — удаление запроса из виджета.
На вкладке Таблица содержится перечень полей виджета-таблицы.

На вкладке находится кнопка Создать для добавления запроса к виджету. Нажатие на кнопку открывает форму, содержащую следующие поля:
- Имя колонки – кодовое обозначение поля.
- Заголовок — название поля в интерфейсе.
- Тип колонки — тип данных поля.
- Источник данных в запросе —
- Порядковый номер — расположение поля в таблице по порядку.
Добавленные к виджету поля отображаются на вкладке в табличной форме с указанием следующей информации:
- Краткое наименование — кодовое обозначение поля.
- Номер — порядковый номер поля.
- Тип — тип данных поля.
- Заголовок поля — название поля в интерфейсе.
- Создал — имя пользователя, создавшего запись.
- Дата и время создания
- Обновил — имя пользователя, обновившего запись
- Дата и время обновления.
В конце каждой строки находится кнопка ••• со следующими опциями:
- Редактировать — переход к форме редактирования поля.
- Удалить — удаление поля из виджета.
На вкладке Действия в таблице содержится перечень действий, доступных для исполнения в виджете.

На вкладке находится кнопка Добавить для добавления действия в таблицу. Нажатие на кнопку открывает форму, содержащую единственное поле Действие с возможностью выбрать требуемое действие из выпадающего списка.
Добавленные к виджету действия отображаются на вкладке в табличной форме с указанием следующей информации:
- Код — кодовое обозначение действия.
- Краткое наименование — название действия в интерфейсе.
В конце каждой строки находится кнопка ••• со следующими опциями:
- Редактировать — переход к форме редактирования действия.
- Удалить — удаление действия из виджета.
На вкладке Кнопка содержится перечень настроек для кнопок, доступных для исполнения в виджете-кнопке.
На вкладке находится кнопка Создать для добавления кнопки к виджету. Нажатие на кнопку открывает форму, содержащую следующие поля:
- Код — кодовое обозначение кнопки.
- Наименование на UI — название кнопки в интерфейсе.
- Тип кнопки — возможные варианты:
- вызов запроса,
- навигация.
- Имя иконки.
- API, которое надо вызвать при нажатии на кнопку — ссылка на API, выполняемое при нажатии.
- Название HTTP-метода — если метод не задан, используется GET.
- Данные, которые будут отправлены вместе с основным телом при выполнении запроса
- URL, на который перенаправляет кнопка — ссылка, которая откроется при нажатии на кнопку.
- Открытие в новом окне — нажатие на кнопку выполняет действие в новом окне.
На вкладке Дашборды находится перечень настроенных в системе дашбордов (рабочих столов). Дашборды отвечают за совокупное отображение всех виджетов на экране пользователя.
Данные на странице представлены в табличном виде с указанием следующей информации:
- Код — кодовое обозначение объекта.
- Наименование — название дашборда.
- Создал — имя пользователя, создавшего объект.
- Дата и время создания
- Обновил — имя пользователя, обновившего объект
- Дата и время обновления.
В разделе доступна кнопка Создать для создания нового дашборда.
Также в конце каждой строки находится кнопка ••• с двумя опциями:
- Удалить — для удаления дашборда.
- Открыть — для перехода к просмотру и редактированию дашборда.
Данные о дашбордах хранятся в следующих таблицах:
custom_desktop.dashboard— дашборды.custom_desktop.dashboard_widget_map— связь дашбордов с виджетами.
Переход к экрану просмотра и редактирования дашборда осуществляется нажатием на ••• в конце строки с требуемым дашбордом и выбором опции Открыть.
Откроется экран с настроенным дашбордом.

Также на дашборде расположены кнопки:
— для отображения панели фильтров, связанных с добавленными на рабочую область виджетами. Цветной круг на иконке отражает наличие активных фильтров.
- Сбросить для сброса всех параметров фильтрации.
- Применить для применения выбранных фильтров.
- Обновить данные для ручной актуализации данных виджетов.
- Редактировать для перехода в режим редактирования дашборда.
- Добавить виджет для добавления новых виджетов в режиме редактирования.