Расширения | Tdg

Версия:

2.x
Справочник Sandbox API Расширения

Расширения

Вы можете загрузить подключаемые функции, или расширения, в TDG вместе с конфигурацией приложения. Для этого поместите расширения в корень проекта в директорию extensions.

При применении конфигурации в TDG:

Расширение global.lua

Модуль global.lua используется, чтобы задать в TDG глобальные изменения поведения, например, для настройки пользовательского HTTP-маршрута или функции IPROTO. Код из файла модуля запускается при обновлении конфигурации на всех экземплярах и выполняется вне окружения sandbox.

Чтобы добавить это расширение, выполните следующие действия:

  1. В корневой директории TDG создайте директорию extensions.

  2. Создайте файл модуля global.lua, напишите в нем необходимый код, а затем разместите файл в директории extensions. Модуль должен возвращать функцию init(), которая вызывается при применении конфигурации.

  3. Упакуйте в zip-архив:

    • папку extensions, внутри которой лежит файл модуля;

    • файл конфигурации config.yml.

  4. Загрузите архив в TDG согласно инструкции.

Подключение новых функций

Предупреждение

Подключение новых функций в TDG может приводить к проблемам с безопасностью. Чтобы предупредить эти проблемы, рекомендуется:

Чтобы подключить новые функции (расширения) к Sandbox API, выполните следующие действия:

  1. В корневой директории TDG создайте директорию extensions/sandbox. На следующем шаге в нее будет добавлен модуль с подключаемыми функциями. Также нужно проследить, чтобы у пользователей были необходимые права для чтения данной директории.

  2. Разместите в директории sandbox файл Lua-модуля, который вы хотите подключить. Модуль при этом должен возвращать объект с определяемыми модулем функциями. Кроме того, в добавленном модуле все используемые встроенные библиотеки должны быть явно подключены с использованием require(). Пример файла с Lua-модулем:

    -- ./extensions/sandbox/csv.lua
    -- По умолчанию в TDG не доступен модуль ``csv``
    
    return require('csv')
    
  3. Упакуйте в zip-архив:

    • папку extensions/sandbox, внутри которой лежит файл модуля;

    • файл конфигурации config.yml.

  4. Загрузите архив в TDG согласно инструкции.

Нашли ответ на свой вопрос?
Обратная связь