@mhome/app-facade-protocol 1.34.0 → 1.34.1
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/contract/pod-commissioning-v1.md +19 -7
- package/manifest/app-facade.v1.json +1 -1
- package/manifest/host-provision-targets.v1.json +1 -1
- package/manifest/hub-targets.v1.json +1 -1
- package/manifest/pod-targets.v1.json +1 -1
- package/manifest/routing.v1.json +1 -1
- package/manifest/targets.v1.json +1 -1
- package/package.json +1 -1
- package/protocol.json +1 -1
|
@@ -282,8 +282,17 @@ and unexpired pending pods, each
|
|
|
282
282
|
channel. Either close only ends that connection; whether the pod is revoked
|
|
283
283
|
is decided by its next refresh.
|
|
284
284
|
- `/api/v1/hub/token/exchange` with a pod access token returns a Hub JWT with
|
|
285
|
-
`clientKind` = `pod` and `podId` claims and
|
|
286
|
-
|
|
285
|
+
`clientKind` = `pod` and `podId` claims and the same lifetime as a Hub JWT
|
|
286
|
+
for a user token.
|
|
287
|
+
- Revoking a pod credential, by any path, also revokes the pod on the Hubs of
|
|
288
|
+
its user's local Spaces. Before committing the revocation Lion marks the
|
|
289
|
+
`scope.pods` resource dirty for each such Space; after it commits, Lion
|
|
290
|
+
notifies the Hub through the pull-sync contract. A Hub that is offline pulls
|
|
291
|
+
the marker when its bridge reconnects. `scope.pods` is a snapshot
|
|
292
|
+
`{"podIds":[…]}` of the active pods of the Space's members. The Hub revokes
|
|
293
|
+
the local tokens it issued to any other pod before the pull, disables the
|
|
294
|
+
local auth of that pod's app client once no active token is left, and refuses
|
|
295
|
+
and stops renewing that pod's local connections.
|
|
287
296
|
|
|
288
297
|
## 6. Pod runtime authentication
|
|
289
298
|
|
|
@@ -299,11 +308,14 @@ and unexpired pending pods, each
|
|
|
299
308
|
re-sends `/focus`; it keeps one Hub JWT and Hub key per Hub and Space.
|
|
300
309
|
- Local Hub: the Hub identity endpoint `POST /api/v1/hub/identity/get`
|
|
301
310
|
(`{"hubId","tenantId","scopeId"}`) is public and needs no token. The pod
|
|
302
|
-
proves the Hub identity,
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
Hub JWT
|
|
311
|
+
proves the Hub identity, then authenticates to the local Hub the way a Client
|
|
312
|
+
does: the first local `/auth` carries its pod access token with
|
|
313
|
+
`source=cloud` (`clientSource=pod`, `deviceId`, `tenantId`, `scopeId`,
|
|
314
|
+
`hubId`). The Hub exchanges that token with the cloud and returns a
|
|
315
|
+
long-lived local Hub JWT in `jwtToken`, which the pod stores per Hub. Later
|
|
316
|
+
local `/auth` requests use only that JWT with `source=local`. When the stored
|
|
317
|
+
JWT is about to expire or the Hub rejects it, the pod discards it and
|
|
318
|
+
authenticates with `source=cloud` again.
|
|
307
319
|
|
|
308
320
|
## 7. Native Client targets
|
|
309
321
|
|
package/manifest/routing.v1.json
CHANGED
package/manifest/targets.v1.json
CHANGED
package/package.json
CHANGED