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.5.tar.gz (5.8 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.5-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: esb1c_app-0.1.5.tar.gz
  • Upload date:
  • Size: 5.8 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.5.tar.gz
Algorithm Hash digest
SHA256 af5812f2a24c9679cdd0ea0a4316d25bd3f2f890307567bd9d9876733fb6da33
MD5 e6649b65d13d5862cd68133262d258d6
BLAKE2b-256 8173430d963a3a6d0c30da5c8f1d0786b65865c3edd82289fba39342b07f4f92

See more details on using hashes here.

File details

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

File metadata

  • Download URL: esb1c_app-0.1.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 614341610b0943a0e3dffa167bf5161b0072455334b2a3727c17e2503696d446
MD5 1147bb95d98e08bf4e919be89febfe02
BLAKE2b-256 5cddf2fd01cc1b3de399e791a95a334fbf5bde42e415fa239fa0b423881e63b8

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