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.

Скриншоты

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

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

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-демон на хосте удалённого стенда (см. ниже).

Дашборд — федеративный клиент: он собирает в один список и локальные стенды (управляет ими напрямую через ядро), и удалённые (ходит к их агентам по 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 "git+https://github.com/thinkquattro/BPMkitStand.git"

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

standkit-hub

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

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

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

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

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

BPMkitStand и Companion

Бесплатная версия — полноценный диспетчер стендов. Companion-версия дополнительно даёт автообновление MCP BPMkit и контроль лицензии; поставляется в составе установщика MCP-клиента. Подробнее — на bpmkit.pro.

Лицензия

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


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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

standkit-0.5.2.tar.gz (219.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

standkit-0.5.2-py3-none-any.whl (176.6 kB view details)

Uploaded Python 3

File details

Details for the file standkit-0.5.2.tar.gz.

File metadata

  • Download URL: standkit-0.5.2.tar.gz
  • Upload date:
  • Size: 219.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for standkit-0.5.2.tar.gz
Algorithm Hash digest
SHA256 85b4f34de1c1efa6de4a1911fc1acf2a69d6cf6bdb07e6b3721da3dea528f326
MD5 7f2d89d563b2a7f877ae29886675c1bb
BLAKE2b-256 3506cb7b88bc424ae27c155370fe586849b936ddaa7c501f88d0e85bb0a569f5

See more details on using hashes here.

File details

Details for the file standkit-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: standkit-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 176.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for standkit-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3b4942febf383d3e2f0fd8ab6db6e8c2c438df189e93d75ffe698908e1be3db6
MD5 1c4b1a9178527d33591a95710a5982cf
BLAKE2b-256 b1e5db87005702b17d8176b71eef7b6b27b15019684c6e19211c0aeffb9e3d23

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page