Перейти к содержанию

Публикация и обновление

В данной статье рассматривается:

Публикация SmartApp

  1. Перейдите в раздел "Боты":

    Рисунок_1

  2. Нажмите на кнопку Создать бота.

  3. В открывшемся окне заполните поля:

    Рисунок_2

    Название поля Описание
    App ID уникальный текстовый идентификатор SmartApp
    URL адрес, где развернут чат-бот
    Имя название чат-бота. Для SmartApp данное поле заполнять не нужно
    Статус-сообщение сообщение, которое будет выводиться создании чата с ботом. Для SmartApp данное поле заполнять не нужно
    Аватар аватар чат-бота. Для SmartApp загружать аватар не нужно
    Версия протокола версия протокола, которую будет использовать BotX при обращении к чат-боту. По умолчанию выбрана самая последняя
  4. Нажмите Сохранить.

    Созданный чат-бот отобразится в разделе "Боты".

Далее выполните следующие настройки:

  1. В разделе "Боты" нажмите пиктограма в строке созданного чат-бота.
  2. В открывшемся окне в блоке "Смарапп" установите флаг "Включено":

    Рисунок_3

  3. Заполните поля:

    Название поля Описание
    Имя название SmartApp, которое будет отображаться в каталоге SmartApp
    Аватар аватар SmartApp, которая будет отображаться в каталоге SmartApp
  4. Нажмите Сохранить.

Публикация SmartApp с проксированием

В дополнение к пункту выше необходимо выполнить следующие действия:

  1. Выпустите сертификат на поддомен CTS и пропишите его в DNS.

    Например, настраивается проксирование веб-ресурса SAP. CTS хост определен как cts01.example.com. Потребуется прописать DNS имя sap.cts01.example.com и выпустить сертификат на него.

    Такое "подчиненное" отношение между FQDN требуется для корректной работы авторизационной cookie. CTS выдает cookiе _file_service_key клиенту, которая автоматически добавляется во все запросы на субдоменах и аутентифицирует запросы в smartapp_proxy.

    Примечание

    На каждый CTS требуется заводить отдельный поддомен на каждый проксируемый ресурс. Например, требуется настроить проксирование 3 ресурсов на 2 CTS. Потребуется прописать 6 субдоменов в DNS и выпустить 6 сертификатов.

  2. Настройте на CTS реверс-прокси traefik.

    В папке конфигурации /opt/express/.cts/traefik/conf.d добавьте файл(ы) с конфигурацией проксирования.

    Пример содержимого conf файла:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    server {
        server_name sap.cts01.example.com; # FQDN по которому веб ресурс будет доступен снаружи
    
        listen 443 ssl http2;
    
        ssl_session_cache shared:SSL:50m;
        ssl_session_timeout 5m;
        ssl_session_tickets on;
        ssl_protocols TLSv1.3 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ecdh_curve secp521r1:secp384r1;
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_dhparam /etc/nginx/certs/dhparam.pem;
    
        ssl_certificate /etc/nginx/certs/sap.cts01.example.com.crt;
        ssl_certificate_key /etc/nginx/certs/sap.cts01.example.com.key;
    
        proxy_ssl_session_reuse on;
    
        client_body_buffer_size 1m;
        client_max_body_size 500m;
    
        set_real_ip_from 127.0.0.1;
        real_ip_header X-Real-Ip;
    
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    
        proxy_connect_timeout 75;
        proxy_send_timeout 75;
        proxy_read_timeout 75;
        send_timeout 75;
    
        location / {
            proxy_ssl_verify              off;
            proxy_ssl_server_name on;
    
            proxy_set_header Host sap01.example.local:443; # Внутренний адрес проксируемого ресурса
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Forwarded-Port 443;
            proxy_set_header X-Forwarded-Proto $scheme;
    
            proxy_pass http://smartapp_proxy:4000;
        }
    }
    

Обновление SmartApp

SmartApp является веб-приложением, поэтому для его обновления достаточно обновить контейнер, который будет содержать новую сборку backend и frontend. Клиент "eXpress" при загрузке SmartApp получит новые статические файлы frontend.