Skip to main content
BPMkit

BPMkitStand

Свободный диспетчер стендов BPMSoft. Локальный веб-дашборд для запуска, остановки и мониторинга ваших стендов — в один клик, без консоли.

License: MIT Python 3.10+ Platform

Сайт · Telegram · Companion-версия


Что это

BPMkitStand — бесплатный инструмент экосистемы BPMkit для управления локальными и удалёнными стендами BPMSoft. Открывает лёгкий локальный веб-дашборд в браузере: видно состояние каждого стенда, его можно запустить/остановить/перезапустить, посмотреть логи текущей сессии и очистить Redis — всё без ручных команд в PowerShell.

Ядро (standkit) написано на чистой стандартной библиотеке Python — без тяжёлых зависимостей, работает на Windows и Linux.

Возможности

  • Диспетчер стендов — список из общего реестра BPMkit (projects.json), состояние в реальном времени.
  • Жизненный цикл — старт / стоп / рестарт стенда с честной обратной связью (спиннер до готовности, без ложных «не поднялся» на прогреве).
  • Логи — просмотр логов текущей сессии стенда, открытие папки логов стенда и папки BPMkit-проекта.
  • Redis — очистка кэша стенда (номер БД берётся из конфигурации стенда).
  • Тёмная и светлая тема с переключателем.
  • Встроенная справка — кнопка «?» в шапке открывает кукбук: установка, работа с дашбордом, удалённые агенты, траблшутинг. Один самодостаточный файл, работает офлайн.
  • Безопасность по умолчанию — дашборд слушает только 127.0.0.1, сессионный токен, защита мутаций (CSRF + проверка Origin).
  • Удалённые стенды (в развитии) — через лёгкие кроссплатформенные headless-агенты с TLS/mTLS.
  • Канал обновлений (редакция Companion) — вкладка «Обновления»: паттерны разработки, обновление MCP с проверкой подписи и откатом, список отзыва лицензий.

Скриншоты

Диспетчер (светлая тема) Диспетчер (тёмная тема)
Диспетчер стендов BPMkit, светлая тема Диспетчер стендов BPMkit, тёмная тема
Модальное окно «О программе»

Как это работает

BPMkitStand состоит из ядра, двух оболочек и канала обновлений:

  • standkit — ядро (MIT) на чистой стандартной библиотеке Python: движок жизненного цикла над реестром projects.json (старт/стоп/рестарт процесса стенда), health-пробы (процесс / HTTP / порт БД / порт Redis), tail лога, Secret-first доступ к секретам. Без веб-слоя и сетевых зависимостей — можно использовать и как библиотеку/CLI.
  • standkit_hub — локальный веб-дашборд (то, что видно на скриншотах). Сам себя отдаёт по HTTP через stdlib http.server (vanilla JS/CSS, без CDN и сборки) и открывается в системном браузере; опционально — в нативном окне (standkit[desktop], --desktop). Устанавливается только на машину оператора.
  • standkit_agent — лёгкий headless-демон на хосте удалённого стенда (см. ниже).
  • standkit_companion — транспорт канала обновлений издателя (см. ниже). Хаб импортирует его мягко: пакета нет — дашборд работает как обычно, в свободной редакции.

Диспетчер — федеративный клиент: он собирает в один список и локальные стенды (управляет ими напрямую через ядро), и удалённые (ходит к их агентам по HTTP). В таблице колонка «Транспорт» показывает, как дашборд дотягивается до стенда: local или agent.

Реестр стендов — единый с MCP BPMkit: один projects.json (стенды под ключом projects), путь резолвится через BPMSOFT_PROJECTS_FILE%APPDATA%\BPMkit\projects.json (~/.config/BPMkit/... на Linux) → ./projects.json. Секреты (пароли БД, токены агентов) в реестре не хранятся — только ссылки на них (Secret-first).

Запуск стенда честный: дашборд поднимает dotnet <stand_dll> и держит спиннер до реального ответа web-хоста по HTTP, а не рапортует «запущено» по факту создания процесса.

Виды хостинга (kestrel/iis/docker) — см. docs/HOSTING.md.

Удалённые стенды

Стенды на других хостах (виртуалки, серверы, контуры заказчика) управляются через федерацию лёгких кроссплатформенных агентов (standkit_agent, Windows/Linux, только stdlib). На хосте стенда поднимается агент, дашборд оператора ходит к нему по HTTPS с Bearer-токеном; стенд объявляется удалённым одним полем transport: "agent" в реестре. Агент — RCE-поверхность по дизайну, поэтому защищён secure-defaults: loopback по умолчанию, fail-closed на non-loopback без TLS, TLS 1.2+/mTLS, скоупы control/readonly, lockout по IP, аудит.

Полное описание, установка агента, TLS/mTLS, служба и траблшутинг — в docs/REMOTE_STANDS.md.

Установка

Нужен Python 3.10+.

pip install standkit

Обновление — pip install -U standkit. Конкретная версия (в том числе откат) — pip install "standkit==0.6.1"; полный список выпусков — на PyPI.

Запуск дашборда:

standkit-hub

Откроется браузер с локальным дашбордом. Реестр стендов берётся из %APPDATA%\BPMkit\projects.json (или из переменной окружения BPMSOFT_PROJECTS_FILE).

Реестр стендов

BPMkitStand использует тот же реестр, что и MCP BPMkit — единый projects.json. Образец формата — projects.sample.json. Стенд можно зарегистрировать прямо из дашборда (кнопка «Зарегистрировать стенд»).

