Публикация и обновление
В данной статье рассматривается:
Публикация SmartApp
-
Перейдите в раздел "Боты":
-
Нажмите на кнопку Создать бота.
-
В открывшемся окне заполните поля:
Название поля Описание App ID уникальный текстовый идентификатор SmartApp URL адрес, где развернут чат-бот Имя название чат-бота. Для SmartApp данное поле заполнять не нужно Статус-сообщение сообщение, которое будет выводиться создании чата с ботом. Для SmartApp данное поле заполнять не нужно Аватар аватар чат-бота. Для SmartApp загружать аватар не нужно Версия протокола версия протокола, которую будет использовать BotX при обращении к чат-боту. По умолчанию выбрана самая последняя -
Нажмите Сохранить.
Созданный чат-бот отобразится в разделе "Боты".
Далее выполните следующие настройки:
- В разделе "Боты" нажмите в строке созданного чат-бота.
-
В открывшемся окне в блоке "Смарапп" установите флаг "Включено":
-
Заполните поля:
Название поля Описание Имя название SmartApp, которое будет отображаться в каталоге SmartApp Аватар аватар SmartApp, которая будет отображаться в каталоге SmartApp -
Нажмите Сохранить.
Публикация SmartApp с проксированием
В дополнение к пункту выше необходимо выполнить следующие действия:
-
Выпустите сертификат на поддомен 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 сертификатов.
-
Настройте на 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.