Инструкции
Настройка стенда

Настройка стенда

Руководство по подготовке стенда на основе 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; defaultThemesoftui
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
defaultThemeID темы по умолчанию. Используйте softui
themesМассив доступных тем. Обязательно включите minimalism и softui

auth

Настройки авторизации через KeyCloak.

ПолеОписание
serviceПровайдер авторизации — KeyCloak
options.keycloak.config.urlURL сервера авторизации
options.keycloak.config.realmRealm KeyCloak
options.keycloak.config.clientIdClient ID приложения

plugins

Список подключаемых плагинов. Порядок записей определяет порядок отображения в интерфейсе.

⚠️

Плагин AI-Ассистент должен всегда иметь свойство "slot": "bottom" — это фиксирует его в нижней части панели независимо от порядка в массиве.

Плагинservicecomponent
Мои задачиhumantaskuihuman-task-list-plugin
Уведомленияqunuinotification-list-plugin
AI-Ассистентqaiapuiqaiap

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.

Описание полей:

ПолеТипОписание
loggerstringURL для логов
namestringИмя индекса в Kibana
supportEmailsstring[](опционально) Email поддержки. По умолчанию supportmsa@diasoft.ru. Можно указать несколько адресов

Пример:

{
    "logger": "https://elasticdb-dashboards.logging.qrundigital.diasoft.ru",
    "name": "qrundigital-dslog-*",
    "supportEmails": ["qpalette@diasoft.ru"]
}