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.0.tar.gz (300.5 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.0-py3-none-any.whl (232.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for standkit-0.6.0.tar.gz
Algorithm Hash digest
SHA256 c658863306cc4105b4bc5d90a83b8e3f6c0c7ea88c6a408b79d93c4c5a6cd10c
MD5 3b4753f6b776bd771896c7bb46736734
BLAKE2b-256 e9cd33392e3b7f09da6d52a0a09b2cccbbb2922d0fcebcd307f44b9fe758af75

See more details on using hashes here.

File details

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

File metadata

  • Download URL: standkit-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 232.3 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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ced674c634ecb1854c5704bbec0da91d04fb11cd03fcda94ac314927bf4ee2f
MD5 65b97931decf417c93fadd4213789dd9
BLAKE2b-256 aa23278bfb2ba4b1ef260579e1c56754ed884d2557303b80c28ab88d6f30436f

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