@kusinta/iot-schema 0.2.0-beta.33 → 0.2.0-beta.35

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kusinta/iot-schema",
3
- "version": "0.2.0-beta.33",
3
+ "version": "0.2.0-beta.35",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "files": ["src"],
@@ -462,10 +462,11 @@ export enum ServiceSignal {
462
462
  LINKS = 8,
463
463
 
464
464
  /**
465
- * Who is filed on the home, and how: every membership of it — residents, service, and
466
- * those recorded with no relation — by user id. Shown to the property owner and the
467
- * gateway administrator only, not to every party with service reach (see
468
- * space.v1.Space.members).
465
+ * Who is filed on the home, and how, as space.v1.Space.members tells it to a caller who
466
+ * does not live there: each residency under its own residency id and since when, never
467
+ * who holds it (MembershipRelation, RESIDENCY IDS); service, and memberships recorded
468
+ * with no relation, by user id, and staff among them by name. Shown to the property owner
469
+ * and the gateway administrator only, not to every party with service reach.
469
470
  *
470
471
  * @generated from enum value: SERVICE_SIGNAL_RESIDENTS = 9;
471
472
  */
@@ -22,9 +22,10 @@ export declare const file_kusinta_iot_access_v1_roles: GenFile;
22
22
  * role narrows what may appear there; it does not put anything there on its own.
23
23
  *
24
24
  * The building-server gateway holds each user's roles itself and authorises from what it
25
- * holds. The one role it cannot know is the administration of whoever registered it, which
26
- * the api-server records: that one it takes from the app's token
27
- * (webrtc.v1.AppTokenClaims.roles). The api-server learns the rest from the gateway
25
+ * holds. The one role it cannot know is the administration of the organisation that owns it,
26
+ * which the api-server keeps: that one it takes from the app's token
27
+ * (webrtc.v1.AppTokenClaims.roles), and the api-server tells it who those administrators are
28
+ * (signaling.v1.VouchedAdministrators), which can end that administration but never grant it. The api-server learns the rest from the gateway
28
29
  * (reporting.v1.GatewayMember). A user may hold several at once and the effective ceiling is
29
30
  * their union.
30
31
  *
@@ -41,7 +42,7 @@ export declare const file_kusinta_iot_access_v1_roles: GenFile;
41
42
  * STAFF. A user who holds ROLE_TECHNICIAN, ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN on a
42
43
  * gateway is staff there: they serve the building rather than live in it. Wherever this
43
44
  * schema says "staff" or "a staff member" it means exactly that, as the gateway holds roles,
44
- * the registering administrator included; holding ROLE_RESIDENT besides changes nothing. The
45
+ * every vouched administrator included; holding ROLE_RESIDENT besides changes nothing. The
45
46
  * term carries one rule about people: staff are named to whoever may list every member; a
46
47
  * resident is named only to the people they live with; and where anyone lives is told by
47
48
  * user id only to their own household, and to anyone else only under a residency id
@@ -29,9 +29,10 @@ export const RoleSchema = /*@__PURE__*/
29
29
  * role narrows what may appear there; it does not put anything there on its own.
30
30
  *
31
31
  * The building-server gateway holds each user's roles itself and authorises from what it
32
- * holds. The one role it cannot know is the administration of whoever registered it, which
33
- * the api-server records: that one it takes from the app's token
34
- * (webrtc.v1.AppTokenClaims.roles). The api-server learns the rest from the gateway
32
+ * holds. The one role it cannot know is the administration of the organisation that owns it,
33
+ * which the api-server keeps: that one it takes from the app's token
34
+ * (webrtc.v1.AppTokenClaims.roles), and the api-server tells it who those administrators are
35
+ * (signaling.v1.VouchedAdministrators), which can end that administration but never grant it. The api-server learns the rest from the gateway
35
36
  * (reporting.v1.GatewayMember). A user may hold several at once and the effective ceiling is
36
37
  * their union.
37
38
  *
@@ -48,7 +49,7 @@ export const RoleSchema = /*@__PURE__*/
48
49
  * STAFF. A user who holds ROLE_TECHNICIAN, ROLE_PROPERTY_OWNER or ROLE_GATEWAY_ADMIN on a
49
50
  * gateway is staff there: they serve the building rather than live in it. Wherever this
50
51
  * schema says "staff" or "a staff member" it means exactly that, as the gateway holds roles,
51
- * the registering administrator included; holding ROLE_RESIDENT besides changes nothing. The
52
+ * every vouched administrator included; holding ROLE_RESIDENT besides changes nothing. The
52
53
  * term carries one rule about people: staff are named to whoever may list every member; a
53
54
  * resident is named only to the people they live with; and where anyone lives is told by
54
55
  * user id only to their own household, and to anyone else only under a residency id
@@ -15,6 +15,11 @@ export declare const file_kusinta_iot_registration_v1_registration: GenFile;
15
15
  */
16
16
  export declare type RegistrationRequest = Message<"kusinta.iot.registration.v1.RegistrationRequest"> & {
17
17
  /**
18
+ * The one-time token an administrator of the owning organisation obtained from the
19
+ * api-server and handed to the gateway. Opaque to the gateway: it is signed with a key only
20
+ * the api-server holds, and the gateway passes it on unread. Nothing the gateway acts on is
21
+ * taken from it; what the registration settles comes back in RegistrationComplete.
22
+ *
18
23
  * @generated from field: string registration_token = 1;
19
24
  */
20
25
  registrationToken: string;
@@ -65,6 +70,19 @@ export declare type RegistrationComplete = Message<"kusinta.iot.registration.v1.
65
70
  * @generated from field: string ca_bundle_pem = 2;
66
71
  */
67
72
  caBundlePem: string;
73
+
74
+ /**
75
+ * The ownership epoch of the gateway's owner record (signaling.v1.GatewayStreamOpened,
76
+ * OWNERSHIP EPOCH), from the api-server's answer to the registration the gateway made over
77
+ * its own connection to it, which is what makes it trusted. Never empty. An epoch other than
78
+ * the one the gateway holds makes it wipe (signaling.v1.GatewayDeleted, WIPE) before it
79
+ * installs the certificate or admits any session. A registration again by the owning
80
+ * organisation, after a revoke included, answers the epoch the gateway holds and wipes
81
+ * nothing.
82
+ *
83
+ * @generated from field: string ownership_epoch = 3;
84
+ */
85
+ ownershipEpoch: string;
68
86
  };
69
87
 
70
88
  /**
@@ -8,7 +8,7 @@ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
8
8
  * Describes the file kusinta/iot/registration/v1/registration.proto.
9
9
  */
10
10
  export const file_kusinta_iot_registration_v1_registration = /*@__PURE__*/
11
- fileDesc("Ci5rdXNpbnRhL2lvdC9yZWdpc3RyYXRpb24vdjEvcmVnaXN0cmF0aW9uLnByb3RvEhtrdXNpbnRhLmlvdC5yZWdpc3RyYXRpb24udjEiVwoTUmVnaXN0cmF0aW9uUmVxdWVzdBIaChJyZWdpc3RyYXRpb25fdG9rZW4YASABKAkSEwoLZXh0ZXJuYWxfaXAYAiABKAkSDwoHY3NyX3BlbRgDIAEoCSIkChRSZWdpc3RyYXRpb25Qcm9ncmVzcxIMCgRzdGVwGAEgASgJIkYKFFJlZ2lzdHJhdGlvbkNvbXBsZXRlEhcKD2NlcnRpZmljYXRlX3BlbRgBIAEoCRIVCg1jYV9idW5kbGVfcGVtGAIgASgJIjIKEVJlZ2lzdHJhdGlvbkVycm9yEgwKBGNvZGUYASABKAkSDwoHbWVzc2FnZRgCIAEoCSLuAQoUUmVnaXN0cmF0aW9uUmVzcG9uc2USRQoIcHJvZ3Jlc3MYASABKAsyMS5rdXNpbnRhLmlvdC5yZWdpc3RyYXRpb24udjEuUmVnaXN0cmF0aW9uUHJvZ3Jlc3NIABJFCghjb21wbGV0ZRgCIAEoCzIxLmt1c2ludGEuaW90LnJlZ2lzdHJhdGlvbi52MS5SZWdpc3RyYXRpb25Db21wbGV0ZUgAEj8KBWVycm9yGAMgASgLMi4ua3VzaW50YS5pb3QucmVnaXN0cmF0aW9uLnYxLlJlZ2lzdHJhdGlvbkVycm9ySABCBwoFZXZlbnQiJQoSQ2VydFJlbmV3YWxSZXF1ZXN0Eg8KB2Nzcl9wZW0YASABKAkiRQoTQ2VydFJlbmV3YWxSZXNwb25zZRIXCg9jZXJ0aWZpY2F0ZV9wZW0YASABKAkSFQoNY2FfYnVuZGxlX3BlbRgCIAEoCUICSAFiBnByb3RvMw");
11
+ fileDesc("Ci5rdXNpbnRhL2lvdC9yZWdpc3RyYXRpb24vdjEvcmVnaXN0cmF0aW9uLnByb3RvEhtrdXNpbnRhLmlvdC5yZWdpc3RyYXRpb24udjEiVwoTUmVnaXN0cmF0aW9uUmVxdWVzdBIaChJyZWdpc3RyYXRpb25fdG9rZW4YASABKAkSEwoLZXh0ZXJuYWxfaXAYAiABKAkSDwoHY3NyX3BlbRgDIAEoCSIkChRSZWdpc3RyYXRpb25Qcm9ncmVzcxIMCgRzdGVwGAEgASgJIl8KFFJlZ2lzdHJhdGlvbkNvbXBsZXRlEhcKD2NlcnRpZmljYXRlX3BlbRgBIAEoCRIVCg1jYV9idW5kbGVfcGVtGAIgASgJEhcKD293bmVyc2hpcF9lcG9jaBgDIAEoCSIyChFSZWdpc3RyYXRpb25FcnJvchIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAki7gEKFFJlZ2lzdHJhdGlvblJlc3BvbnNlEkUKCHByb2dyZXNzGAEgASgLMjEua3VzaW50YS5pb3QucmVnaXN0cmF0aW9uLnYxLlJlZ2lzdHJhdGlvblByb2dyZXNzSAASRQoIY29tcGxldGUYAiABKAsyMS5rdXNpbnRhLmlvdC5yZWdpc3RyYXRpb24udjEuUmVnaXN0cmF0aW9uQ29tcGxldGVIABI/CgVlcnJvchgDIAEoCzIuLmt1c2ludGEuaW90LnJlZ2lzdHJhdGlvbi52MS5SZWdpc3RyYXRpb25FcnJvckgAQgcKBWV2ZW50IiUKEkNlcnRSZW5ld2FsUmVxdWVzdBIPCgdjc3JfcGVtGAEgASgJIkUKE0NlcnRSZW5ld2FsUmVzcG9uc2USFwoPY2VydGlmaWNhdGVfcGVtGAEgASgJEhUKDWNhX2J1bmRsZV9wZW0YAiABKAlCAkgBYgZwcm90bzM");
12
12
 
13
13
  /**
14
14
  * Describes the message kusinta.iot.registration.v1.RegistrationRequest.
@@ -421,8 +421,9 @@ export declare const ReportProblemsResponseSchema: GenMessage<ReportProblemsResp
421
421
  *
422
422
  * The administration of the gateway is not reported here; the administrator's own service
423
423
  * memberships, if any, are, like anyone's. The api-server records who administers a gateway
424
- * itself, and from when, and gives the administrator every space the gateway serves
425
- * from that moment, applying a change of administrator at once. A problem with no space the
424
+ * itself — the administrators of the organisation that owns it — and from when, and gives each
425
+ * administrator every space the gateway serves from that moment, applying a change of
426
+ * administrator, or of owning organisation, at once. A problem with no space the
426
427
  * api-server holds — a device filed nowhere, a space not yet held or since removed — is shown
427
428
  * only to the administrator. A problem about a connector or the gateway itself concerns no
428
429
  * one's home, and is shown to the administrator and every member with any reach.
@@ -717,20 +718,25 @@ export declare const ReportServedSpacesResponseSchema: GenMessage<ReportServedSp
717
718
  * person connect and leaving is what revokes them. Roles do not follow relations
718
719
  * (access.v1.MembershipRelation): a relation changing alone changes nothing reported here.
719
720
  *
720
- * Who registered the gateway is the api-server's own record, not the gateway's. The
721
- * administration that came with registering it is never taken away by this report — not by
722
- * its absence from a snapshot, not by removed_user_ids — and ends only with a change of who
723
- * is registered as the gateway's administrator at the api-server. Any other administrator is
724
- * a member reported with ROLE_GATEWAY_ADMIN, whom the api-server gives what it gives the
725
- * registering one, from administrator_since (see ServiceReach). Where the registering
726
- * administrator is also reported so, the api-server's record governs: their administration
727
- * counts from the earlier of its own start and administrator_since.
721
+ * Which organisation owns the gateway, and who its administrators are, is the api-server's own
722
+ * record, not the gateway's. The administration that comes with them is never taken away by this
723
+ * report — not by absence from a snapshot, not by removed_user_ids — and ends only when the
724
+ * person stops being an administrator of the owning organisation, or the gateway moves to
725
+ * another (signaling.v1.TransferOutcome). Any other administrator is a member reported with
726
+ * ROLE_GATEWAY_ADMIN, whom the api-server gives what it gives the organisation's, from
727
+ * administrator_since (see ServiceReach). Where an administrator of the organisation is also
728
+ * reported so, the api-server's record governs: their administration counts from the earlier of
729
+ * its own start and administrator_since. The api-server's own start for an organisation's
730
+ * administrator is never before the gateway came to that organisation, so a new owner learns
731
+ * nothing from before a transfer.
728
732
  *
729
- * A member here is a user the gateway holds a membership or a role for, and no one else. The
730
- * registering administrator is reported only when the gateway holds one of those for them —
731
- * a membership, or ROLE_PROPERTY_OWNER they were given — and never with the
732
- * ROLE_GATEWAY_ADMIN their token carries. That the gateway recognises them otherwise
733
- * (webrtc.v1.MemberDetail.registering_admin) does not make them a member of this report.
733
+ * A member here is a user the gateway holds a membership or a role for, and no one else. A
734
+ * vouched administrator (signaling.v1.VouchedAdministrators) is reported only when the gateway
735
+ * holds one of those for them — a membership, or ROLE_PROPERTY_OWNER they were given — and
736
+ * never with the ROLE_GATEWAY_ADMIN the vouched set and their token give. That the gateway
737
+ * lists them otherwise (webrtc.v1.MemberDetail.vouched_admin) does not make them a member of
738
+ * this report. After a wipe (signaling.v1.GatewayDeleted, WIPE) the gateway reports a snapshot
739
+ * with no members.
734
740
  *
735
741
  * @generated from message kusinta.iot.reporting.v1.GatewayMember
736
742
  */