1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-11-29 22:27:42 +02:00

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot)
2025-05-28 23:11:21 +03:00
parent b1248e0a70
commit ab02a4429c
6 changed files with 8082 additions and 8086 deletions

View File

@@ -8,18 +8,18 @@ keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3,
![Melezh](../../../static/img/melezh_long.png)
**Melezh** - это серверная версия Открытого пакета интеграций, предоставляющая единый настраиваемый HTTP API для доступа к любым его библиотекам с возможностью установки значений по умолчанию, веб-консолью и встроенным логированием входящих запросов
**Melezh** - это Серверная версия Открытого пакета интеграций, предоставляющая единый настраиваемый HTTP API для доступа к его библиотекам и произвольным `.os` скриптам (расширениям), с возможностью установки значений по умолчанию, веб-консолью и встроенным логированием входящих запросов
## Принцип работы
Данный сервер устанавливается поверх `oint` - консольного приложения [Открытого пакета интеграций](https://github.com/Bayselonarrend/OpenIntegrations), и позволяет удаленно вызывать его методы по средством HTTP-запросов из любого места так, как это происходило бы в консоли на локальной машине. Melezh использует встроенный в OneScript сервер Kestrel для приема HTTP запросов, а затем интерпретирует их в команды `oint` для дальнейшего выполнения
Данный сервер устанавливается поверх `oint` - консольного приложения [Открытого пакета интеграций](https://github.com/Bayselonarrend/OpenIntegrations), и позволяет удаленно вызывать его методы по средством HTTP-запросов из любого места так, как это происходило бы в консоли на локальной машине. Melezh использует встроенный в OneScript сервер Kestrel для приема HTTP запросов, а затем интерпретирует их в команды `oint` (или модулей-расширений) для дальнейшего выполнения
Решение имеет гибкую систему настроек, позволяющую определить ограничения списка доступных команд и методов, а также установить значения параметров для выполнения команд по умолчанию. Это позволяет как просто уменьшить количество передаваемых данных, так и скрыть чувствительные данные от клиентской стороны в случае необходимости
## Пример начальной настройки
В этом примере создается новый файл проекта с настройкой обработкичка GET-запросов для функции `ОтправитьТекстовоеСообщение` из библиотеки работы с Telegram. Также в нем устанавливается значение по умолчанию для параметра `token` без возможности перезаписи ("строгий")
В этом примере создается новый файл проекта с настройкой обработчика GET-запросов для функции `ОтправитьТекстовоеСообщение` из библиотеки работы с Telegram. Также в нем устанавливается значение по умолчанию для параметра `token` без возможности перезаписи ("строгий")
```powershell
@@ -30,7 +30,7 @@ melezh ЗапуститьПроект --proj R:\test_proj.melezh -
```
Обработчик будет доступен на `localhost:7788/42281f11b`, где `42281f11b` - идентификатор, получаемый при вызове `ДобавитьОбработчикЗапросов`, являясь одновременно и ключем обработчика для настройки, и URL эндпоинтом для обращений
Обработчик будет доступен на `localhost:7788/42281f11b`, где `42281f11b` - идентификатор, получаемый при вызове `ДобавитьОбработчикЗапросов`, являясь одновременно и ключом обработчика для настройки, и URL эндпоинтом для обращений
Пример запроса для отправки текстового сообщения:

View File

@@ -19,13 +19,13 @@ sidebar_position: 2
![Запуск Melezh](../../../../static/img/Docs/Melezh/3.gif)
Вы можете получить список всех доступных методов Melezh, вызвавв команду `melezh --help`. Вызов любого метода Melezh без параметров возвращает справку о его назначении и наборе аргументов:
Вы можете получить список всех доступных методов Melezh, вызвав команду `melezh --help`. Вызов любого метода Melezh без параметров, в свою очередь, возвращает справку о его назначении и наборе аргументов:
![Запуск Melezh](../../../../static/img/Docs/Melezh/5.gif)
## Создание проекта
Для полноценного начала работы с Melezh необходимо создать **проект** - файл, в котором будут хранится основные настройки и данные об обработчиках. Для этого необходимо вызывать команду `СоздатьПроект` и указать путь в аргументе `--path`
Для полноценного начала работы с Melezh необходимо создать **проект** - файл, в котором будут хранится основные настройки и данные об обработчиках. Для этого необходимо вызывать команду `СоздатьПроект` и указать путь для сохранения нового файла в аргументе `--path`
![Запуск Melezh](../../../../static/img/Docs/Melezh/4.gif)
@@ -33,10 +33,10 @@ sidebar_position: 2
## Настройка проекта
Дальнейшая настройка проекта может осуществляться двумя способами:
Дальнейшая настройка проекта после создания может осуществляться двумя способами:
+ **В консольном варианте** <br/>
Настройка проекта может осуществляться дальнейшим вызовом команд `melezh` в терминале (командной строке). Список доступных команд и их аргументы перечислены в разделе *Консольный интерфейс*
+ **С использованием консольного интерфейса** <br/>
Настройка проекта может осуществляться дальнейшим вызовом команд `melezh` в терминале (командной строке). Список доступных команд и их аргументы перечислены в разделе *Консольный интерфейс* и встроенной справке приложения
+ **В веб-панели управления** <br/>
Кроме консольного интерфейса, Melezh имеет встроенный Web UI, позволяющий упралвять проектом в интерактивном режиме. Подробнее о работе через веб-интерфейс можно узнать в разделе *Web-интерфейс*

View File

@@ -5,28 +5,24 @@ title: Основные положения
sidebar_position: 3
---
В этом разделе приведены основные термины и положения, связанные с настройкой и администрированием Melezh
В этом разделе содержится глоссарий основных терминов и положений, связанных с настройкой и администрированием Melezh
### Проект
Основным объектом при работе с Melezh является **Проект** - файл с произвольным расширением, представляющий из себя SQLite базу с определенным набором таблиц, в которых хранится основная информация о настройках и списке обработчиков конкретного решения на базе Melezh
Основным объектом при работе с Melezh является **Проект** - файл с произвольным расширением, представляющий из себя SQLite базу с определенным набором таблиц, в которых хранится информация об общих настройках и параметрах обработчиков конкретного решения на базе Melezh
Создать проект можно только из консоли (командной строки) при помощи команды `СоздатьПроект` с указанием пути сохранения файла проекта (см. *Консольный интерфейс*). После создания файла проекта, он будет иметь стандартную конфигурацию, которую можно изменить консольными командами или при помощи Web-консоли (требуется запуск проекта, см. Web-интерфейс)
### Настройки
**Настройки** - глобальные установки проекта, влияющие на работу всех обработчиков и решения в целом
Создать проект можно только из консоли (командной строки) при помощи команды `СоздатьПроект` с указанием пути сохранения файла проекта (см. *Консольный интерфейс*). После создания файла проекта, он будет иметь стандартную конфигурацию, которую можно изменять в дальнейшем при помощи консольных командам или Web-консоли (требуется запуск проекта, см. Web-интерфейс)
### Обработчик
**Обработчик** - часть проекта, отвечающая за обработку запросов на одном конкретном пути. Он характеризуется ключом, методом HTTP, библиотекой и функцией обработки:
**Обработчик** - часть проекта, отвечающая за обработку запросов на одном конкретном пути URL. Характеризуется обработчик уникальным ключом, методом HTTP, библиотекой и функцией обработк из набора ОПИ или стороннего расширения:
+ **Ключ** обработчика служит для его идентификации при настройке, удалении или получении логов. Также ключ равен пути, по которому обработчик принимает запросы. Т.е. обработчик с ключом `0d17ad53c` бедут принимать запросы на `localhost:<port>/0d17ad53c`
+ **Метод HTTP** определяет, какие запросы может принимать обработчик. Всего их три на выбор: Get, Post c JSON телом (`JSON`), Post с form-data телом (`FORM`). Запросы с form-data телом могут быть как в формате `application/x-www-form-urlencoded`, так и в `multipart/form-data`. Запросы, приходящие в формает, отличном от установленного, будут отклонены
+ **Метод HTTP** определяет, какие запросы может принимать обработчик. Всего их три на выбор: Get, Post c JSON телом (`JSON`), Post с form-data телом (`FORM`). Запросы, отправляемые на обработчик с form-data телом, могут иметь как тело в формате `application/x-www-form-urlencoded`, так и в формате `multipart/form-data`. Запросы, приходящие в формает, отличном от установленного, будут отклонены
+ **Библиотека** или **Команда** является идентификатором набора функций из Открытого пакета интеграций или подключаемого расширения. Она определяет, в каком модуле находится функция, отвечающая за основную обработку запроса
+ **Функция** обработчика - это имя метода, отвечающего за основную обработку приходящих по пути обработчика запросов. Как уже было сказано, это может быть функция одной из библиотек ОПИ или метод из подключаемого расширения. Функция не отвечает за разбор запроса, но только за формирование ответа из уже обработанных данных на основе собственной логики
+ **Функция** обработчика - это имя метода, отвечающего за основную обработку приходящих по пути обработчика запросов. Как уже было сказано, это может быть функция одной из библиотек ОПИ или метод из подключаемого расширения. Функция не отвечает за принятие, разбор или логирование запроса, но только за формирование ответа из уже обработанных данных на основе собственной логики
### Аргумент
**Аргументы** - уникальный набор параметров, присущий каждой конкретной функции из выбираемых при настройке обработчика. Аргументы могут быть как просто получены из запроса, так и иметь значения по умолчанию, установленные при настройке. Это позволяет не указывать отдельные (или все) параметры функции при формировании запроса на стороне клиента. Помимо этого, каждый аргумент также может быть установлен как *строгий*, что запрещает его перезапись данными из запроса (без установки этого флага, данные, переданные в запросе, являются превалирующими)
**Аргументы** - уникальный набор ожидаемых в запросе полей, передаваемый при приеме в функцию обработчика. Аргументы могут быть как просто получены из запроса в полном объеме, так и иметь значения по умолчанию, установленные при настройке. Это позволяет не указывать отдельные (или все) параметры функции при формировании запроса на стороне клиента. Помимо этого, каждый аргумент может быть установлен как *строгий*, что запрещает его перезапись данными из запроса (без установки этого флага, данные, переданные в запросе, замещают значения по умолчанию)

View File

@@ -5,24 +5,24 @@ title: Установка
sidebar_position: 1
---
Для начала работы с Melezh необходимо пройти процедуру его установки, после чего создать и настроить проект. В этом разделе описан процесс установки Melezh на конкретном устройстве. Выбор того или иного способа зависит от операционной системы и наличия в ней OneScript с пакетным менеджером OPM:
Для начала работы с Melezh необходимо пройти процедуру его установки, после чего создать и настроить проект. В этом разделе описан процесс установки Melezh на конкретном устройстве. Выбор того или иного способа зависит от операционной системы, а также доступности в ней Docker или OneScript с пакетным менеджером OPM:
## Docker (рекомендуется)
Запустить Melezh в Docker-контейнере можно одним из следующих способов:
+ Получив и запустив образ из Docker Hub:
+ Получить образ из GHCR и запустить контейнер:
```bat
```bash
:: Вместо -ru можно указать -en для получения английской версии
:: Вместо latest можно указать конкретную версию Melezh
:: Порт может быть изменен в аргументе -p
docker pull bayselonarrend/melezh:latest-ru
docker run -d -p 7788:7788 --name melezh-app bayselonarrend/melezh:latest-ru
docker pull ghcr.io/bayselonarrend/melezh:0.1.0-ru
docker run -d -p 1921:1921 --name melezh-app bayselonarrend/melezh:latest-ru
```
+ Скачав zip-архив с Dockerfile (`melezh-docker-ru.zip` или `melezh-docker-en.zip`) из релиза репозитория на Github. Архив необходимо распаковать, после чего запустить один из находящихся там скриптов установки - `bat` или `sh`, в зависимости от используемой ОС
+ Скачать zip-архив с Dockerfile (`melezh-docker-ru.zip` или `melezh-docker-en.zip`) из релиза репозитория на Github. Архив необходимо распаковать, после чего запустить один из находящихся там скриптов установки - `bat` или `sh`, в зависимости от используемой ОС
<hr/>
@@ -48,17 +48,17 @@ Melezh совместим с любой версией `oint`, выше 1.24.0,
Melezh и OInt - это, в первую очередь, пакеты для [OneScript](https://github.com/EvilBeaver/OneScript), которые могут быть установлены при помощи пакетного менеджера OPM. Русская версия пакета может быть установлена из облачного хаба пакетов при помощи консольной команды:
```powershell
```bash
opm install melezh
```
В этом пакете уже прописаны зависимости от OInt - он будет установлен автоматически
В этом пакете уже прописаны зависимости от OInt и OInt CLI - они будут установлен автоматически
Помимо этого, и английская, и русская версии могут быть установлены из `.ospx` файлов пакетов, которые находятся в релизах соответствующих репозиториев [Melezh](https://github.com/Bayselonarrend/OpenIntegrations) и [OpenIntegrations](https://github.com/Bayselonarrend/OpenIntegrations):
Кроме получения из облака, и английская, и русская версии могут быть установлены из локальных `.ospx` файлов пакетов, которые находятся в релизах соответствующих репозиториев [Melezh](https://github.com/Bayselonarrend/OpenIntegrations) и [OpenIntegrations](https://github.com/Bayselonarrend/OpenIntegrations):
```powershell
opm install -f oint-x.x.x_lang.ospx
opm install -f oint-cli-x.x.x_lang.ospx
```bash
opm install -f oint-x.x.x_lang.ospx
opm install -f oint-cli-x.x.x_lang.ospx
opm install -f melezh-x.x.x_lang.ospx
```

View File

@@ -9,14 +9,14 @@ sidebar_position: 4
## Методы ОПИ (стандартный набор)
Как уже рассматривалось в предыдущих подразделах документации, каждый обработчик харакетризуется функцией, отвечающей за формирование ответа на входящие запросы. По умолчанию, в Melezh встроен полный набор методов всех библиотек Открытого пакета интеграций. Эти методы могут быть выбраны в качестве функций обработки при настройке каждого конкретного обработчика
Как уже рассматривалось в предыдущих подразделах документации, каждый обработчик харакетризуется функцией, отвечающей за формирование ответа на входящие запросы. По умолчанию, в Melezh встроен полный набор методов всех библиотек Открытого пакета интеграций - эти методы могут быть выбраны в качестве функций обработки при настройке каждого конкретного обработчика
При настройке обработчиков в консольном режиме, для получения правильных имен библиотек (команд), функций и их аргументов можно воспользоваться документацией самого Открытого пакета интеграций
![Документация ОПИ](../../../../static/img/Docs/Melezh/3.png)
:::warning
Имена библиотек указываются в формет CLI приложения. Т.е. `telegram` или `gdrive` (Google Drive)
Имена библиотек указываются в формет CLI приложения. Например, `telegram` или `gdrive` (Google Drive)
:::
<br/>
@@ -72,7 +72,7 @@ OneScript, в качестве OPM пакета:
<br/>
В стандартной поставке, в каталоге `extensions/Modules` есть модуль `RequestsEcho.os`, который может быть использован в качестве шаблона для расширения:
В стандартной поставке, в каталоге `extensions/Modules` есть модуль `RequestsEcho.os`, который может быть использован в качестве шаблона для нового расширения:
```bsl title="RequestsEcho.os"
@@ -97,7 +97,7 @@ OneScript, в качестве OPM пакета:
![RequestsEcho](../../../../static/img/Docs/Melezh/5.png)
:::tip
Рекомендуется дополнительно сохранять копии модулей расширений в другом месте, так как в отдельных случаях обновления и удаления Melezh, а также при пересборке образа (если используется Docker),
:::IMPORTANT
Рекомендуется дополнительно сохранять копии модулей расширений в другом месте, так как в отдельных случаях обновления и удаления Melezh, а также при пересборке образа (если используется Docker), данные файлы могут быть удалены
:::

File diff suppressed because it is too large Load Diff