iobroker.eos-admin 7.9.87-rc.3 → 7.9.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INSTALL_TEST_V7.9.89.md +73 -0
- package/NEXOWATT_EOS_BUILD_INFO.json +26 -30
- package/PUBLISH_STABLE_V7.9.89.md +33 -0
- package/README.md +13 -2
- package/README_STABILITY_V7.9.89.md +26 -0
- package/RELEASE_ACCEPTANCE_V7.9.89.md +40 -0
- package/admin/jsonConfig.json5 +34 -1
- package/adminWww/css/nexowatt-native-shell.css +622 -4
- package/adminWww/index.html +11 -10
- package/adminWww/js/eos-account-management.js +240 -0
- package/adminWww/js/eos-assistant.js +42 -22
- package/adminWww/js/eos-basic-settings.js +1 -1
- package/adminWww/js/eos-branding-sanitizer.js +1 -1
- package/adminWww/js/eos-native-security.js +1 -1
- package/adminWww/js/eos-policy-client.js +1 -1
- package/adminWww/js/eos-role-bootstrap.js +262 -7
- package/adminWww/js/eos-role-ui.js +147 -56
- package/adminWww/js/nexowatt-native-shell.js +30 -2
- package/build/lib/web.js +383 -2
- package/build/lib/web.js.map +1 -1
- package/build/main.js +165 -4
- package/build/main.js.map +1 -1
- package/io-package.json +32 -7
- package/package.json +20 -10
- package/tools/nexowatt-account-management-selftest.cjs +61 -0
- package/tools/nexowatt-internal-reserve-selftest.cjs +54 -0
- package/tools/nexowatt-modern-ui-selftest.cjs +48 -0
- package/tools/nexowatt-publish-channel-guard.cjs +15 -27
- package/tools/nexowatt-validate-package.cjs +37 -12
- package/INSTALL_TEST_V7.9.87_RC3.md +0 -85
- package/PUBLISH_RC_V7.9.87_RC3.md +0 -56
- package/README_STABILITY_V7.9.87_RC3.md +0 -90
- package/RELEASE_ACCEPTANCE_V7.9.87_RC3.md +0 -108
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Installation und Abnahme – NexoWatt EOS Admin 7.9.89
|
|
2
|
+
|
|
3
|
+
## Installation aus npm
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
cd /opt/iobroker
|
|
7
|
+
iobroker backup
|
|
8
|
+
iobroker stop eos-admin.0
|
|
9
|
+
npm install --no-save --omit=dev iobroker.eos-admin@7.9.89
|
|
10
|
+
iobroker upload eos-admin
|
|
11
|
+
iobroker restart eos-admin.0
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Portbelegung
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
iobroker set admin.0 --port 18081 --ip 127.0.0.1 --enabled false
|
|
18
|
+
iobroker set eos-admin.0 --port 8081 --ip 0.0.0.0 --enabled true
|
|
19
|
+
iobroker restart eos-admin.0
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Aufruf:
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
http://SYSTEM-IP:8081
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Pflichtabnahme
|
|
29
|
+
|
|
30
|
+
### Admin / Service
|
|
31
|
+
|
|
32
|
+
- Anmeldung mit dem fest eingerichteten Passwort.
|
|
33
|
+
- Kein erzwungener Erstkennwortdialog.
|
|
34
|
+
- Expertenmodus verfügbar.
|
|
35
|
+
- Interner Admin und System-Notfallsicherung sichtbar.
|
|
36
|
+
- Vollständige Zugangs- und Rechteverwaltung.
|
|
37
|
+
|
|
38
|
+
### Installateur
|
|
39
|
+
|
|
40
|
+
- Erste Aktivierung: Ebene **Installateur**, Benutzer `installer`, Passwort leer, danach persönliches Passwort setzen.
|
|
41
|
+
- Kein Expertenmodus.
|
|
42
|
+
- Inbetriebnahme, Module, Dienste, Datenpunkte und Diagnose erreichbar.
|
|
43
|
+
- **Zugänge & Rechte** erreichbar; nur Endkunden-Reset möglich.
|
|
44
|
+
- Interner Admin und interne BackItUp-Notfallreserve nicht sichtbar.
|
|
45
|
+
- NexoWatt Sicherung nutzbar, sofern installiert und freigegeben.
|
|
46
|
+
|
|
47
|
+
### Gast / Endkunde
|
|
48
|
+
|
|
49
|
+
- Erste Aktivierung: Ebene **Gast / Endkunde**, Benutzer `guest`, Passwort leer, danach persönliches Passwort setzen.
|
|
50
|
+
- Kein Expertenmodus.
|
|
51
|
+
- Freigegebenes Smart Home, Räume, Funktionen und Bedienoberflächen erreichbar.
|
|
52
|
+
- Keine technischen System-, Repository-, Zertifikats- oder Rohdiagnosebereiche.
|
|
53
|
+
- Interner Admin und interne BackItUp-Notfallreserve nicht sichtbar.
|
|
54
|
+
- NexoWatt Sicherung nutzbar, sofern freigegeben.
|
|
55
|
+
|
|
56
|
+
### Bedienoberfläche
|
|
57
|
+
|
|
58
|
+
- EOS Assist sitzt im Kopfbereich und überlappt keine Inhalte.
|
|
59
|
+
- Zugangsverwaltung erscheint nur unter **Zugänge & Rechte**.
|
|
60
|
+
- Startseite ist **Übersicht**, nicht Easy.
|
|
61
|
+
- Keine `permissionError`-Leerseite.
|
|
62
|
+
- Dialoge, Popups und Schließen-Schaltflächen funktionieren.
|
|
63
|
+
- Schreibbare Datenpunkte sind entsprechend Rolle bedienbar.
|
|
64
|
+
|
|
65
|
+
## Rückfall auf 7.9.86
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
cd /opt/iobroker
|
|
69
|
+
iobroker stop eos-admin.0
|
|
70
|
+
npm install --no-save --omit=dev iobroker.eos-admin@7.9.86
|
|
71
|
+
iobroker upload eos-admin
|
|
72
|
+
iobroker restart eos-admin.0
|
|
73
|
+
```
|
|
@@ -1,37 +1,33 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "7.9.
|
|
3
|
-
"channel": "
|
|
4
|
-
"baseFrontend": "validated
|
|
2
|
+
"version": "7.9.89",
|
|
3
|
+
"channel": "stable-latest",
|
|
4
|
+
"baseFrontend": "validated Admin 7 runtime with NexoWatt EOS role, login, overview and service-reserve hardening",
|
|
5
5
|
"runtimeEntry": "v84",
|
|
6
|
-
"releaseType": "product-role-
|
|
7
|
-
"release": "product-role-
|
|
8
|
-
"label": "
|
|
6
|
+
"releaseType": "stable-sales-product-role-login-overview-reserve-visibility",
|
|
7
|
+
"release": "stable-sales-product-role-login-overview-reserve-visibility",
|
|
8
|
+
"label": "v89",
|
|
9
9
|
"notes": [
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"Release candidates are publishable on npm under the rc dist-tag; the project .npmrc and publish guard prevent accidental latest publication.",
|
|
18
|
-
"Fresh EOS Admin instances use port 8081; the internal legacy admin is moved to the protected local port 18081 by the EOS security policy/installer sequence."
|
|
10
|
+
"7.9.89 is the accepted stable sales-product release and is intended for npm dist-tag latest.",
|
|
11
|
+
"Installer and Guest/End User perform their one-time passwordless activation inside the normal login card, then must create a personal password.",
|
|
12
|
+
"Admin/Service retains the configured password and is excluded from passwordless activation and role reset.",
|
|
13
|
+
"EOS Assist is integrated into the header and account management exists only under Zugänge & Rechte.",
|
|
14
|
+
"The current tab-intro overview is modernized; the Easy overview is not used.",
|
|
15
|
+
"The internal admin and BackItUp emergency reserve are restricted to Admin/Service; NexoWatt Backup remains available to approved roles.",
|
|
16
|
+
"EOS Admin defaults to port 8081; the internal legacy admin remains protected on 127.0.0.1:18081."
|
|
19
17
|
],
|
|
20
18
|
"changes": [
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"Keeps
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"Replaces the all-or-nothing prerelease publish blocker with an rc-channel guard and regression test.",
|
|
30
|
-
"Sets the EOS Admin product default port to 8081 and adds a regression test that rejects a return to 8091."
|
|
19
|
+
"Integrates role selection into the normal login card and removes the separate passwordless-first-login panel.",
|
|
20
|
+
"Moves EOS Assist into the top header and removes overlapping floating launchers.",
|
|
21
|
+
"Keeps account and password reset functions exclusively under Zugänge & Rechte.",
|
|
22
|
+
"Modernizes the current overview for Admin, Installer and Guest/End User without using Easy mode.",
|
|
23
|
+
"Restricts exact official admin and backitup adapter/instance visibility and control to Admin/Service at UI, socket and object ACL layers.",
|
|
24
|
+
"Keeps NexoWatt Backup visible and usable for approved installer and end-user roles.",
|
|
25
|
+
"Retains Admin/Service-only expert mode, service settings and security administration.",
|
|
26
|
+
"Publishes the final stable package through npm latest with exact version and package validation."
|
|
31
27
|
],
|
|
32
|
-
"brandingCacheVersion":
|
|
33
|
-
"shellCacheVersion":
|
|
34
|
-
"nativeShellVersion":
|
|
35
|
-
"shellCacheTag": "
|
|
36
|
-
"repositoryEntry": "nexowatt-eos-admin-repository-entry-
|
|
28
|
+
"brandingCacheVersion": 89,
|
|
29
|
+
"shellCacheVersion": 89,
|
|
30
|
+
"nativeShellVersion": 89,
|
|
31
|
+
"shellCacheTag": "89",
|
|
32
|
+
"repositoryEntry": "nexowatt-eos-admin-repository-entry-v89.json"
|
|
37
33
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# npm-Veröffentlichung – NexoWatt EOS Admin 7.9.89 Stable
|
|
2
|
+
|
|
3
|
+
## Vorprüfung
|
|
4
|
+
|
|
5
|
+
```powershell
|
|
6
|
+
npm run check:eos-publish-channel
|
|
7
|
+
npm run check:eos-package
|
|
8
|
+
npm run check:eos-stability
|
|
9
|
+
npm publish --dry-run --tag latest
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Veröffentlichung
|
|
13
|
+
|
|
14
|
+
```powershell
|
|
15
|
+
npm login
|
|
16
|
+
npm whoami
|
|
17
|
+
npm publish --tag latest
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Kontrolle
|
|
21
|
+
|
|
22
|
+
```powershell
|
|
23
|
+
npm view iobroker.eos-admin@latest version
|
|
24
|
+
npm dist-tag ls iobroker.eos-admin
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Erwartet:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
latest: 7.9.89
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Bereits veröffentlichte Paketversionen dürfen nicht mit verändertem Inhalt erneut veröffentlicht werden. Jede spätere Änderung benötigt eine höhere Versionsnummer.
|
package/README.md
CHANGED
|
@@ -13,6 +13,12 @@ Standard-Port: 8081
|
|
|
13
13
|
|
|
14
14
|
Damit überschreibt der Adapter den offiziellen `admin`-Adapter nicht mehr. Die alte ioBroker-Admin-Oberfläche kann parallel vorhanden bleiben, während NexoWatt-Systeme über `eos-admin.0` die EOS-Oberfläche nutzen.
|
|
15
15
|
|
|
16
|
+
## Aktuelle Stable 7.9.89
|
|
17
|
+
|
|
18
|
+
Die Verkaufsversion 7.9.89 verwendet die aktuelle **Übersicht** als Startseite, integriert EOS Assist in den Header und führt Zugangsverwaltung ausschließlich unter **Zugänge & Rechte**. Installer und Guest aktivieren ihr Konto beim ersten Login im normalen Anmeldeformular einmalig ohne Startpasswort und vergeben anschließend ein persönliches Passwort. Admin / Service bleibt unverändert.
|
|
19
|
+
|
|
20
|
+
Der interne Admin und die interne BackItUp-Notfallreserve bleiben installiert, sind aber ausschließlich für Admin / Service sichtbar. Für den regulären Betrieb wird die NexoWatt Sicherung verwendet.
|
|
21
|
+
|
|
16
22
|
## Installation über das NexoWatt Repository
|
|
17
23
|
|
|
18
24
|
Im NexoWatt Repository muss der Adapter unter dem Key `eos-admin` stehen. Da das npm-Paket unscoped `iobroker.eos-admin` heißt, ist kein `packetName` nötig.
|
|
@@ -23,7 +29,7 @@ Minimaler Repository-Eintrag:
|
|
|
23
29
|
{
|
|
24
30
|
"eos-admin": {
|
|
25
31
|
"name": "eos-admin",
|
|
26
|
-
"version": "7.9.
|
|
32
|
+
"version": "7.9.89",
|
|
27
33
|
"title": "NexoWatt EOS Admin",
|
|
28
34
|
"desc": {
|
|
29
35
|
"de": "NexoWatt EOS Administrationsoberfläche als eigenständiger Adapter.",
|
|
@@ -81,7 +87,7 @@ Danach läuft NexoWatt EOS Admin unter:
|
|
|
81
87
|
http://DEINE-IP:8081
|
|
82
88
|
```
|
|
83
89
|
|
|
84
|
-
Den
|
|
90
|
+
Den internen `admin`-Adapter nicht löschen. Er bleibt deaktiviert auf `127.0.0.1:18081` als geschützte Service-Reserve erhalten.
|
|
85
91
|
|
|
86
92
|
|
|
87
93
|
## EOS Rollen- und Löschschutz
|
|
@@ -97,7 +103,12 @@ Standardmäßig geschützt:
|
|
|
97
103
|
|
|
98
104
|
```text
|
|
99
105
|
eos-admin
|
|
106
|
+
admin
|
|
100
107
|
backitup
|
|
108
|
+
nexowatt-backup
|
|
109
|
+
eos-backup
|
|
110
|
+
nexowatt-devices
|
|
111
|
+
nexowatt-ui
|
|
101
112
|
```
|
|
102
113
|
|
|
103
114
|
Administratoren können weitere Adapter in der Tabelle `Protected adapters` ergänzen. Die sichtbaren Admin-Gruppen werden über `EOS admin groups` definiert, standardmäßig `administrator`.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# NexoWatt EOS Admin 7.9.89 – Stable
|
|
2
|
+
|
|
3
|
+
Version 7.9.89 ist die freigegebene Produktlinie für NexoWatt-EOS-Verkaufssysteme auf Basis der bewährten Admin-7-Laufzeit.
|
|
4
|
+
|
|
5
|
+
## Produktfunktionen
|
|
6
|
+
|
|
7
|
+
- Rollenmodell **Admin / Service**, **Installateur** und **Gast / Endkunde**.
|
|
8
|
+
- Expertenmodus ausschließlich für Admin / Service.
|
|
9
|
+
- Installateurzugriff für Inbetriebnahme, Konfiguration und Fehlersuche.
|
|
10
|
+
- Endkundenzugriff für freigegebenes Smart Home, Räume, Funktionen und NexoWatt-Bedienbereiche.
|
|
11
|
+
- Erstanmeldung von `installer` und `guest` direkt in der normalen Anmeldekarte: Benutzerstufe wählen, Passwort einmalig leer lassen und anschließend zwingend ein persönliches Passwort vergeben.
|
|
12
|
+
- Passwort-Reset: Admin / Service darf Installateur und Endkunde zurücksetzen; Installateur ausschließlich Endkunde.
|
|
13
|
+
- EOS Assist im Kopfbereich ohne Überlagerung der Inhaltsfläche.
|
|
14
|
+
- Zugangsverwaltung ausschließlich unter **Zugänge & Rechte**.
|
|
15
|
+
- Moderne aktuelle **Übersicht**; die Easy-Übersicht wird nicht als Produktstartseite verwendet.
|
|
16
|
+
- Interner System-Admin und interne BackItUp-Notfallreserve nur für Admin / Service sichtbar.
|
|
17
|
+
- NexoWatt Sicherung für die dafür freigegebenen Rollen nutzbar.
|
|
18
|
+
- Standardport 8081; interne Admin-Reserve auf 127.0.0.1:18081.
|
|
19
|
+
|
|
20
|
+
## Sicherheitsprinzip
|
|
21
|
+
|
|
22
|
+
Ausgeblendete Bedienelemente sind nicht die einzige Schutzschicht. Kritische Aktionen werden zusätzlich über Rollenprüfung, Socket-Guard und Objekt-ACLs abgesichert. Fehlende oder unbekannte Rollen fallen auf die geringsten Endkundenrechte zurück.
|
|
23
|
+
|
|
24
|
+
## Rückfallstand
|
|
25
|
+
|
|
26
|
+
Die vorherige Stable 7.9.86 bleibt als dokumentierter Rückfallstand erhalten. Vor einem Produktupdate ist ein vollständiges Backup vorgeschrieben.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Release-Abnahme – NexoWatt EOS Admin 7.9.89
|
|
2
|
+
|
|
3
|
+
## Automatische Prüfgates
|
|
4
|
+
|
|
5
|
+
- [ ] Versionsgleichheit in package.json, Lockdateien, io-package.json, Frontend und Build-Info
|
|
6
|
+
- [ ] npm-Kanal `latest`
|
|
7
|
+
- [ ] Paketvalidierung
|
|
8
|
+
- [ ] Syntax- und Importintegrität
|
|
9
|
+
- [ ] Frontend-Abhängigkeitsgraph
|
|
10
|
+
- [ ] Rollen- und Rechteprüfung
|
|
11
|
+
- [ ] integrierte Erstanmeldung
|
|
12
|
+
- [ ] Passwort-Reset-Hierarchie
|
|
13
|
+
- [ ] Expertenmodus-Sperre
|
|
14
|
+
- [ ] interne Admin-/BackItUp-Reserve
|
|
15
|
+
- [ ] NexoWatt-Sicherung für freigegebene Rollen
|
|
16
|
+
- [ ] moderne Übersicht und Header-EOS-Assist
|
|
17
|
+
- [ ] Zugangsverwaltung nur unter Zugänge & Rechte
|
|
18
|
+
- [ ] Popup-, Datenpunkt- und Updateprüfung
|
|
19
|
+
- [ ] Standardport 8081
|
|
20
|
+
- [ ] npm pack und npm publish --dry-run
|
|
21
|
+
|
|
22
|
+
## Reale Systemabnahme
|
|
23
|
+
|
|
24
|
+
- [ ] Neuinstallation auf dem Produktcontroller
|
|
25
|
+
- [ ] Update von 7.9.86
|
|
26
|
+
- [ ] Admin-/Service-Anmeldung
|
|
27
|
+
- [ ] Installateur-Erstanmeldung ohne Startpasswort
|
|
28
|
+
- [ ] Guest-Erstanmeldung ohne Startpasswort
|
|
29
|
+
- [ ] Admin setzt Installateur zurück
|
|
30
|
+
- [ ] Admin setzt Guest zurück
|
|
31
|
+
- [ ] Installateur setzt Guest zurück
|
|
32
|
+
- [ ] Installateur kann weder sich selbst noch Admin zurücksetzen
|
|
33
|
+
- [ ] Guest kann keine Zugänge zurücksetzen
|
|
34
|
+
- [ ] Neustart des Controllers
|
|
35
|
+
- [ ] Anmeldung nach Neustart
|
|
36
|
+
- [ ] NexoWatt Sicherung erstellen und Rücklesetest
|
|
37
|
+
- [ ] interne Notfallreserve nur als Admin sichtbar
|
|
38
|
+
- [ ] Rollback auf 7.9.86
|
|
39
|
+
|
|
40
|
+
Eine Checkbox darf erst nach nachvollziehbarem Testnachweis gesetzt werden.
|
package/admin/jsonConfig.json5
CHANGED
|
@@ -385,13 +385,46 @@
|
|
|
385
385
|
newLine: true,
|
|
386
386
|
type: 'checkbox',
|
|
387
387
|
label: 'Standardkonten automatisch den EOS Rollen zuordnen',
|
|
388
|
-
help: '
|
|
388
|
+
help: 'Stellt die Standardkonten installer und guest bereit, ordnet vorhandene Alternativkonten den passenden Rollen zu und bereitet die einmalige Erstanmeldung vor.',
|
|
389
389
|
default: true,
|
|
390
390
|
xs: 12,
|
|
391
391
|
sm: 12,
|
|
392
392
|
md: 8,
|
|
393
393
|
lg: 5,
|
|
394
394
|
},
|
|
395
|
+
eosPasswordlessFirstLogin: {
|
|
396
|
+
newLine: true,
|
|
397
|
+
type: 'checkbox',
|
|
398
|
+
label: 'Einmalige Erstanmeldung ohne Passwort erlauben',
|
|
399
|
+
help: 'Nur ausdrücklich vorbereitete Installateur- und Endkunden-/Gast-Konten können sich einmalig ohne Passwort aktivieren und müssen unmittelbar ein persönliches Passwort vergeben. Admin/Service ist ausgeschlossen.',
|
|
400
|
+
default: true,
|
|
401
|
+
xs: 12,
|
|
402
|
+
sm: 12,
|
|
403
|
+
md: 8,
|
|
404
|
+
lg: 5,
|
|
405
|
+
},
|
|
406
|
+
eosPasswordlessFirstLoginPrivateNetworkOnly: {
|
|
407
|
+
type: 'checkbox',
|
|
408
|
+
label: 'Erstanmeldung auf lokales/privates Netzwerk begrenzen',
|
|
409
|
+
help: 'Verhindert eine kennwortlose Erstaktivierung über öffentliche Client-Adressen. Für Verkaufsgeräte empfohlen und standardmäßig aktiv.',
|
|
410
|
+
default: true,
|
|
411
|
+
xs: 12,
|
|
412
|
+
sm: 12,
|
|
413
|
+
md: 8,
|
|
414
|
+
lg: 5,
|
|
415
|
+
},
|
|
416
|
+
eosPasswordClaimTtlMinutes: {
|
|
417
|
+
type: 'number',
|
|
418
|
+
label: 'Gültigkeit der Erstaktivierung (Minuten)',
|
|
419
|
+
help: 'Der kurzlebige Aktivierungsnachweis verfällt automatisch. Zulässig sind 3 bis 30 Minuten.',
|
|
420
|
+
min: 3,
|
|
421
|
+
max: 30,
|
|
422
|
+
default: 10,
|
|
423
|
+
xs: 12,
|
|
424
|
+
sm: 6,
|
|
425
|
+
md: 4,
|
|
426
|
+
lg: 3,
|
|
427
|
+
},
|
|
395
428
|
eosProtectAdapterDeletion: {
|
|
396
429
|
newLine: true,
|
|
397
430
|
type: 'checkbox',
|