Skip to main content

Builder AMQP connection to 1C:ESB application

Project description

Builder AMQP connection to 1C:ESB application

Библиотека для интеграции с 1C:ESB (1С:Шина), помогающая получать метаданные каналов, их актуальные состояния, направления. Формировать AMQP-подключение к приложениям, опубликованным в 1С:Шине.

Установка

pip install esb1c-app

Возможности

  • Application автоматически получает id_token по протоколу OAuth 2.0 (client_credentials) и переиспользует его во всех запросах.

  • Загрузка метаданных каналов (/sys/esb/metadata/channels) с разбором описаний и направлений доступа.

  • Получение актуальных назначений каналов (/sys/esb/runtime/channels) и определение активных каналов отправки/получения.

  • Формирование AMQP URL вида amqp://<token>:<token>@<host>:<port>/applications/<application> на основе данных ESB.

Быстрый старт

see example.py

import os
from esb1c import Application

application = Application(
    url=os.environ["APPLICATION_URL"],
    client_id=os.environ["CLIENT_ID"],
    client_secret=os.environ["CLIENT_SECRET"],
)

print(application.url.to_dict())
// json: application.url
{'application_name': 'test',
 'base_url': 'http://srv.dm.local:9090',
 'host': 'src.dm.local',
 'port': 9090,
 'url': 'http://srv.dm.local:9090/applications/test',
 'vhost': '/applications/test'}
print("Application sender:")
print(application.sender.to_dict())
// json: application sender: 
{
    'access': 'WRITE_ONLY',
    'channel': 'send1',
    'channel_description': 'Источник 1',
    'destination': 'PUBLIC.MDE5YTU1YTZmM...........d3cec70',
    'process': 'my: :test: :Основной: :Дополнительный',
    'process_description': 'Процесс'
}
print("Application receiver:")
print(application.receiver.to_dict())
// jsom: application receiver: 
{
    'access': 'READ_ONLY',
    'channel': 'rec1',
    'channel_description': 'Получатель 1',
    'destination': 'PUBLIC.MDE5YTU1YTZmM............d3cec70',
    'process': 'my: :test: :Основной: :Дополнительный',
    'process_description': 'Процесс'
}
# token авторизации
print(application.id_token)

# каналы отправитель и получатель
print(application.sender)
print(application.receiver)

# строка соединения по протоколу amqp с токенами
print(application.amqp_url)

# Исходящие каналы
for channel in application.channels.senders:
    print(
        channel.channel,
        channel.process,
        channel.destination,
        channel.channel_description,
    )

# Входящие каналы
for channel in application.channels.receivers:
    print(
        channel.channel,
        channel.process,
        channel.destination,
        channel.process_description,
    )

Переменные окружения

  • APPLICATION_URL — полный URL приложения в 1C:ESB вида http(s)://host(:port)/applications/<имя>.
  • CLIENT_ID и CLIENT_SECRET — учетные данные пользователя (информационной базы).

Если переменные окружения заданы - библиотека готова к использованию.

Тестирование

Установите зависимости для разработки:

pip install .[dev]

Запустите тесты:

pytest

По умолчанию запросы к API 1C:ESB подменяются моками. Чтобы прогнать тесты на реальном окружении, задайте переменные APPLICATION_URL, CLIENT_ID, CLIENT_SECRET - это дополнит тестовые наборы (или удалите/отключите фикстуру mock_requests).

Требования

  • Python 3.9+
  • requests

Лицензия

Проект распространяется по лицензии MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

esb1c_app-0.1.6.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

esb1c_app-0.1.6-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file esb1c_app-0.1.6.tar.gz.

File metadata

  • Download URL: esb1c_app-0.1.6.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for esb1c_app-0.1.6.tar.gz
Algorithm Hash digest
SHA256 d78b3de0ca360480bbcb4e944d5cfc2912ff1c9b572f879957ddcc4537aaf3c1
MD5 77e744e81d1de8412f73f76ec848538c
BLAKE2b-256 70e8716bda6a51071220c17c0d81e80af2080b9e608081a1dab42d0a7c477f96

See more details on using hashes here.

File details

Details for the file esb1c_app-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: esb1c_app-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for esb1c_app-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 fd470885c3835566c0c4b15872bb716d3a7ae5cc79938359d41d46c40149daa2
MD5 67e597255472b689a76c7c4c98711281
BLAKE2b-256 d662816b5741eb0fd16e76926515998ac0466f62cdc5e43b78469a8c0abe441b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page