BPMkitStand
Свободный диспетчер стендов BPMSoft. Локальный веб-дашборд для запуска, остановки и мониторинга ваших стендов — в один клик, без консоли.
Что это
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, аудит без утечки секретов.
Документация проекта
- docs/ROADMAP.md — дорожная карта приложения (что сделано / ближайшее / бэклог).
- docs/CHANGELOG.md — история изменений по версиям.
- docs/BACKLOG.md — честный список «упомянуто в коде, но не реализовано» (заделы/заглушки) со ссылками на код.
- docs/ARCHITECTURE.md · docs/HOSTING.md · docs/REMOTE_STANDS.md · SECURITY.md
- Решения (ADR): 0001 — hosting backends · 0002 — k8s backend · 0003 — браузинг логов удалённых стендов (предложено) · 0004 — IIS: жизненный цикл по Site
Статус:
standkit— молодой проект (0.5.x). Ядро/агент/хаб работоспособны, но ряд возможностей — это каркас/заделы (например, глубокие пробы БД/Redis, транспорты ssh/winrm, живая приёмка Docker/k8s/IIS). Что именно ещё не дописано — прозрачно перечислено в docs/BACKLOG.md.
BPMkitStand и Companion
Бесплатная версия — полноценный диспетчер стендов. Companion-версия дополнительно даёт автообновление MCP BPMkit и контроль лицензии; поставляется в составе установщика MCP-клиента. Подробнее — на bpmkit.pro.
Лицензия
MIT © Владимир Терновский
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c658863306cc4105b4bc5d90a83b8e3f6c0c7ea88c6a408b79d93c4c5a6cd10c
|
|
| MD5 |
3b4753f6b776bd771896c7bb46736734
|
|
| BLAKE2b-256 |
e9cd33392e3b7f09da6d52a0a09b2cccbbb2922d0fcebcd307f44b9fe758af75
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ced674c634ecb1854c5704bbec0da91d04fb11cd03fcda94ac314927bf4ee2f
|
|
| MD5 |
65b97931decf417c93fadd4213789dd9
|
|
| BLAKE2b-256 |
aa23278bfb2ba4b1ef260579e1c56754ed884d2557303b80c28ab88d6f30436f
|