Skip to main content

python-rac

Клиент администрирования кластеров 1С через RAS. Говорит с сервером администрирования напрямую по TCP на Python: бинарный rac из платформы не нужен. Одна библиотека и четыре интерфейса.

Дистрибутив на PyPI называется python-rac, а в коде импортируется как pyrac (имя pyrac на PyPI принадлежит другому проекту).

Возможности

  • Протокол 16.0 (1С 8.5.1) — основной; узкий набор чтений для 10.0 (1С 8.3.11) и режим auto (только чтение).
  • Чтение кластеров, серверов, процессов, ИБ, сеансов, соединений, блокировок, профилей безопасности, счётчиков, ограничений, правил и настроек сервисов.
  • Защищённые изменения: каждое с повторным чтением и сверкой результата.
  • Интерфейсы: библиотека asyncio, CLI, веб-консоль, настольная консоль, MCP-сервер.
  • Несколько RAS в одной консоли (до 64).

Установка

Python 3.11+.

python -m pip install python-rac                 # библиотека, CLI, веб-консоль
python -m pip install 'python-rac[desktop]'      # + настольная консоль (PySide6)
python -m pip install 'python-rac[mcp]'          # + MCP-сервер

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

Библиотека

import asyncio
from pyrac import RacClient

async def main():
    async with RacClient('127.0.0.1', 1545) as rac:
        print(await rac.list_clusters())

asyncio.run(main())

CLI — команды как у rac

pyrac --ras-host=127.0.0.1 cluster list
pyrac --ras-host=127.0.0.1 infobase --cluster=UUID summary list

Веб-консоль (Vue SPA, Node.js не нужен)

pyrac-web --ras-host=127.0.0.1        # http://127.0.0.1:8080/

Настольная консоль

pyrac-desktop --ras-host=127.0.0.1

MCP-сервер (stdio)

pyrac-mcp --ras-host=127.0.0.1

Безопасность

  • Веб, desktop и MCP по умолчанию только читают. Каждое изменение включается отдельным флагом --allow-<операция> (36 операций в web и desktop, 82 флага в MCP).
  • Изменения возможны только по протоколу 16.0 (auto — только чтение), на любом RAS этого протокола, а в вебе — только на loopback.
  • Перед выполнением нужно ввести точную строку подтверждения (например, UUID объекта); успех засчитывается после повторного чтения состояния.
  • Пароли не вводятся и не хранятся; для аутентификации используются имена пользователей ОС (--agent-user, --cluster-user).
  • Исключение — CLI и библиотека: там нет флагов и подтверждений, команды изменяют RAS сразу. Проверяйте изменения на собственном изолированном стенде, а не на производственном кластере.
  • Покрытие команд rac неполное; многие операции проверены только на изолированном RAS 8.5.1, режим 10.0 — только тестами. Границы описаны в rac-command-coverage.md и protocol.md.

Документация

Документ О чём
docs/index.md Карта документации
docs/getting-started.md Установка и первый запуск
docs/library.md, docs/cli.md Библиотека и командная строка
docs/web.md, docs/desktop.md, docs/mcp.md Веб-консоль, настольная консоль, MCP
docs/operations.md Операции изменения и флаги --allow-*
docs/protocol.md, docs/rac-command-coverage.md Протоколы и покрытие команд
docs/architecture.md, docs/development.md Устройство и разработка
CHANGELOG.md История изменений

Разработка

python -m pip install -e '.[desktop,mcp]' pytest
python -m pytest tests/ -q          # для Qt: QT_QPA_PLATFORM=offscreen

Исходники интерфейса веб-консоли — в web-ui/ (см. web-ui/README.md). Выпуск на PyPI выполняется вручную: docs/pypi-release.md.

Лицензия

MIT

Metadata

Release files for python-rac 0.3.0

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

Source distribution (sdist)

Source distribution for python-rac 0.3.0
File Size Uploaded
python_rac-0.3.0.tar.gz 326.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-rac 0.3.0
File Interpreter ABI Platform
python_rac-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 590.8 kB

Release files / python_rac-0.3.0.tar.gz

Download URL python_rac-0.3.0.tar.gz
Size 326.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ca47d8aef367300e499fcb09dc1cf4ff4a824cc4212893feec35551483866b6d
BLAKE2b-256 checksum
How to use checksums
c80db90bb4cf66d76133e9fe2375a0b1003220812f9befa0c55b805b9f25c5bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Release files / python_rac-0.3.0-py3-none-any.whl

Download URL python_rac-0.3.0-py3-none-any.whl
Size 263.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2973f490a947517eb387c9ff0bdcfee5db5b8ce27c4226efdea10e516c4cb8d0
BLAKE2b-256 checksum
How to use checksums
0b3e3520800cbb26d5f9baa0837e899a83d64e8edfbe2d6da051f65f7ff9c343
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.17

Release history Release notifications | RSS feed

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.2.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