@7365admin1/core 3.79.1-staging.338 → 3.79.1-staging.340
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/.changeset/cleaning-robot-cloud-connector.md +39 -0
- package/.changeset/hid-sip-account-list.md +17 -0
- package/dist/index.d.ts +718 -4
- package/dist/index.js +3103 -2329
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1701 -967
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/test/e2e/robot-scope.e2e.test.mjs +57 -33
- package/test/robot-apps.test.mjs +154 -0
- package/test/robot-cloud.test.mjs +222 -0
- package/test/robot-permission.test.mjs +133 -0
- package/test/robot-tracking.test.mjs +231 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
"@7365admin1/core": minor
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Cleaning robot: robot cloud connector, and stop projecting robot credentials
|
|
6
|
+
|
|
7
|
+
Adds the signed client for the cleaning-robot cloud (`robot-cloud.util.ts`,
|
|
8
|
+
`robot-cloud.service.ts`): request signing, the status vocabulary, the
|
|
9
|
+
pixel/metre transform and the area colour conversions, plus the nine
|
|
10
|
+
request/response endpoints. Credentials are passed in by the caller and are
|
|
11
|
+
never read from the environment, logged, or placed in a request body.
|
|
12
|
+
|
|
13
|
+
Also fixes a credential disclosure in the existing robot listing: `getRobots`
|
|
14
|
+
projected `appKey` and `appToken` — the pair that signs every command sent to
|
|
15
|
+
that estate's robots — into the response, so anyone holding `see-all-robots`
|
|
16
|
+
received them. They are no longer returned.
|
|
17
|
+
|
|
18
|
+
Fixes `POST /robots`, which had never worked: the service assigned an ObjectId
|
|
19
|
+
where the model's schema wanted a string, so every create ended in
|
|
20
|
+
`400 "createdBy" must be a string` and no robot could be registered at all.
|
|
21
|
+
|
|
22
|
+
Adds the server-side enforcement of the five robot permissions, which have
|
|
23
|
+
existed in the client catalogue but were never checked by the API. `"*"` allows
|
|
24
|
+
everything; an empty list allows everything only on a `type: "admin"` role (the
|
|
25
|
+
Seven365 staff role is seeded with `[]`, so enforcing it would refuse the
|
|
26
|
+
platform owner); a non-empty list is enforced exactly.
|
|
27
|
+
|
|
28
|
+
Adds `robotSn` to the robot record (optional, discovered from `get-robot-list`
|
|
29
|
+
when absent) and `robot-fleet.service.ts`, which bridges a stored robot to the
|
|
30
|
+
vendor cloud: live state, maps, map image URLs minted at use, and dispatch.
|
|
31
|
+
|
|
32
|
+
Adds a table of which application may set up and monitor which robot type, so
|
|
33
|
+
cleaning robots and security robots share one module while each app sees only
|
|
34
|
+
its own.
|
|
35
|
+
|
|
36
|
+
Adds an optional `type` ("cleaning" | "security") to the robot record with an
|
|
37
|
+
optional filter, so both device classes share one module and one collection
|
|
38
|
+
while each app lists only its own. Existing rows are untouched and an
|
|
39
|
+
unfiltered query behaves exactly as before.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
"@7365admin1/core": minor
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
List a site's HID SIP accounts for the intercom contact picker.
|
|
6
|
+
|
|
7
|
+
`hid-sip-accounts` could only be reached through `ensureSipAccount`, which
|
|
8
|
+
creates and returns the CALLER's own extension together with its password.
|
|
9
|
+
The intercom contact dialog needs the opposite view: every person on the site
|
|
10
|
+
who holds an extension, so a contact names someone the reader can actually
|
|
11
|
+
ring instead of a free-typed label.
|
|
12
|
+
|
|
13
|
+
`listSipAccounts(orgId, siteId)` reads the site's non-disabled accounts, joins
|
|
14
|
+
each to its `users` row for the display name and email, and returns name,
|
|
15
|
+
extension, username and status per account. The SIP password is never in the
|
|
16
|
+
response. The controller guards it with `authorizeSite` in the handler body,
|
|
17
|
+
the same way `listEnrollmentReaders` does, so a router edit cannot expose it.
|