Канал обновлений

Вкладка «Обновления» в дашборде — канал доставки от издателя BPMkit: паттерны разработки, обновления самого MCP и список отозванных лицензий. В репозитории живёт транспорт (пакет standkit_companion, stdlib-only: HTTP-клиент, планировщик трёх циклов, проверка целостности и подписи Ed25519, раскладка файлов, откат). Лицензия, содержимое паттернов и подписанные бинари — на стороне издателя, поэтому без лицензионного ключа канал ничего не делает и честно об этом сообщает.

Редакция определяется наличием пакета: нет standkit_companion рядом — вкладка говорит «свободная редакция», управление стендами работает как работало. Главный рубильник — companion.enabled в настройках диспетчера; интервалы и циклы включаются там же («Настройки» → «Канал обновлений»).

Два правила, которые канал не нарушает: бинарь MCP не подменяется без вашей команды (автоматика доходит максимум до скачивания в отдельный каталог) и обновление не применяется без подтверждённой подписи — это не отключается настройкой.

То же самое из консоли, когда дашборд под рукой не нужен:

python -m standkit_companion status          # состояние канала (плюс --json)
python -m standkit_companion sync            # синхронизировать паттерны
python -m standkit_companion check-update    # проверить обновление MCP (не качая файл)
python -m standkit_companion stage-update    # скачать и проверить, не применяя
python -m standkit_companion apply-update    # применить подготовленное
python -m standkit_companion rollback        # вернуть предыдущую версию

Подробности — в кукбуке, раздел «Канал обновлений» (что приезжает, чем различаются три цикла, где лежат файлы, таблица диагностик). Почему транспорт живёт в MIT-ядре и чего модуль не делает никогда — docs/adr/0005-companion-transport-in-mit-core.md.

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

Диспетчер и агент проектировались с расчётом на прод-контур. Модель угроз, харденинг и чек-лист — в SECURITY.md. Кратко: fail-closed bind на loopback, TLS 1.2+/mTLS для агента, скоупы токена, per-IP lockout, аудит без утечки секретов. Канал обновлений разобран там же отдельным разделом (§4.2): fail-closed подпись исполняемого артефакта, публичный ключ из поставки, запись только в пользовательские каталоги.

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

Карта всех документов — docs/README.md: кому, о чём и когда открывать. Коротко:

Документ Для кого
Кукбук — обзор, установка, дашборд, реестр, хостинг, агент, безопасность, траблшутинг. Один standalone-файл: в работающем диспетчере открывается кнопкой «?» в шапке, без него — прямо с диска в браузере оператор
docs/COOKBOOK_LINUX.md — пошаговое развёртывание агента на Linux: pipx/venv, реестр, секреты, systemd, TLS/mTLS, разбор типичных ошибок с реальными сообщениями администратор
docs/REMOTE_STANDS.md · docs/HOSTING.md · SECURITY.md оператор / администратор
docs/ARCHITECTURE.md · docs/adr/ · docs/CHANGELOG.md разработчик
docs/ROADMAP.md — крупные работы · docs/BACKLOG.md — заглушки и заделы в коде · docs/GAPs/ — код прав, а сценарий оператора ломается планирование

Статус: standkit — молодой проект (0.9.x). Ядро/агент/хаб работоспособны, но ряд возможностей — это каркас/заделы (например, глубокие пробы БД/Redis, транспорты ssh/winrm, живая приёмка Docker/k8s/IIS). Что именно ещё не дописано — прозрачно перечислено в docs/BACKLOG.md.

BPMkitStand и Companion

Бесплатная версия — полноценный диспетчер стендов. Companion-версия дополнительно даёт канал обновлений: паттерны разработки, автообновление MCP BPMkit и контроль лицензии; поставляется в составе установщика MCP-клиента. Код транспорта канала лежит в этом репозитории под MIT (см. раздел «Канал обновлений» выше) — платное здесь то, что канал доставляет: лицензия, содержимое паттернов и подписанные бинари. Подробнее — на bpmkit.pro.

Лицензия

MIT © Владимир Терновский


Часть экосистемы BPMkit — AI-ассистента для разработки на BPMSoft.

Release files for standkit 0.12.1

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

Source distribution (sdist)

Source distribution for standkit 0.12.1
File Size Uploaded
standkit-0.12.1.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for standkit 0.12.1
File Interpreter ABI Platform
standkit-0.12.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.9 MB

Release files / standkit-0.12.1.tar.gz

Download URL standkit-0.12.1.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
611b4c3ab4472d39563b141d0cef1936d4628759be3bc378f27731de69485728
BLAKE2b-256 checksum
How to use checksums
cd904deed1229499c95378fda65eadee150f0000654aaa669ae45c2e64f53958
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.0

Release files / standkit-0.12.1-py3-none-any.whl

Download URL standkit-0.12.1-py3-none-any.whl
Size 773.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ff700f2234fc72e98faaa9d322709041e25be1a81c76aa4a32ae6f6ff27989cb
BLAKE2b-256 checksum
How to use checksums
39e56846c5559b062f049fbd1d5afd6d256ecb04197ac6b69513e7779a76801d
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

0.12.8

2 release files

0.12.5

2 release files

0.12.4

2 release files

0.12.3

2 release files

0.12.2

2 release files

This release

0.12.1 This release

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.3.7

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