@7365admin1/core 3.80.0 → 3.82.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,72 @@
1
1
  # @iservice365/core
2
2
 
3
+ ## 3.82.0
4
+
5
+ ### Minor Changes
6
+
7
+ - dbc439a: Cleaning robot: fleet endpoints, and the lift contract
8
+
9
+ Adds `robot-fleet.controller.ts` — live state, floors and areas, map image URLs,
10
+ the cleaning schedule, and one command endpoint covering full, area, spot and
11
+ return. Every handler loads the robot first and authorises the estate named on
12
+ the STORED record, never one named in the request, so a robot cannot be reached
13
+ by quoting its id; credentials are read server-side and never enter a response.
14
+
15
+ Adds `parseRobotCommand`, pure, so the command rules can be asserted without a
16
+ robot. Fields are refused on commands that do not use them rather than ignored —
17
+ silently dropping a spot polygon from an area command would clean the wrong
18
+ thing and report success.
19
+
20
+ Adds `getRobotById` and `setRobotSn` to the robot repository. `setRobotSn` only
21
+ ever fills a blank serial, so a later discovery cannot re-point a nickname at a
22
+ different machine.
23
+
24
+ Adds `lift-contract.util.ts` — the lift vocabulary, with field names and enum
25
+ values taken verbatim from Open-RMF's `rmf_lift_msgs`, plus an in-memory lift
26
+ simulator. No Modbus and no register numbers: the Inovance open-protocol
27
+ register map has not been supplied, so the driver sits behind an interface and
28
+ the queue and session logic can be built and tested against the simulator first.
29
+
30
+ ## 3.81.0
31
+
32
+ ### Minor Changes
33
+
34
+ - fde0167: Cleaning robot: robot cloud connector, and stop projecting robot credentials
35
+
36
+ Adds the signed client for the cleaning-robot cloud (`robot-cloud.util.ts`,
37
+ `robot-cloud.service.ts`): request signing, the status vocabulary, the
38
+ pixel/metre transform and the area colour conversions, plus the nine
39
+ request/response endpoints. Credentials are passed in by the caller and are
40
+ never read from the environment, logged, or placed in a request body.
41
+
42
+ Also fixes a credential disclosure in the existing robot listing: `getRobots`
43
+ projected `appKey` and `appToken` — the pair that signs every command sent to
44
+ that estate's robots — into the response, so anyone holding `see-all-robots`
45
+ received them. They are no longer returned.
46
+
47
+ Fixes `POST /robots`, which had never worked: the service assigned an ObjectId
48
+ where the model's schema wanted a string, so every create ended in
49
+ `400 "createdBy" must be a string` and no robot could be registered at all.
50
+
51
+ Adds the server-side enforcement of the five robot permissions, which have
52
+ existed in the client catalogue but were never checked by the API. `"*"` allows
53
+ everything; an empty list allows everything only on a `type: "admin"` role (the
54
+ Seven365 staff role is seeded with `[]`, so enforcing it would refuse the
55
+ platform owner); a non-empty list is enforced exactly.
56
+
57
+ Adds `robotSn` to the robot record (optional, discovered from `get-robot-list`
58
+ when absent) and `robot-fleet.service.ts`, which bridges a stored robot to the
59
+ vendor cloud: live state, maps, map image URLs minted at use, and dispatch.
60
+
61
+ Adds a table of which application may set up and monitor which robot type, so
62
+ cleaning robots and security robots share one module while each app sees only
63
+ its own.
64
+
65
+ Adds an optional `type` ("cleaning" | "security") to the robot record with an
66
+ optional filter, so both device classes share one module and one collection
67
+ while each app lists only its own. Existing rows are untouched and an
68
+ unfiltered query behaves exactly as before.
69
+
3
70
  ## 3.80.0
4
71
 
5
72
  ### Minor Changes