🚧 WIP
This commit is contained in:
+79
-41
@@ -2,7 +2,7 @@
|
||||
|
||||
## Service Specification
|
||||
|
||||
**Status:** Initial specification
|
||||
**Status:** Initial specification, revised 2026-09-15 (MVP split into three releases)
|
||||
**Target deployment:** Docker Compose / Portainer Stack
|
||||
**Primary broker:** Eclipse Mosquitto 2.1.x
|
||||
**Architecture:** Mosquitto + custom backend + custom frontend + PostgreSQL
|
||||
@@ -2134,14 +2134,18 @@ Generated configuration and secrets shall not be stored in Git.
|
||||
|
||||
---
|
||||
|
||||
# 68. MVP scope
|
||||
# 68. MVP scope and release plan
|
||||
|
||||
The first functional release should include:
|
||||
The original single "first release" list contained roughly 25 sub-systems and is not achievable as one release. The MVP is therefore split into three releases. Each release is independently deployable and useful, and each builds on the previous one.
|
||||
|
||||
## 68.1 Release 1 — Core broker administration
|
||||
|
||||
Goal: deliver the original core requirement — a web-managed Mosquitto broker with client authentication and authorization, including ACLs, without touching files on the host.
|
||||
|
||||
```text
|
||||
Docker Compose stack
|
||||
|
||||
Mosquitto 2.1.x
|
||||
Mosquitto 2.1.x (pinned)
|
||||
|
||||
PostgreSQL
|
||||
|
||||
@@ -2149,60 +2153,94 @@ FastAPI backend
|
||||
|
||||
React frontend
|
||||
|
||||
Management authentication
|
||||
Management authentication (sessions, Argon2id, ADMIN_INITIAL_* bootstrap)
|
||||
|
||||
Management RBAC
|
||||
Management RBAC (core roles)
|
||||
|
||||
Dynamic Security integration
|
||||
Dynamic Security integration (backend as MQTT admin client)
|
||||
|
||||
MQTT clients
|
||||
MQTT clients (create/disable/enable/delete, password reset, random passwords)
|
||||
|
||||
Groups
|
||||
|
||||
Roles
|
||||
|
||||
ACL editor
|
||||
ACL editor (all six ACL types, %u/%c patterns, priorities)
|
||||
|
||||
ACL simulator
|
||||
|
||||
CA creation
|
||||
|
||||
Server certificates
|
||||
|
||||
Client certificates
|
||||
|
||||
CSR signing
|
||||
|
||||
Certificate revocation
|
||||
|
||||
CRL
|
||||
|
||||
Broker configuration editor
|
||||
Broker configuration editor (basic + advanced mode)
|
||||
|
||||
Listener configuration
|
||||
|
||||
Configuration validation
|
||||
Configuration validation (--test-config)
|
||||
|
||||
Configuration revisioning
|
||||
|
||||
Configuration deployment
|
||||
|
||||
Broker reload
|
||||
|
||||
Dashboard
|
||||
|
||||
$SYS monitoring
|
||||
|
||||
Audit logging
|
||||
|
||||
Backup/restore
|
||||
Configuration generation from the PostgreSQL model
|
||||
```
|
||||
|
||||
Release 1 delivers a secure default broker configuration and removes the need to edit
|
||||
`mosquitto.conf`, the Dynamic Security JSON, or password files manually.
|
||||
|
||||
## 68.2 Release 2 — PKI, versioning, and controlled change
|
||||
|
||||
Goal: make TLS/mTLS and broker configuration changes safe and auditable.
|
||||
|
||||
```text
|
||||
CA creation (internal CA, import CA)
|
||||
|
||||
Server certificate generation (CN, SANs, key algorithm/length)
|
||||
|
||||
Client certificates (managed-key mode, one-time download)
|
||||
|
||||
CSR signing
|
||||
|
||||
Certificate revocation and CRL generation/publishing
|
||||
|
||||
mTLS listeners (require_certificate, use_identity_as_username)
|
||||
|
||||
Configuration revisions (history, diff)
|
||||
|
||||
Configuration deployment with health check
|
||||
|
||||
Broker reload (mosquitto_signal / SIGHUP), reload-vs-restart classification
|
||||
|
||||
Configuration rollback (rollback creates a new revision)
|
||||
|
||||
mosquitto-control service (validate, activate, signal, health check)
|
||||
```
|
||||
|
||||
## 68.3 Release 3 — Operations, safety, and visibility
|
||||
|
||||
Goal: make the platform usable for daily operation and secure change management.
|
||||
|
||||
```text
|
||||
ACL simulator (with parity tests against real broker decisions)
|
||||
|
||||
Dashboard ($SYS monitoring, broker status)
|
||||
|
||||
Certificate expiry monitoring and dashboard warnings
|
||||
|
||||
Audit logging (all privileged actions)
|
||||
|
||||
Backup and restore (logical backup, encrypted)
|
||||
|
||||
Configuration drift detection
|
||||
|
||||
Client metadata/tags (owner, purpose, last known connection)
|
||||
|
||||
Connected-client view (where available)
|
||||
```
|
||||
|
||||
## 68.4 Post-MVP
|
||||
|
||||
Topic explorer, MQTT test client, connection tester, client provisioning wizard,
|
||||
bridge configuration, retained-message administration, Prometheus metrics, external
|
||||
notifications, and the approval workflow remain post-MVP features as previously
|
||||
planned (see sections 69 and 70).
|
||||
|
||||
---
|
||||
|
||||
# 69. Phase 2
|
||||
# 69. Post-MVP: Phase 2
|
||||
|
||||
The second phase should add:
|
||||
After the three MVP releases (section 68) are complete, the next phase should add:
|
||||
|
||||
```text
|
||||
Topic explorer
|
||||
@@ -2221,7 +2259,7 @@ External notification mechanisms
|
||||
|
||||
---
|
||||
|
||||
# 70. Phase 3
|
||||
# 70. Post-MVP: Phase 3
|
||||
|
||||
Potential advanced functionality:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user