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

Uploaded Python 3

File details

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

File metadata

  • Download URL: esb1c_app-0.1.4.tar.gz
  • Upload date:
  • Size: 6.0 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.4.tar.gz
Algorithm Hash digest
SHA256 a281cd1b10f765ac5b5f7f09af02a749ff20b8f3ea34fe4e669f8608f4544b34
MD5 bdc8f8b65ae8dd13e1557b28a62aaa6f
BLAKE2b-256 c06f681c8cf6335b7892e6036f6e78713d47f594324994c15c6e54dcebc81331

See more details on using hashes here.

File details

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

File metadata

  • Download URL: esb1c_app-0.1.4-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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f324825693be006da98105ef9c1267ee6765cc6b0fb9abb4f6c19abf35548b11
MD5 ad06dce26dbf593ad35a7cc21672c77a
BLAKE2b-256 d4ca449ed6c9cfb5730d87cb1a2745eb2550d8aee8ea72cacf3f856333d9c519

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