Настройка стенда
Руководство по подготовке стенда на основе Q.Palette: базовый образ, зависимости и конфигурация.
Минимальная поддерживаемая версия Q.Palette — 7.5.12. Рекомендуется всегда использовать последнюю доступную версию. История версий доступна на странице релизов (opens in a new tab).
Dockerfile
В качестве базового образа используется образ Q.Palette из внутреннего реестра Diasoft.
Формат тега — дата сборки в виде YYMMDDHH.
FROM registry-new.diasoft.ru/release/qpalette:registry-new.diasoft.ru/release/qpalette:26061012Тег образа обновляется при каждом релизе. Уточняйте актуальный тег на странице истории версий (opens in a new tab) перед обновлением стенда.
package.json
Подключите необходимые пакеты Q.Palette в dependencies. Версии должны соответствовать
выбранному образу.
{
"dependencies": {
"@diasoft/qpalette-core": "^7.5.12",
"@diasoft/qpalette-auth": "^7.5.12",
"@diasoft/qpalette-themes": "^7.5.12"
}
}config.json
Конфигурационный файл управляет внешним видом, авторизацией и подключаемыми плагинами.
Обязательные требования
| Параметр | Требование |
|---|---|
| Темы | Должны быть подключены Minimalism и SoftUI; defaultTheme — softui |
| Feedback | Блок feedback.visible должен быть true |
| Плагины | Обязательны: Мои задачи, Уведомления, AI-Ассистент |
| AI-Ассистент | Должен иметь свойство "slot": "bottom" |
Полный пример конфигурации
{
"theme": {
"defaultScheme": "light",
"defaultTheme": "softui",
"themes": [
{
"name": "Минимализм",
"id": "minimalism"
},
{
"name": "SoftUI",
"id": "softui"
}
]
},
"tabs": {
"visible": true,
"appName": "Digital Q"
},
"sidebar": {
"visible": true,
"dynamicMenu": true,
"logo": "",
"logoSmall": ""
},
"loginForm": {
"visible": true,
"background": "var(--q-primary-900) center / cover url('assets/images/auth_bg.svg')",
"logo": "assets/images/digitalq_logo.svg"
},
"bundleLoader": {
"loadingAnimation": "assets/images/loading-bundle.svg",
"bundleUrl": "/api/$service/$component/main.js"
},
"widgetLoader": {
"bundleUrl": "/api/$service/widgets/$component/main.js"
},
"widgets": {
"bundleUrl": "/api/$service/$component/widgets/$widget/main.js"
},
"auth": {
"service": "KeyCloak",
"options": {
"excludeUrlsFromAuthorization": [
"assets/*"
],
"keycloak": {
"config": {
"url": "https://login.diasoft.ru/auth",
"realm": "qwork",
"clientId": "digitalq"
}
}
}
},
"plugins": [
{
"caption": "Мои задачи",
"service": "humantaskui",
"component": "human-task-list-plugin",
"icon": "qi-tasks-outlined",
"opened": false
},
{
"caption": "Уведомления",
"service": "qunui",
"component": "notification-list-plugin",
"icon": "pi-bell-outlined",
"opened": false,
"initWithApp": false
},
{
"caption": "AI-Ассистент",
"service": "qaiapui",
"component": "qaiap",
"route": "plugin-chat",
"icon": "qi-gpt",
"slot": "bottom"
}
],
"apiBaseUrl": "/api/$service",
"feedback": {
"visible": true,
"endpoint": {
"service": "qpfeedback",
"component": "qpfeedback"
}
}
}Описание секций конфигурации
theme
Управляет доступными темами оформления и темой по умолчанию.
| Поле | Описание |
|---|---|
defaultScheme | Схема по умолчанию: light или dark |
defaultTheme | ID темы по умолчанию. Используйте softui |
themes | Массив доступных тем. Обязательно включите minimalism и softui |
auth
Настройки авторизации через KeyCloak.
| Поле | Описание |
|---|---|
service | Провайдер авторизации — KeyCloak |
options.keycloak.config.url | URL сервера авторизации |
options.keycloak.config.realm | Realm KeyCloak |
options.keycloak.config.clientId | Client ID приложения |
plugins
Список подключаемых плагинов. Порядок записей определяет порядок отображения в интерфейсе.
Плагин AI-Ассистент должен всегда иметь свойство "slot": "bottom" — это фиксирует
его в нижней части панели независимо от порядка в массиве.
| Плагин | service | component |
|---|---|---|
| Мои задачи | humantaskui | human-task-list-plugin |
| Уведомления | qunui | notification-list-plugin |
| AI-Ассистент | qaiapui | qaiap |
feedback
Блок обратной связи. Должен быть включён на всех стендах.
"feedback": {
"visible": true,
"endpoint": {
"service": "qpfeedback",
"component": "qpfeedback"
}
}Подключение обратной связи
Возможно подключение двумя способами.
Подключение как библиотечного PBC
Библиотека: @diasoft/qfeedbackui-lib
Добавьте зависимость в package.json
"@diasoft/qfeedbackui-lib": "0.0.20"Настройте копирование ассетов в angular.json
В секции architect.build.assets вашего проекта добавьте:
{
"glob": "**/*",
"input": "node_modules/@diasoft/qfeedbackui-lib",
"output": "assets/qpfeedback"
}Обновите конфигурацию config.base.json
В bundleUrl сначала указывается папка с вашим собранным бандлом проекта:
"feedback": {
"visible": true,
"endpoint": {
"service": "qpfeedback",
"component": "qpfeedback"
},
"bundleUrl": "lichnyjkabinetpopokupkedragmetalov/assets/qpfeedback/main.js"
}где lichnyjkabinetpopokupkedragmetalov — название папки вашего собранного бандла проекта.
Создайте файл конфигурации qfeedback-config.json
Разместите файл по пути rootapp/assets/data/qfeedback-config.json.
Описание полей:
| Поле | Тип | Описание |
|---|---|---|
logger | string | URL для логов |
name | string | Имя индекса в Kibana |
supportEmails | string[] | (опционально) Email поддержки. По умолчанию supportmsa@diasoft.ru. Можно указать несколько адресов |
Пример:
{
"logger": "https://elasticdb-dashboards.logging.qrundigital.diasoft.ru",
"name": "qrundigital-dslog-*",
"supportEmails": ["qpalette@diasoft.ru"]
}