Skip to content

Feature user management#3119

Open
benderl wants to merge 151 commits intomasterfrom
feature-user-management
Open

Feature user management#3119
benderl wants to merge 151 commits intomasterfrom
feature-user-management

Conversation

@benderl
Copy link
Contributor

@benderl benderl commented Jan 29, 2026

No description provided.

@benderl benderl added this to the 2.2.0 - Step 1 milestone Jan 29, 2026
@benderl benderl self-assigned this Jan 29, 2026
@benderl benderl added enhancement New feature or request ui depends on changes in ui repository labels Jan 29, 2026
@benderl benderl force-pushed the feature-user-management branch 9 times, most recently from 3ec040b to 73c2a57 Compare February 5, 2026 09:25
@benderl benderl force-pushed the feature-user-management branch 5 times, most recently from bff3ef3 to 9702c97 Compare February 10, 2026 08:24
@benderl benderl force-pushed the feature-user-management branch 3 times, most recently from 86f2069 to 810dc79 Compare February 17, 2026 08:44
@benderl benderl force-pushed the feature-user-management branch 9 times, most recently from 3aa5e14 to 7cedb44 Compare February 25, 2026 08:18
@benderl benderl force-pushed the feature-user-management branch 2 times, most recently from e35e4ed to 3216b5c Compare February 26, 2026 08:25
@benderl benderl marked this pull request as ready for review February 26, 2026 10:40
@benderl benderl force-pushed the feature-user-management branch from 3216b5c to 52002ef Compare February 26, 2026 15:15
@benderl
Copy link
Contributor Author

benderl commented Feb 26, 2026

@copilot
start review and ignore files in:

  • packages/modules/display_themes/*/web/
  • packages/modules/web_themes/*/web/
  • web/settings/

@benderl benderl requested a review from Copilot February 26, 2026 15:22
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds user-management support across openWB themes and backend by introducing security topics/ACL roles, UI login/logout indicators, and updated broker/proxy configuration for authenticated websocket access.

Changes:

  • Add UI login/logout indicators and access-gated navigation/rendering in Koala web theme and Cards display theme.
  • Introduce Mosquitto dynamic-security ACL role management (templates + runtime syncing) and new security-related retained topics/defaults.
  • Update Mosquitto/Apache configs and dev proxies (move local WS proxy to :9003, introduce :1884 local bridge listener).

Reviewed changes

