Конфигурация файлов

Файл конфигурации config.json

Для работы сервера приложений PGHS необходимо, чтобы в директории сервера приложений присутствовал файл конфигурации config.json. Файл конфигурации содержит 3 раздела:

Описатель «app», где можно определить базовые настройки сервера:

{
    "app": {
    "port": "8888"
},

Атрибут

Тип

Описание

port

Строка

Определяет номер сетевого порта, на котором будет запущен сервер (по умолчанию - 8889)

Описатель «XRAD», где определяются настройки для работы с БД XRAD:

"XRAD": {
    "login": "xrad_user",
    "password": "xrad_user",
    "host": "127.0.0.1",
    "port": 5432,
    "minCons": 1,
    "maxCons": 5,
    "dbName": "xraddb"
}

Параметр

Тип

Описание

login

Строка

Имя пользователя для подключения к базе данных XRAD.

password

Строка

Пароль пользователя для подключения к базе данных XRAD.

host

Строка

IP-адрес сервера базы данных XRAD.

port

Число

Номер порта, на котором работает сервер базы данных XRAD.

dbName

Строка

Имя базы данных, к которой требуется подключиться XRAD.

minCons

Число

Минимальное количество открытых соединений с базой данных.

maxCons

Число

Максимальное количество одновременных соединений с базой данных.

Описатель «datasources» определяет массив источников данных, используемых сервером приложений.

Например, в следующем блоке определяется несколько источников данных для разных типов подключений:

  "datasources":[
    {
        "name": "DEFAULT_APP",
        "dbType": "postgresql",
        "login": "app_user",
        "password": "app_user",
        "host": "127.0.0.1",
        "port": 5432,
        "minCons": 1,
        "maxCons": 15,
        "dbName": "pghs",
        "runtimeOptions": {
            "LC_NUMERIC": "ru_RU.UTF-8"
        }
    },
    {
        "name": "ORACLE",
        "dbType": "oracle",
        "login": "admin",
        "password": "admin",
        "host": "127.0.0.1",
        "port": 1521,
        "minCons": 1,
        "maxCons": 15,
        "dbName": "xora",
        "runtimeOptions": {
            "NLS_NUMERIC_CHARACTERS": "', '"
        },
        "connOptions": {
            "ssl": "true"
        }
    },
    {
        "name": "MS_SQL",
        "dbType": "mssql",
        "login": "admin",
        "password": "admin",
        "host": "127.0.0.1",
        "port": 1433,
        "minCons": 1,
        "maxCons": 5,
        "dbName": "xdac_db",
        "runtimeOptions": {
            "DATEFORMAT": "dmy"
        },
        "connOptions": {
            "encrypt": "true"
        }
    },
    {
        "name": "MYSQL",
        "dbType": "mysql",
        "login": "admin",
        "password": "admin",
        "host": "127.0.0.1",
        "port": 3306,
        "minCons": 1,
        "maxCons": 15,
        "dbName": "employees",
        "connOptions": {
            "compress": "false"
        }
    },
    {
        "name": "FirebirdDB",
        "login": "admin",
        "password": "admin",
        "host": "127.0.0.1",
        "dbType": "firebird",
        "port": 3050,
        "minCons": 1,
        "maxCons": 5,
        "dbName": "/data/reddb/xadmin.fdb"
    }
]

Параметр

Тип

Описание

name

Строка

Имя источника данных. Должно соответствовать имени источника определенному в приложении XRAD.

dbType

Строка

Тип источника данных. Возможные значения: postgresql, mssql, oracle, firebird.

login

Строка

Имя пользователя для подключения к базе данных XRAD.

password

Строка

Пароль пользователя для подключения к базе данных XRAD.

host

Строка

IP-адрес сервера базы данных XRAD.

port

Число

Номер порта, на котором работает сервер базы данных XRAD.

dbName

Строка

Имя базы данных, к которой требуется подключиться XRAD.

minCons

Число

Минимальное количество открытых соединений с базой данных.

maxCons

Число

Максимальное количество одновременных соединений с базой данных.

runtimeOptions

Объект

Перечень параметров сессии которые должны быть установлены после создания нового подключения к БД. Используется для установки значений через ALTER SESSION для ORACLE или PostgreSQL, и для установки значений через SET для MSSQL.

connOptions

Объект

Перечень параметров используемых для подключения к БД. Используется только для установки дополнительных параметров для подключения к БД типа Oracle, MSSQL и Mysql.

Файл конфигурации схем аутентификации auth_config.json

Сервер приложений PGHS поддерживает аутентификацию и авторизацию с использованием следующих схем:

  • Microsoft LDAP

  • Microsoft Kerberos SSO

  • LDAP

  • Kerberos SSO

  • Open ID Connect

При разработке приложения в конструкторе XRAD разработчик определяет возможные схемы аутентификации посредством указания имени схемы и ее типа. При старте сервер приложений PGHS загружает схемы из файла auth_config.json и сопоставляет их по имени и типу с параметрами в БД XRAD.

Файл auth_config.json содержит массив описателей схем аутентификации следующего формата:

[
    {
        "name": "",
        "type": "",
        "options": {}
    }
]
  • «name» - строка. Имя схемы аутентификации.

  • «type» – строка. Тип схемы аутентификации.

Поддерживаемые значения:

  • ldap

  • kerberos_sso

  • microsoft_ldap

  • microsoft_kerberos_sso

  • oidc

  • «options» – блок параметров схемы, который зависит от типа схемы.

LDAP, MICROSOFT_LDAP

Для типа схемы ldap и microsoft_ldap блок «options» описывает параметры подключения к LDAP-серверу, которые используются для аутентификации и получения информации о пользователях.

  • «host» – строка. IP-адрес LDAP-сервера.

  • «port» – число. Порт, используемый для связи с LDAP-сервером.

  • «base» – строка. Определяет базовую точку входа в LDAP-каталог.

  • «encryption» – строка. Определяет тип шифрования, используемого для связи с LDAP-сервером. Поддерживаемые значения:

    • start_tls – устанавливает защищенное TLS-соединение после начальной аутентификации по незашифрованному каналу. Обычно используется на порту 389.

    • simple_tls – устанавливает полностью зашифрованное TLS-соединение с самого начала. Обычно используется на порту 636.

    • plain – не использует шифрование и работает по незащищенному каналу. Обычно используется на порту 389.

  • «bind_dn» – строка. Distinguished Name (DN) пользователя, используемого для аутентификации на LDAP-сервере.

  • «password» – строка. Пароль, связанный с указанным bind_dn.

  • «request_user_groups» – логическое значение. Определяет необходимость запроса групп, к которым принадлежит пользователь.

Например:

{
"name": "User Auth LDAP",
"type": "ldap",
"options": {
    "host": "10.100.117.229",
    "port": 389,
    "base": "DC=ald,DC=dom",
    "encryption": "start_tls",
    "bind_dn": "uid=ldap,cn=users,cn=accounts,dc=ald,dc=dom",
    "password": "password",
    "request_user_groups": true
}
 }

KERBEROS_SSO, MICROSOFT_KERBEROS_SSO

Для типа схемы kerberos_sso и microsoft_kerberos_sso блок «options» описывает параметры подключения к LDAP-серверу, которые используются для аутентификации и получения информации о пользователях.

  • «keytab» – строка. Закодированное в BASE64 содержимое keytab файла, сгенерированного для сквозной доменной аутентификации.

  • «request_user_groups» – логическое значение. Определяет необходимость запроса групп, к которым принадлежит пользователь.

Например:

{
     "name": "User Auth Kerberos SSO",
     "type": "kerberos_sso",
     "options": {
         "keytab": "BQIAAABVAAIAB0FMRC5ET00ABEhUVFAAEXBnaHM0LWRldi5hbGQuZG9tAAAAAWa
     ...
     ukHskC0mwuIQB0AAAAAE=",
         "request_user_groups": true
     }
 },

OIDC

Для типа схемы oidc (Open Id Connect) блок «options» описывает конфигурацию аутентификации и авторизации пользователей с использованием OpenID Connect (OIDC).

  • «scope»- строка. Список запрашиваемых областей, к которым требуется доступ при аутентификации.

  • «issuer»- строка. URL-адрес сервера аутентификации (Issuer).

  • uid_field - строка. Определяет поле, содержащее уникальный идентификатор пользователя (UID).

  • «pkce»- логическое значение. Флаг, указывающий на необходимость использования Proof Key for Code Exchange (PKCE) для повышения безопасности.

  • client_options - описатель блока параметров клиента, использующего OIDC-аутентификацию.
    • «id»- строка. Идентификатор клиента(Client ID).

    • «secret» - строка. Секретный ключ клиента(Client Secret).

    • «redirect_uri»- строка. URL-адрес, на который будет перенаправлен пользователь после успешной аутентификации.

  • «request_user_groups» – логическое значение. Определяет необходимость запроса групп, к которым принадлежит пользователь.

Файл темы theme-roller.css

theme-roller.css — это CSS-файл, в котором хранятся настройки темы вашего приложения. Файл размещается в папке со статическими файлами проекта на сервере.
Он содержит дизайн-токены — CSS-переменные, которые определяют цвета, размеры, отступы и шрифты интерфейса.

Совет

Файл может быть создан и отредактирован вручную, но мы рекомендуем использовать вкладку «Темизация» инструмента DevTools для удобной настройки и генерации theme-roller.css.

Система автоматически подключает файл при загрузке приложения и кеширует его стандартными средствами браузера.
Большинство регионов и составных частей страницы имеют собственные дизайн-токены для настройки внешнего вида, что позволяет создать уникальный внешний вид.

Примечание

Система подключает файлы стилей в строго определённом порядке:

  1. базовые (системные) стили PGHS (index.css);

  2. тема приложения (theme-roller.css);

  3. стили проекта — стили, заданные в настройках приложения на стороне XRAD;

  4. стили страницы — определяются для конкретной страницы.

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

Пример содержимого theme-roller.css:

/* Настройки светлой темы */
:root {
  --color-brand: #6623b3;
  --bg-primary: #ffffff;
  --padding: 24px;
  --radius: 16px;
}

/* Настройки тёмной темы */
:root.--theme-dark {
  --bg-primary: #1a1a1a;
  --text-on-primary: #eeeeee;
}

Примечание

Если файл отсутствует на сервере — система использует значения по умолчанию, обеспечивая полную обратную совместимость для проектов, написанных на прошлых версиях PGHS.

Совет

Для проверки доступности файла вы можете напрямую открыть его через браузер. Для этого введите в адресной строке: [PGHS_DOMAIN]/files/theme-roller.css

Для управления цветовой схемой приложения следует использовать интерфейс jsAPI.colorScheme и его методы.

По умолчанию PGHS не имеет настроек для отображения тёмной темы.
Вы можете настроить тёмную тему самостоятельно во вкладке «Темизация» инструмента DevTools.
/* Пример тёмной темы для базового представления системы */

:root.--theme-dark {
    --bg-primary: #171a1c;
    --bg-primary-muted: #2e3032;
    --text-on-primary: #ffffff;
    --text-on-primary-muted: #899BAC;
    --border-color-primary: #576166;

    --bg-secondary: #262c30;
    --bg-secondary-muted: #32393f;
    --text-on-secondary: #ffffff;
    --text-on-secondary-muted: #899BAC;
    --border-color-secondary: #575d60;
}

Совет

Вы можете разместить этот код в theme-roller.css для добавления поддержки темной темы

Публичный конфигурационный файл pghs-config.json

pghs-config.json — это конфигурационный файл, в котором хранятся настройки структуры и поведения вашего приложения.

В отличие от theme-roller.css, который отвечает за внешний вид (цвета, размеры, шрифты), этот файл управляет структурой интерфейса: расположением шапки, бокового меню, основной области контента.

Совет

Файл может быть создан и отредактирован вручную, но мы рекомендуем использовать вкладку «Layout» инструмента DevTools для удобной настройки и автоматической генерации pghs-config.json.

Примечание

Если файл не создан — система использует значения по умолчанию, обеспечивая полную обратную совместимость для проектов, написанных на прошлых версиях XSQUARE LCDP.

Содержимое pghs-config.json файла по умолчанию:

{
    "devTools": {
        "enabled": false
    },
    "layout": {
        "allowHideNav": true,
        "headerPosition": "outside",
        "showHeaderMenuTitles": true,
        "view": "dashboard"
    }
}
Структура pghs-config.json

Параметр

Тип

Возможные значения

Описание

devTools.enabled

boolean

true | false

Включает или отключает панель DevTools на странице. true — панель отображается (режим настройки); false — панель скрыта (режим использования).

layout.view

string

dashboard | lk

Определяет тип отображения приложения. dashboard — для административных панелей, работа с большими объёмами данных; lk — для личных кабинетов пользователей.

layout.allowHideNav

boolean

true | false

Разрешает скрывать навигационное меню. Доступно только для типа отображения dashboard. Для типа отображения lk меню всегда развёрнуто.

layout.headerPosition

string

inside | outside

Определяет положение шапки. inside — шапка внутри основного содержимого страницы; outside — шапка над всем содержимым.

layout.showHeaderMenuTitles

boolean

true | false

Показывает или скрывает текстовые подписи у иконок в шапке. Подписи будут скрыты только для пунктов, у которых указана иконка.

Совет

Для проверки доступности файла вы можете напрямую открыть его через браузер. Для этого введите в адресной строке: [PGHS_DOMAIN]/files/pghs-config.json