iobroker.bee 0.0.0-stage → 0.2.2

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.
@@ -0,0 +1,434 @@
1
+ {
2
+ "common": {
3
+ "name": "bee",
4
+ "version": "0.2.2",
5
+ "news": {
6
+ "0.2.2": {
7
+ "en": "Console: a shell on this system for the fleet management, off unless the owner allows it (Linux only); commands from the fleet management: start, stop and restart instances, restart ioBroker, install OS updates listed by js-controller; enrollment URL preset to https://bee.iobroker.click",
8
+ "de": "Konsole: eine Shell auf diesem System für die Flottenverwaltung, aus, bis der Besitzer sie erlaubt (nur Linux); Befehle der Flottenverwaltung: Instanzen starten, stoppen und neu starten, ioBroker neu starten, von js-controller gemeldete OS-Updates einspielen; Enrollment-URL mit https://bee.iobroker.click vorbelegt"
9
+ },
10
+ "0.2.0": {
11
+ "en": "Remote access to admin and vis-2 through a tunnel to the fleet server, switchable per kind by the owner; versions and adapter packages (tgz) set per asset by the fleet server",
12
+ "de": "Fernzugriff auf admin und vis-2 über einen Tunnel zum Flottenserver, je Art vom Besitzer abschaltbar; Versionen und Adapterpakete (tgz) je Anlage vom Flottenserver"
13
+ },
14
+ "0.1.0": {
15
+ "en": "Initial prototype: enrollment, inventory, desired state via MQTT, adapter rollout with preflight, backup, verification and rollback",
16
+ "de": "Erster Prototyp: Anmeldung, Inventar, Sollzustand über MQTT, Adapter-Rollout mit Vorprüfung, Sicherung, Verifikation und Rollback"
17
+ }
18
+ },
19
+ "titleLang": {
20
+ "en": "Fleet agent (beekeeper)",
21
+ "de": "Flotten-Agent (beekeeper)"
22
+ },
23
+ "desc": {
24
+ "en": "Reports the inventory of this system to a beekeeper fleet server and converges it to the assigned version profile",
25
+ "de": "Meldet das Inventar dieses Systems an einen beekeeper-Flottenserver und gleicht es auf das zugewiesene Versionsprofil ab"
26
+ },
27
+ "authors": [
28
+ "Denis Haev <dogafox@gmail.com>"
29
+ ],
30
+ "keywords": [
31
+ "fleet",
32
+ "rollout",
33
+ "update",
34
+ "inventory",
35
+ "beekeeper"
36
+ ],
37
+ "platform": "Javascript/Node.js",
38
+ "icon": "bee.svg",
39
+ "extIcon": "https://raw.githubusercontent.com/ioBroker/ioBroker.bee/main/admin/bee.svg",
40
+ "readme": "https://github.com/ioBroker/ioBroker.bee/blob/main/README.md",
41
+ "loglevel": "info",
42
+ "mode": "daemon",
43
+ "type": "general",
44
+ "tier": 1,
45
+ "compact": false,
46
+ "connectionType": "cloud",
47
+ "dataSource": "push",
48
+ "logTransporter": true,
49
+ "singletonHost": true,
50
+ "enabled": true,
51
+ "adminUI": {
52
+ "config": "json"
53
+ },
54
+ "license": "UNLICENSED",
55
+ "dependencies": [
56
+ {
57
+ "js-controller": ">=6.0.11"
58
+ }
59
+ ],
60
+ "notifications": [
61
+ {
62
+ "scope": "bee",
63
+ "name": {
64
+ "en": "Fleet management",
65
+ "de": "Flottenverwaltung"
66
+ },
67
+ "description": {
68
+ "en": "Messages of the fleet agent for the owner of the system",
69
+ "de": "Meldungen des Flotten-Agenten für den Endkunden der Anlage"
70
+ },
71
+ "categories": [
72
+ {
73
+ "category": "modeChanged",
74
+ "name": {
75
+ "en": "Own installation detected",
76
+ "de": "Eigeninstallation erkannt"
77
+ },
78
+ "severity": "notify",
79
+ "description": {
80
+ "en": "Adapters were installed that are not part of the version profile. The system receives no automatic updates any more.",
81
+ "de": "Es wurden Adapter installiert, die nicht zum Versionsprofil gehören. Die Anlage erhält keine automatischen Updates mehr."
82
+ },
83
+ "regex": [],
84
+ "limit": 5
85
+ },
86
+ {
87
+ "category": "updateAvailable",
88
+ "name": {
89
+ "en": "New software state available",
90
+ "de": "Neuer Softwarestand verfügbar"
91
+ },
92
+ "severity": "info",
93
+ "description": {
94
+ "en": "The fleet management provides a new state. Self-managed systems are not updated automatically.",
95
+ "de": "Die Flottenverwaltung stellt einen neuen Stand bereit. Eigenverantwortliche Anlagen werden nicht automatisch aktualisiert."
96
+ },
97
+ "regex": [],
98
+ "limit": 5
99
+ },
100
+ {
101
+ "category": "updated",
102
+ "name": {
103
+ "en": "System updated",
104
+ "de": "Anlage aktualisiert"
105
+ },
106
+ "severity": "info",
107
+ "description": {
108
+ "en": "The fleet management updated this system",
109
+ "de": "Die Flottenverwaltung hat diese Anlage aktualisiert"
110
+ },
111
+ "regex": [],
112
+ "limit": 10
113
+ },
114
+ {
115
+ "category": "rejected",
116
+ "name": {
117
+ "en": "Rejected by fleet server",
118
+ "de": "Vom Flottenserver abgewiesen"
119
+ },
120
+ "severity": "alert",
121
+ "description": {
122
+ "en": "The fleet server does not know this device. The agent stopped itself.",
123
+ "de": "Der Flottenserver kennt dieses Gerät nicht. Der Agent hat sich beendet."
124
+ },
125
+ "regex": [],
126
+ "limit": 1
127
+ }
128
+ ]
129
+ }
130
+ ]
131
+ },
132
+ "encryptedNative": [
133
+ "enrollToken"
134
+ ],
135
+ "protectedNative": [
136
+ "enrollToken"
137
+ ],
138
+ "native": {
139
+ "enrollUrl": "https://bee.iobroker.click",
140
+ "enrollToken": "",
141
+ "comment": "",
142
+ "allowAdmin": true,
143
+ "allowVis": true,
144
+ "allowConsole": false,
145
+ "windowStart": "02:00",
146
+ "windowEnd": "05:00",
147
+ "ignoreWindow": false,
148
+ "conditions": [],
149
+ "minFreeMb": 1024,
150
+ "signalStateId": "",
151
+ "heartbeatMinutes": 60,
152
+ "checkMinutes": 5,
153
+ "keepaliveSeconds": 300,
154
+ "verifySeconds": 120,
155
+ "startTimeoutSeconds": 300,
156
+ "backupBeforeUpdate": true
157
+ },
158
+ "objects": [],
159
+ "instanceObjects": [
160
+ {
161
+ "_id": "info",
162
+ "type": "channel",
163
+ "common": {
164
+ "name": {
165
+ "en": "Information",
166
+ "de": "Information"
167
+ }
168
+ },
169
+ "native": {}
170
+ },
171
+ {
172
+ "_id": "info.connection",
173
+ "type": "state",
174
+ "common": {
175
+ "role": "indicator.connected",
176
+ "name": {
177
+ "en": "Connected to beekeeper",
178
+ "de": "Mit beekeeper verbunden"
179
+ },
180
+ "type": "boolean",
181
+ "read": true,
182
+ "write": false,
183
+ "def": false
184
+ },
185
+ "native": {}
186
+ },
187
+ {
188
+ "_id": "info.status",
189
+ "type": "state",
190
+ "common": {
191
+ "role": "text",
192
+ "name": {
193
+ "en": "Status",
194
+ "de": "Status"
195
+ },
196
+ "type": "string",
197
+ "read": true,
198
+ "write": false,
199
+ "def": ""
200
+ },
201
+ "native": {}
202
+ },
203
+ {
204
+ "_id": "info.deviceId",
205
+ "type": "state",
206
+ "common": {
207
+ "role": "text",
208
+ "name": {
209
+ "en": "Device ID",
210
+ "de": "Geräte-ID"
211
+ },
212
+ "type": "string",
213
+ "read": true,
214
+ "write": false,
215
+ "def": ""
216
+ },
217
+ "native": {}
218
+ },
219
+ {
220
+ "_id": "info.assetId",
221
+ "type": "state",
222
+ "common": {
223
+ "role": "text",
224
+ "name": {
225
+ "en": "Asset ID",
226
+ "de": "Anlagen-ID"
227
+ },
228
+ "type": "string",
229
+ "read": true,
230
+ "write": false,
231
+ "def": ""
232
+ },
233
+ "native": {}
234
+ },
235
+ {
236
+ "_id": "info.mode",
237
+ "type": "state",
238
+ "common": {
239
+ "role": "text",
240
+ "name": {
241
+ "en": "Mode (managed or self)",
242
+ "de": "Modus (verwaltet oder eigenverantwortlich)"
243
+ },
244
+ "type": "string",
245
+ "read": true,
246
+ "write": false,
247
+ "def": ""
248
+ },
249
+ "native": {}
250
+ },
251
+ {
252
+ "_id": "info.profile",
253
+ "type": "state",
254
+ "common": {
255
+ "role": "text",
256
+ "name": {
257
+ "en": "Desired profile",
258
+ "de": "Sollprofil"
259
+ },
260
+ "type": "string",
261
+ "read": true,
262
+ "write": false,
263
+ "def": ""
264
+ },
265
+ "native": {}
266
+ },
267
+ {
268
+ "_id": "info.onTarget",
269
+ "type": "state",
270
+ "common": {
271
+ "role": "indicator",
272
+ "name": {
273
+ "en": "System matches the profile",
274
+ "de": "Anlage entspricht dem Profil"
275
+ },
276
+ "type": "boolean",
277
+ "read": true,
278
+ "write": false,
279
+ "def": false
280
+ },
281
+ "native": {}
282
+ },
283
+ {
284
+ "_id": "info.remoteAccess",
285
+ "type": "state",
286
+ "common": {
287
+ "role": "indicator",
288
+ "name": {
289
+ "en": "Remote access from the fleet management active",
290
+ "de": "Fernzugriff aus der Flottenverwaltung aktiv"
291
+ },
292
+ "type": "boolean",
293
+ "read": true,
294
+ "write": false,
295
+ "def": false
296
+ },
297
+ "native": {}
298
+ },
299
+ {
300
+ "_id": "info.remoteAccessBy",
301
+ "type": "state",
302
+ "common": {
303
+ "role": "text",
304
+ "name": {
305
+ "en": "Who accesses the system remotely, and why",
306
+ "de": "Wer gerade aus der Ferne zugreift, und warum"
307
+ },
308
+ "type": "string",
309
+ "read": true,
310
+ "write": false,
311
+ "def": ""
312
+ },
313
+ "native": {}
314
+ },
315
+ {
316
+ "_id": "job",
317
+ "type": "channel",
318
+ "common": {
319
+ "name": {
320
+ "en": "Current job",
321
+ "de": "Aktueller Auftrag"
322
+ }
323
+ },
324
+ "native": {}
325
+ },
326
+ {
327
+ "_id": "job.state",
328
+ "type": "state",
329
+ "common": {
330
+ "role": "text",
331
+ "name": {
332
+ "en": "Job state",
333
+ "de": "Auftragszustand"
334
+ },
335
+ "type": "string",
336
+ "read": true,
337
+ "write": false,
338
+ "def": ""
339
+ },
340
+ "native": {}
341
+ },
342
+ {
343
+ "_id": "job.detail",
344
+ "type": "state",
345
+ "common": {
346
+ "role": "text",
347
+ "name": {
348
+ "en": "Job detail",
349
+ "de": "Auftragsdetail"
350
+ },
351
+ "type": "string",
352
+ "read": true,
353
+ "write": false,
354
+ "def": ""
355
+ },
356
+ "native": {}
357
+ },
358
+ {
359
+ "_id": "job.steps",
360
+ "type": "state",
361
+ "common": {
362
+ "role": "json",
363
+ "name": {
364
+ "en": "Job steps",
365
+ "de": "Auftragsschritte"
366
+ },
367
+ "type": "string",
368
+ "read": true,
369
+ "write": false,
370
+ "def": "[]"
371
+ },
372
+ "native": {}
373
+ },
374
+ {
375
+ "_id": "control",
376
+ "type": "channel",
377
+ "common": {
378
+ "name": {
379
+ "en": "Control",
380
+ "de": "Steuerung"
381
+ }
382
+ },
383
+ "native": {}
384
+ },
385
+ {
386
+ "_id": "control.halted",
387
+ "type": "state",
388
+ "common": {
389
+ "role": "indicator",
390
+ "name": {
391
+ "en": "Emergency stop of the fleet active",
392
+ "de": "Not-Aus der Flotte aktiv"
393
+ },
394
+ "type": "boolean",
395
+ "read": true,
396
+ "write": false,
397
+ "def": false
398
+ },
399
+ "native": {}
400
+ },
401
+ {
402
+ "_id": "control.refresh",
403
+ "type": "state",
404
+ "common": {
405
+ "role": "button",
406
+ "name": {
407
+ "en": "Send inventory now",
408
+ "de": "Inventar jetzt senden"
409
+ },
410
+ "type": "boolean",
411
+ "read": false,
412
+ "write": true,
413
+ "def": false
414
+ },
415
+ "native": {}
416
+ },
417
+ {
418
+ "_id": "control.check",
419
+ "type": "state",
420
+ "common": {
421
+ "role": "button",
422
+ "name": {
423
+ "en": "Check desired state now",
424
+ "de": "Sollzustand jetzt prüfen"
425
+ },
426
+ "type": "boolean",
427
+ "read": false,
428
+ "write": true,
429
+ "def": false
430
+ },
431
+ "native": {}
432
+ }
433
+ ]
434
+ }
package/package.json CHANGED
@@ -1,6 +1,56 @@
1
1
  {
2
2
  "name": "iobroker.bee",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.2.2",
4
+ "description": "Fleet agent for ioBroker: reports inventory to a beekeeper server and converges the system to the desired version profile",
5
+ "author": {
6
+ "name": "Denis Haev",
7
+ "email": "dogafox@gmail.com"
8
+ },
9
+ "contributors": [],
10
+ "homepage": "https://github.com/ioBroker/ioBroker.bee",
11
+ "keywords": [
12
+ "ioBroker",
13
+ "fleet",
14
+ "rollout",
15
+ "update",
16
+ "inventory"
17
+ ],
18
+ "license": "UNLICENSED",
19
+ "engines": {
20
+ "node": ">=20"
21
+ },
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/ioBroker/ioBroker.bee"
25
+ },
26
+ "main": "build/main.js",
27
+ "files": [
28
+ "admin/",
29
+ "build/",
30
+ "io-package.json"
31
+ ],
32
+ "scripts": {
33
+ "build": "tsc -p tsconfig.build.json",
34
+ "check-ts": "tsc -p tsconfig.json",
35
+ "watch": "tsc -p tsconfig.build.json --watch",
36
+ "test": "tsx --test test/*.test.ts",
37
+ "lint": "eslint -c eslint.config.mjs",
38
+ "prepublishOnly": "npm run build"
39
+ },
40
+ "dependencies": {
41
+ "@iobroker/adapter-core": "^3.4.3",
42
+ "mqtt": "^5.16.0",
43
+ "semver": "^7.8.5",
44
+ "ws": "^8.22.2"
45
+ },
46
+ "devDependencies": {
47
+ "@iobroker/eslint-config": "^2.3.4",
48
+ "@iobroker/types": "^7.2.2",
49
+ "@tsconfig/node20": "^20.1.10",
50
+ "@types/node": "^20.19.43",
51
+ "@types/semver": "^7.8.0",
52
+ "@types/ws": "^8.18.2",
53
+ "tsx": "^4.23.13",
54
+ "typescript": "^6.0.3"
55
+ }
56
+ }