Copilot reviewed 128 out of 803 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
packages/modules/web_themes/koala/web/assets/ErrorNotFound-tIOuIigQ.js Built asset removed (hash update).
packages/modules/web_themes/koala/web/assets/ErrorNotFound-BDu5JtXR.js Built asset added (hash update).
packages/modules/web_themes/koala/source/src/stores/mqtt-store-model.ts Adds SystemCommandEvent; loosens ValueObject.value typing.
packages/modules/web_themes/koala/source/src/stores/index.ts Adds Pinia router plugin hook.
packages/modules/web_themes/koala/source/src/pages/IndexPage.vue Gates battery tab by access/availability.
packages/modules/web_themes/koala/source/src/layouts/MainLayout.vue Adds user indicator + access-gated drawer items.
packages/modules/web_themes/koala/source/src/components/models/daily-totals-model.ts Makes multiple daily-totals fields optional.
packages/modules/web_themes/koala/source/src/components/charts/historyChart/history-chart-model.ts Formatting/type layout change for dataset type.
packages/modules/web_themes/koala/source/src/components/charts/historyChart/HistoryChart.vue Filters datasets when labels/values missing.
packages/modules/web_themes/koala/source/src/components/charts/energyFlowChart/EnergyFlowChart.vue Avoids rendering grid/home components when values missing.
packages/modules/web_themes/koala/source/src/components/charts/dailyTotals/DailyTotalsRow.vue Guards rendering against missing power/today data; renames props.
packages/modules/web_themes/koala/source/src/components/charts/dailyTotals/DailyTotals.vue Adds conditional grid/home/chargepoint rendering + expanded state map.
packages/modules/web_themes/koala/source/src/components/UserIndicator.vue New Koala login/logout + password reset UI using cookies/system commands.
packages/modules/web_themes/koala/source/src/components/ManualSocDialog.vue Adjusts prop typing + manual SoC access.
packages/modules/web_themes/koala/source/quasar.config.ts Updates WS proxy and enables Cookies plugin.
packages/modules/web_themes/koala/source/package.json Script ordering change.
packages/modules/web_themes/koala/config.py Adds userManagementSupported flag.
packages/modules/web_themes/colors/config.py Adds official + userManagementSupported.
packages/modules/display_themes/colors/config.py Adds userManagementSupported.
packages/modules/display_themes/cards/web/index.html Updates built asset references.
packages/modules/display_themes/cards/web/assets/index-CSPDhfRG.css Built asset removed (hash update).
packages/modules/display_themes/cards/web/assets/index-BPh4QbTl.css Built asset added (hash update).
packages/modules/display_themes/cards/web/assets/StatusView-DyRCMuMa.js Built asset removed (hash update).
packages/modules/display_themes/cards/web/assets/StatusView-BCJE8foI.js Built asset added (hash update).
packages/modules/display_themes/cards/web/assets/EnergyFlowView-eMIuzBHg.js Built asset removed (hash update).
packages/modules/display_themes/cards/web/assets/EnergyFlowView-Bts5x4gm.js Built asset added (hash update).
packages/modules/display_themes/cards/web/assets/EnergyFlowView-DxoXneQ5.css Built asset removed (hash update).
packages/modules/display_themes/cards/web/assets/EnergyFlowView-DZYEiDRA.css Built asset added (hash update).
packages/modules/display_themes/cards/web/assets/DashboardView-QM7fZc3o.js Built asset added (hash update).
packages/modules/display_themes/cards/web/assets/DashboardView-DyLnJEUu.js Built asset removed (hash update).
packages/modules/display_themes/cards/web/assets/DashboardView-BY6vqdxu.css Built CSS scope-id update.
packages/modules/display_themes/cards/web/assets/DashboardCard-DS7AgUYm.js Built asset removed (hash update).
packages/modules/display_themes/cards/web/assets/DashboardCard-DLhWU61X.js Built asset added (hash update).
packages/modules/display_themes/cards/web/assets/DashboardCard-Cy_vzq6d.css Built asset removed (hash update).
packages/modules/display_themes/cards/web/assets/DashboardCard-B-II5etE.css Built asset added (hash update).
packages/modules/display_themes/cards/web/assets/ChargePointsView-C87pv3AK.css Built asset removed (hash update).
packages/modules/display_themes/cards/web/assets/ChargePointsView-3NMKIbkE.css Built asset added (hash update).
packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-HkTln673.js Built asset removed (hash update).
packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-BWqpAuQc.js Built asset added (hash update).
packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-HWp2u3dG.css Built asset removed (hash update).
packages/modules/display_themes/cards/web/assets/ChargePointPlugBadge-C9uUTXDh.css Built asset added (hash update).
packages/modules/display_themes/cards/web/assets/ChargeModeModal-DQYfhprg.js Built asset removed (hash update).
packages/modules/display_themes/cards/web/assets/ChargeModeModal-Dw7cgLgR.js Built asset added (hash update).
packages/modules/display_themes/cards/source/vite.config.js Updates dev WS proxy port.
packages/modules/display_themes/cards/source/src/views/WelcomeView.vue Prevents auto-redirect when access is denied; shows “Bitte anmelden.”
packages/modules/display_themes/cards/source/src/stores/mqtt.js Adds access_allowed getter + filters chargepoints by accessible config.
packages/modules/display_themes/cards/source/src/main.scss Adjusts Inkline import paths.
packages/modules/display_themes/cards/source/src/main.js Adds vue-cookies plugin configuration.
packages/modules/display_themes/cards/source/src/components/UserIndicator.vue New Cards user indicator (cookie-based login/logout).
packages/modules/display_themes/cards/source/src/components/NavBar.vue Hides navbar when access denied.
packages/modules/display_themes/cards/source/src/components/DashboardCard.vue Adjusts Inkline import paths.
packages/modules/display_themes/cards/source/src/components/Dashboard/HomeCard.vue Hides card if home power value missing.
packages/modules/display_themes/cards/source/src/components/Dashboard/GridCard.vue Hides card if grid power value missing.
packages/modules/display_themes/cards/source/src/components/Dashboard/FlowCard.vue Avoids rendering grid/home and chargepoint-sum when values missing.
packages/modules/display_themes/cards/source/src/components/Dashboard/ChargePointsCard.vue Shows single CP or sum if available; uses object power text.
packages/modules/display_themes/cards/source/src/components/ChargePoints/VehicleSelectModal.vue Refactors vehicle list building based on vehicle info topics.
packages/modules/display_themes/cards/source/src/App.vue Adds MQTT v5 connection props + cookie-based mqtt credentials; adds indicator.
packages/modules/display_themes/cards/source/package.json Dependency updates incl. router/cookies.
packages/modules/display_themes/cards/config.py Adds userManagementSupported flag.
packages/main.py Runs ACL role verification at start when user management enabled.
packages/helpermodules/update_config.py Bumps datastore + adds security/access topics + migration for theme flags.
packages/helpermodules/system.py Adds security.user_management_active default in system data.
packages/helpermodules/subdata.py Subscribes to security topics; updates ACL roles/users based on config changes.
packages/helpermodules/setdata.py Validates new topics + enforces command/topic alignment under user management.
packages/helpermodules/mosquitto_dynsec/user_handler.py New dynamic-security user management utilities (display users, creds files).
packages/helpermodules/mosquitto_dynsec/role_handler.py New dynamic-security role template + ACL update logic.
packages/helpermodules/mosquitto_dynsec/mosquitto_dynsec.py New user-management bootstrap + password reset token flow.
packages/helpermodules/command.py Adds ACL role maintenance on entity add/remove + password reset commands.
packages/control/general.py Adds allow_unencrypted_access configuration field.
packages/auth_service/auth-frontend/tsconfig.json New Quasar auth-frontend tsconfig.
packages/auth_service/auth-frontend/src/router/routes.ts New auth-frontend routes (login/logout).
packages/auth_service/auth-frontend/src/router/index.ts New auth-frontend router bootstrap.
packages/auth_service/auth-frontend/src/pages/LogoutPage.vue New logout view (clears cookie client-side).
packages/auth_service/auth-frontend/src/pages/LoginPage.vue New login view (POST /auth/login).
packages/auth_service/auth-frontend/src/pages/IndexPage.vue New placeholder home page.
packages/auth_service/auth-frontend/src/pages/ErrorNotFound.vue New 404 page.
packages/auth_service/auth-frontend/src/layouts/MainLayout.vue New layout with theme toggle.
packages/auth_service/auth-frontend/src/css/quasar.variables.scss New Quasar variables.
packages/auth_service/auth-frontend/src/css/app.scss New global SCSS.
packages/auth_service/auth-frontend/src/components/models.ts New example typings.
packages/auth_service/auth-frontend/src/components/EssentialLink.vue New component template.
packages/auth_service/auth-frontend/src/boot/axios.ts New axios boot with /auth baseURL.
packages/auth_service/auth-frontend/src/App.vue New root with router-view.
packages/auth_service/auth-frontend/quasar.config.ts New Quasar app config.
packages/auth_service/auth-frontend/postcss.config.js New PostCSS config.
packages/auth_service/auth-frontend/package.json New auth-frontend package manifest.
packages/auth_service/auth-frontend/index.html New Quasar index.html.
packages/auth_service/auth-frontend/eslint.config.js New ESLint flat config.
packages/auth_service/auth-frontend/README.md New auth-frontend README.
packages/auth_service/auth-frontend/.vscode/settings.json New editor settings.
packages/auth_service/auth-frontend/.vscode/extensions.json New extension recommendations.
packages/auth_service/auth-frontend/.prettierrc.json New Prettier configuration.
packages/auth_service/auth-frontend/.npmrc New npm config.
packages/auth_service/auth-frontend/.gitignore New gitignore.
packages/auth_service/auth-frontend/.editorconfig New editorconfig.
openwb-install.sh Installs new Mosquitto public/local config layout + updated service messaging.
data/config/simpleAPI_mqtt_config.json Switches simpleAPI to port 1884 + adds validate_cert.
data/config/openwbAuthServer.service New (commented) systemd service for auth server.
data/config/mosquitto/public/role-templates.json New role templates for per-entity ACLs.
data/config/mosquitto/public/openwb.conf New local bridge listener config (1884).
data/config/mosquitto/public/openwb-user-management.conf New dynsec-enabled listener set.
data/config/mosquitto/public/openwb-unsecure-acl.conf New unsecure listeners separate config.
data/config/mosquitto/public/openwb-default-acl.conf New secure listeners separate config.
data/config/mosquitto/public/mosquitto_ctrl New mosquitto_ctrl config (admin creds).
data/config/mosquitto/public/mosquitto.conf New Mosquitto base config (per-listener settings).
data/config/mosquitto/public/mosquitto.acl Updates ACL rules (simpleAPI read/write split).
data/config/mosquitto/openwb.conf Removes old combined listener config.
data/config/mosquitto/mosquitto.conf Removes old base mosquitto.conf.
data/config/mosquitto/local/mosquitto_local.conf Removes obsolete comments.
data/config/display/lxdeautostart Updates kiosk URL + allows insecure localhost + ignores cert errors.
data/config/apache/localhost.conf New local-only Apache vhost proxying WS to 9003.
data/config/apache/apache-redirect-ssl.conf New HTTP->HTTPS redirect vhost.
data/config/apache/apache-openwb-ssl.conf Updates WS proxying to 9003 and adds placeholder auth proxy block.
data/config/apache/000-default.conf Updates WS proxying to 9003.
data/clients/.htaccess Denies access to stored client credential JSON files.
data/clients/.gitignore Ignores generated credential JSON files.
.htaccess Blocks serving .sh files via Apache.
Files not reviewed (1)
  • packages/modules/web_themes/koala/source/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@benderl benderl force-pushed the feature-user-management branch 2 times, most recently from ec27783 to d8a0efe Compare February 27, 2026 06:48
@benderl benderl requested a review from Copilot February 27, 2026 06:51
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 128 out of 803 changed files in this pull request and generated 11 comments.

Files not reviewed (1)
  • packages/modules/web_themes/koala/source/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@benderl benderl force-pushed the feature-user-management branch 3 times, most recently from a94dacb to 041498b Compare February 27, 2026 08:16
@benderl benderl force-pushed the feature-user-management branch from 041498b to e6a50ab Compare February 27, 2026 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request ui depends on changes in ui repository

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants