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

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.5
File Size Uploaded
standkit-0.12.5.tar.gz 1.2 MB Details

Built distribution (wheel)

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

Total release size: 2.0 MB

Release files / standkit-0.12.5.tar.gz

Download URL standkit-0.12.5.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
b97a4565684879caf554edc7f5582a088dd36cce6603e10c58e8355806e22f8e
BLAKE2b-256 checksum
How to use checksums
d579079db7ba81dd360c4145828d5dc2e00c20be8d428884d249f9e008bc925b
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.5-py3-none-any.whl

Download URL standkit-0.12.5-py3-none-any.whl
Size 794.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
88f8f2f177022e9cd39f905c15bd3546311cf89be0068875a633d9f6e0bb265b
BLAKE2b-256 checksum
How to use checksums
901f30edb0eac318fbd2dffc7c41c31aa37f5c88de3cfe335e26ce2716bbaa56
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

This release

0.12.5 This release

2 release files

0.12.4

2 release files

0.12.3

2 release files

0.12.2

2 release files

0.12.1

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