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, аудит без утечки секретов.

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

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

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.6.1.tar.gz (308.1 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.6.1-py3-none-any.whl (236.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for standkit-0.6.1.tar.gz
Algorithm Hash digest
SHA256 982bdbe62117dbecc8d4ef73407fc9b61a29f9fcb1c99cd0cf3c7aa7ade735f3
MD5 328cdb5f341e86359a1f125ca5f5ed02
BLAKE2b-256 42facf1063ded85a0334ed7cf89cf818c29adfe03c9561e4ad2724c829bad376

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for standkit-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 27905cb9705f366881642e9eef8010e13ae72c3e30bf45f7934a1ece049acb6c
MD5 a0846130564a21d84c6f8f9abafc8e55
BLAKE2b-256 debc0a7b81c6a66cab2e31e515f84d900c23d8c4bf4041312ab50174cc1b759a

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