Skip to main content

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.

Metadata

Release files for esb1c-app 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for esb1c-app 0.1.6
File Size Uploaded
esb1c_app-0.1.6.tar.gz 5.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for esb1c-app 0.1.6
File Interpreter ABI Platform
esb1c_app-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 11.5 kB

Release files / esb1c_app-0.1.6.tar.gz

Download URL esb1c_app-0.1.6.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d78b3de0ca360480bbcb4e944d5cfc2912ff1c9b572f879957ddcc4537aaf3c1
BLAKE2b-256 checksum
How to use checksums
70e8716bda6a51071220c17c0d81e80af2080b9e608081a1dab42d0a7c477f96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / esb1c_app-0.1.6-py3-none-any.whl

Download URL esb1c_app-0.1.6-py3-none-any.whl
Size 5.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fd470885c3835566c0c4b15872bb716d3a7ae5cc79938359d41d46c40149daa2
BLAKE2b-256 checksum
How to use checksums
d662816b5741eb0fd16e76926515998ac0466f62cdc5e43b78469a8c0abe441b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page