Various improvements for usability and consistency and inclusion of PWA handling.

This commit is contained in:
2026-07-09 20:03:41 -05:00
parent 941ce78bfd
commit 0a400e3039
23 changed files with 439 additions and 133 deletions

View File

@@ -10,8 +10,9 @@ It provides basic "infrastructure" and "Framework" for specific developments.
- Eases updates by providing OTA update mechanism using update-server URL
- Role based User Management
- Standard Roles
- Sysadmin (Can administer the system, update, change settings)
- UserAdmin (Can administer user accounts)
- SystemAdmin (Can administer the system, update, change settings)
- AccessAdmin (Can administer user accounts, roles, and API access)
- NetworkAdmin (Can administer network settings)
- WebUIConnect (Allows logging in to the Web UI)
- Debugger (Allowed to use API Test UI in the Web UI)
- Secure, Role based Rest API for all functions
@@ -33,7 +34,7 @@ It provides basic "infrastructure" and "Framework" for specific developments.
- Users can be assigned zero or more roles
- Allows to interactively calling of the Rest APIs via the web UI
- The corresponding user token is preset with the current user's token by decfault, but it can be overwritten
- This functionality is only accessible when the user has the role Debugger
- This functionality is only accessible when the user has the role AccessAdmin
- Enables secrity configuration of the exposed API functions
- Configuration of logging
- log level
@@ -116,7 +117,7 @@ The firmware in `src/main.cpp` implements the boilerplate as a compact Arduino E
- Configurable API access control where each route can be `PUBLIC` or require one role.
- Public boilerplate APIs: ping, add, and LED brightness.
- LED brightness is persisted in non-volatile memory, applied on boot, and loaded into the Admin UI slider.
- User management with the standard roles `Sysadmin`, `UserAdmin`, `WebUIConnect`, and `Debugger`.
- User management with the standard roles `SystemAdmin`, `AccessAdmin`, `NetworkAdmin`, `WebUIConnect`, and `Debugger`.
- Custom role management. System roles are protected and cannot be deleted.
- Active/inactive user accounts with role checkboxes in the Admin UI.
- API security management through a list/detail UI with a role dropdown per API.
@@ -224,7 +225,7 @@ The Admin UI stores HTTPS certificate material so applications built on this boi
To configure the stored certificate material:
1. Log in as a user with the `Sysadmin` role.
1. Log in as a user with the `NetworkAdmin` role.
2. Open `Networking` -> `HTTPS Certificate`.
3. Select a certificate file and click `Save certificate`.
4. Use `Load current` to verify what is currently stored.
@@ -305,23 +306,26 @@ Protected APIs and their default roles:
| --- | --- |
| `POST /api/logout` | `WebUIConnect` |
| `GET /api/me` | `WebUIConnect` |
| `GET /api/apis` | `Sysadmin` |
| `POST /api/apis` | `Sysadmin` |
| `GET /api/users` | `UserAdmin` |
| `POST /api/users` | `UserAdmin` |
| `GET /api/apis` | `AccessAdmin` |
| `POST /api/apis` | `AccessAdmin` |
| `GET /api/users` | `AccessAdmin` |
| `POST /api/users` | `AccessAdmin` |
| `POST /api/password` | `WebUIConnect` |
| `GET /api/settings` | `Sysadmin` |
| `POST /api/settings` | `Sysadmin` |
| `GET /api/logs` | `Debugger` |
| `POST /api/logs/clear` | `Debugger` |
| `GET /api/files` | `Debugger` |
| `GET /api/files/download` | `Debugger` |
| `POST /api/factory-reset` | `Sysadmin` |
| `POST /api/ota/check` | `Sysadmin` |
| `POST /api/ota/run` | `Sysadmin` |
| `POST /api/update` | `Sysadmin` |
| `GET /api/cert` | `Sysadmin` |
| `POST /api/cert` | `Sysadmin` |
| `GET /api/settings` | `SystemAdmin` |
| `POST /api/settings` | `SystemAdmin` |
| `GET /api/network` | `NetworkAdmin` |
| `POST /api/network` | `NetworkAdmin` |
| `GET /api/logs` | `SystemAdmin` |
| `POST /api/logs/clear` | `SystemAdmin` |
| `GET /api/files` | `SystemAdmin` |
| `GET /api/files/download` | `SystemAdmin` |
| `POST /api/restart` | `SystemAdmin` |
| `POST /api/factory-reset` | `SystemAdmin` |
| `POST /api/ota/check` | `SystemAdmin` |
| `POST /api/ota/run` | `SystemAdmin` |
| `POST /api/update` | `SystemAdmin` |
| `GET /api/cert` | `NetworkAdmin` |
| `POST /api/cert` | `NetworkAdmin` |
Change API security: