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.
Лицензия
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)
| File | Size | Uploaded | |
|---|---|---|---|
| python_rac-0.3.0.tar.gz | 326.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|