@structured-id/ui-core 1.2.0 → 1.3.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/README.md +9 -5
- package/dist/browser-vp/index.d.cts +0 -11
- package/dist/browser-vp/index.d.ts +0 -11
- package/dist/index.cjs +13721 -9514
- package/dist/index.d.cts +4362 -2375
- package/dist/index.d.ts +4362 -2375
- package/dist/index.js +13937 -9730
- package/package.json +3 -3
- package/src/browser-vp/crypto.ts +0 -1
- package/src/browser-vp/index.ts +0 -2
- package/src/browser-vp/prf.ts +0 -2
- package/src/browser-vp/storage.ts +0 -2
- package/src/browser-vp/types.ts +0 -2
- package/src/browser-vp/vp.ts +0 -2
- package/src/composables/index.ts +6 -1
- package/src/composables/useAccountTransport.test.ts +121 -0
- package/src/composables/useAccountTransport.ts +69 -0
- package/src/composables/useBffAuth.ts +44 -34
- package/src/generated/google/api/httpbody.ts +159 -0
- package/src/generated/google/protobuf/any.ts +326 -0
- package/src/generated/google/rpc/error_details.ts +1386 -0
- package/src/generated/google/rpc/status.ts +127 -0
- package/src/generated/sid/v1/account/account.ts +1 -1
- package/src/generated/sid/v1/admin/admin.client.ts +15 -12
- package/src/generated/sid/v1/admin/admin.ts +24 -89
- package/src/generated/sid/v1/admin/enrollment.client.ts +24 -12
- package/src/generated/sid/v1/admin/enrollment.ts +65 -3
- package/src/generated/sid/v1/admin/events.client.ts +8 -8
- package/src/generated/sid/v1/admin/flow.ts +1 -1
- package/src/generated/sid/v1/admin/keys.ts +1 -1
- package/src/generated/sid/v1/admin/notifications.client.ts +12 -6
- package/src/generated/sid/v1/admin/notifications.ts +11 -70
- package/src/generated/sid/v1/admin/operations.ts +20 -35
- package/src/generated/sid/v1/admin/organizations.client.ts +2 -2
- package/src/generated/sid/v1/admin/organizations.ts +15 -32
- package/src/generated/sid/v1/admin/provisioning.client.ts +232 -0
- package/src/generated/sid/v1/admin/provisioning.ts +1383 -0
- package/src/generated/sid/v1/admin/scopes.ts +1 -1
- package/src/generated/sid/v1/admin/security.client.ts +22 -24
- package/src/generated/sid/v1/admin/security.ts +13 -22
- package/src/generated/sid/v1/admin/settings.client.ts +29 -18
- package/src/generated/sid/v1/admin/settings.ts +2 -82
- package/src/generated/sid/v1/attestation/attestation.client.ts +6 -6
- package/src/generated/sid/v1/attestation/attestation.ts +8 -8
- package/src/generated/sid/v1/authn/auth.client.ts +101 -58
- package/src/generated/sid/v1/authn/auth.ts +842 -414
- package/src/generated/sid/v1/authn/flows.ts +0 -12
- package/src/generated/sid/v1/authn/issuer.client.ts +489 -0
- package/src/generated/sid/v1/authn/issuer.ts +1600 -0
- package/src/generated/sid/v1/authn/password_history.client.ts +57 -0
- package/src/generated/sid/v1/authn/password_history.ts +578 -0
- package/src/generated/sid/v1/authn/system_integration.client.ts +73 -0
- package/src/generated/sid/v1/authn/system_integration.ts +218 -0
- package/src/generated/sid/v1/authz/authz.ts +1498 -317
- package/src/generated/sid/v1/authz/forward_auth.client.ts +97 -0
- package/src/generated/sid/v1/authz/forward_auth.ts +79 -0
- package/src/generated/sid/v1/authz/governance.client.ts +2 -2
- package/src/generated/sid/v1/authz/governance.ts +61 -4
- package/src/generated/sid/v1/common/errors.ts +532 -6
- package/src/generated/sid/v1/events/event_stream.client.ts +2 -2
- package/src/generated/sid/v1/events/event_stream.ts +2 -1
- package/src/generated/sid/v1/identity/identity.ts +98 -58
- package/src/generated/sid/v1/ids/ids.ts +395 -0
- package/src/generated/sid/v1/machine/machine_user.ts +0 -36
- package/src/generated/sid/v1/machine/pat.client.ts +2 -19
- package/src/generated/sid/v1/machine/pat.ts +1 -186
- package/src/generated/sid/v1/projects/projects.client.ts +137 -19
- package/src/generated/sid/v1/projects/projects.ts +2105 -405
- package/src/generated/sid/v1/scim/scim.client.ts +248 -2
- package/src/generated/sid/v1/scim/scim.ts +153 -14
- package/src/generated/sid/v1/test/test.ts +1 -1
- package/src/i18n/index.ts +0 -11
- package/src/index.ts +36 -2
- package/src/package-exports.test.ts +18 -0
- package/src/profile/components/SidLoginForm.vue +5 -2
- package/src/profile/components/SidRegistrationForm.test.ts +58 -1
- package/src/profile/components/SidRegistrationForm.vue +110 -12
- package/src/profile/components/index.ts +4 -0
- package/src/profile/composables/index.ts +2 -1
- package/src/profile/composables/useAccountApi.ts +20 -7
- package/src/profile/composables/useAuth.test.ts +453 -0
- package/src/profile/composables/useAuth.ts +414 -0
- package/src/profile/composables/useAuthApi.opaque.test.ts +18 -0
- package/src/profile/composables/useAuthApi.ts +188 -20
- package/src/profile/composables/useEnrollmentApi.test.ts +33 -0
- package/src/profile/composables/useEnrollmentApi.ts +26 -0
- package/src/profile/composables/useIdentityApi.ts +17 -7
- package/src/profile/composables/useLoginSuccess.test.ts +97 -3
- package/src/profile/composables/useLoginSuccess.ts +80 -22
- package/src/profile/composables/useSecurityLevel.test.ts +10 -3
- package/src/profile/composables/useSecurityLevel.ts +12 -3
- package/src/quasar/SidPrincipalInput.vue +4 -7
- package/src/utils/normalizePrincipal.test.ts +19 -5
- package/src/utils/normalizePrincipal.ts +7 -9
- package/src/utils/rpcRefusal.test.ts +151 -0
- package/src/utils/rpcRefusal.ts +252 -0
- package/src/utils/validators.test.ts +9 -0
- package/src/utils/validators.ts +14 -2
- package/src/composables/useAuth.ts +0 -40
- package/src/profile/composables/useOpaqueAuth.test.ts +0 -290
- package/src/profile/composables/useOpaqueAuth.ts +0 -191
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// @generated by protobuf-ts 2.11.1 with parameter client_generic,generate_dependencies
|
|
2
|
+
// @generated from protobuf file "google/rpc/status.proto" (package "google.rpc", syntax proto3)
|
|
3
|
+
// tslint:disable
|
|
4
|
+
//
|
|
5
|
+
// Copyright 2025 Google LLC
|
|
6
|
+
//
|
|
7
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
// you may not use this file except in compliance with the License.
|
|
9
|
+
// You may obtain a copy of the License at
|
|
10
|
+
//
|
|
11
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
//
|
|
13
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
// See the License for the specific language governing permissions and
|
|
17
|
+
// limitations under the License.
|
|
18
|
+
//
|
|
19
|
+
import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
|
|
20
|
+
import type { IBinaryWriter } from "@protobuf-ts/runtime";
|
|
21
|
+
import { WireType } from "@protobuf-ts/runtime";
|
|
22
|
+
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
|
|
23
|
+
import type { IBinaryReader } from "@protobuf-ts/runtime";
|
|
24
|
+
import { UnknownFieldHandler } from "@protobuf-ts/runtime";
|
|
25
|
+
import type { PartialMessage } from "@protobuf-ts/runtime";
|
|
26
|
+
import { reflectionMergePartial } from "@protobuf-ts/runtime";
|
|
27
|
+
import { MessageType } from "@protobuf-ts/runtime";
|
|
28
|
+
import { Any } from "../protobuf/any";
|
|
29
|
+
/**
|
|
30
|
+
* The `Status` type defines a logical error model that is suitable for
|
|
31
|
+
* different programming environments, including REST APIs and RPC APIs. It is
|
|
32
|
+
* used by [gRPC](https://github.com/grpc). Each `Status` message contains
|
|
33
|
+
* three pieces of data: error code, error message, and error details.
|
|
34
|
+
*
|
|
35
|
+
* You can find out more about this error model and how to work with it in the
|
|
36
|
+
* [API Design Guide](https://cloud.google.com/apis/design/errors).
|
|
37
|
+
*
|
|
38
|
+
* @generated from protobuf message google.rpc.Status
|
|
39
|
+
*/
|
|
40
|
+
export interface Status {
|
|
41
|
+
/**
|
|
42
|
+
* The status code, which should be an enum value of
|
|
43
|
+
* [google.rpc.Code][google.rpc.Code].
|
|
44
|
+
*
|
|
45
|
+
* @generated from protobuf field: int32 code = 1
|
|
46
|
+
*/
|
|
47
|
+
code: number;
|
|
48
|
+
/**
|
|
49
|
+
* A developer-facing error message, which should be in English. Any
|
|
50
|
+
* user-facing error message should be localized and sent in the
|
|
51
|
+
* [google.rpc.Status.details][google.rpc.Status.details] field, or localized
|
|
52
|
+
* by the client.
|
|
53
|
+
*
|
|
54
|
+
* @generated from protobuf field: string message = 2
|
|
55
|
+
*/
|
|
56
|
+
message: string;
|
|
57
|
+
/**
|
|
58
|
+
* A list of messages that carry the error details. There is a common set of
|
|
59
|
+
* message types for APIs to use.
|
|
60
|
+
*
|
|
61
|
+
* @generated from protobuf field: repeated google.protobuf.Any details = 3
|
|
62
|
+
*/
|
|
63
|
+
details: Any[];
|
|
64
|
+
}
|
|
65
|
+
// @generated message type with reflection information, may provide speed optimized methods
|
|
66
|
+
class Status$Type extends MessageType<Status> {
|
|
67
|
+
constructor() {
|
|
68
|
+
super("google.rpc.Status", [
|
|
69
|
+
{ no: 1, name: "code", kind: "scalar", T: 5 /*ScalarType.INT32*/ },
|
|
70
|
+
{ no: 2, name: "message", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
|
71
|
+
{ no: 3, name: "details", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Any }
|
|
72
|
+
]);
|
|
73
|
+
}
|
|
74
|
+
create(value?: PartialMessage<Status>): Status {
|
|
75
|
+
const message = globalThis.Object.create((this.messagePrototype!));
|
|
76
|
+
message.code = 0;
|
|
77
|
+
message.message = "";
|
|
78
|
+
message.details = [];
|
|
79
|
+
if (value !== undefined)
|
|
80
|
+
reflectionMergePartial<Status>(this, message, value);
|
|
81
|
+
return message;
|
|
82
|
+
}
|
|
83
|
+
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Status): Status {
|
|
84
|
+
let message = target ?? this.create(), end = reader.pos + length;
|
|
85
|
+
while (reader.pos < end) {
|
|
86
|
+
let [fieldNo, wireType] = reader.tag();
|
|
87
|
+
switch (fieldNo) {
|
|
88
|
+
case /* int32 code */ 1:
|
|
89
|
+
message.code = reader.int32();
|
|
90
|
+
break;
|
|
91
|
+
case /* string message */ 2:
|
|
92
|
+
message.message = reader.string();
|
|
93
|
+
break;
|
|
94
|
+
case /* repeated google.protobuf.Any details */ 3:
|
|
95
|
+
message.details.push(Any.internalBinaryRead(reader, reader.uint32(), options));
|
|
96
|
+
break;
|
|
97
|
+
default:
|
|
98
|
+
let u = options.readUnknownField;
|
|
99
|
+
if (u === "throw")
|
|
100
|
+
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
|
101
|
+
let d = reader.skip(wireType);
|
|
102
|
+
if (u !== false)
|
|
103
|
+
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return message;
|
|
107
|
+
}
|
|
108
|
+
internalBinaryWrite(message: Status, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
|
109
|
+
/* int32 code = 1; */
|
|
110
|
+
if (message.code !== 0)
|
|
111
|
+
writer.tag(1, WireType.Varint).int32(message.code);
|
|
112
|
+
/* string message = 2; */
|
|
113
|
+
if (message.message !== "")
|
|
114
|
+
writer.tag(2, WireType.LengthDelimited).string(message.message);
|
|
115
|
+
/* repeated google.protobuf.Any details = 3; */
|
|
116
|
+
for (let i = 0; i < message.details.length; i++)
|
|
117
|
+
Any.internalBinaryWrite(message.details[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();
|
|
118
|
+
let u = options.writeUnknownFields;
|
|
119
|
+
if (u !== false)
|
|
120
|
+
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
121
|
+
return writer;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* @generated MessageType for protobuf message google.rpc.Status
|
|
126
|
+
*/
|
|
127
|
+
export const Status = new Status$Type();
|
|
@@ -18,7 +18,7 @@ import { ProfilePhone } from "../identity/identity";
|
|
|
18
18
|
import { PhoneLabel } from "../identity/identity";
|
|
19
19
|
import { Timestamp } from "../../../google/protobuf/timestamp";
|
|
20
20
|
// ══════════════════════════════════════════════════════════════════════════
|
|
21
|
-
// Consent management — claim-level consent control
|
|
21
|
+
// Consent management — claim-level consent control
|
|
22
22
|
// ══════════════════════════════════════════════════════════════════════════
|
|
23
23
|
|
|
24
24
|
/**
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
|
|
5
5
|
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
|
|
6
6
|
import { AdminService } from "./admin";
|
|
7
|
-
import type { Empty } from "../../../google/protobuf/empty";
|
|
8
7
|
import type { DeleteProfileMetadataRequest } from "./admin";
|
|
9
8
|
import type { SetProfileMetadataRequest } from "./admin";
|
|
10
9
|
import type { ProfileMetadataEntry } from "./admin";
|
|
@@ -16,8 +15,8 @@ import type { RevokeAllSessionsRequest } from "./admin";
|
|
|
16
15
|
import type { AdminUpdateProfileResponse } from "./admin";
|
|
17
16
|
import type { AdminUpdateProfileRequest } from "./admin";
|
|
18
17
|
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
|
|
19
|
-
import type {
|
|
20
|
-
import type {
|
|
18
|
+
import type { Empty } from "../../../google/protobuf/empty";
|
|
19
|
+
import type { ClaimInstanceRequest } from "./admin";
|
|
21
20
|
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
|
|
22
21
|
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
|
|
23
22
|
/**
|
|
@@ -27,12 +26,14 @@ import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
|
|
|
27
26
|
*/
|
|
28
27
|
export interface IAdminServiceClient {
|
|
29
28
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
29
|
+
* Make the signed-in caller the first administrator of an unclaimed
|
|
30
|
+
* installation, with the claim token from the service log. The token is
|
|
31
|
+
* consumed in the same transaction. FAILED_PRECONDITION once the installation
|
|
32
|
+
* is claimed; PERMISSION_DENIED for a token that does not match.
|
|
32
33
|
*
|
|
33
|
-
* @generated from protobuf rpc:
|
|
34
|
+
* @generated from protobuf rpc: ClaimInstance
|
|
34
35
|
*/
|
|
35
|
-
|
|
36
|
+
claimInstance(input: ClaimInstanceRequest, options?: RpcOptions): UnaryCall<ClaimInstanceRequest, Empty>;
|
|
36
37
|
/**
|
|
37
38
|
* Update a profile with admin-only fields (status, roles, email verification).
|
|
38
39
|
*
|
|
@@ -76,14 +77,16 @@ export class AdminServiceClient implements IAdminServiceClient, ServiceInfo {
|
|
|
76
77
|
constructor(private readonly _transport: RpcTransport) {
|
|
77
78
|
}
|
|
78
79
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
80
|
+
* Make the signed-in caller the first administrator of an unclaimed
|
|
81
|
+
* installation, with the claim token from the service log. The token is
|
|
82
|
+
* consumed in the same transaction. FAILED_PRECONDITION once the installation
|
|
83
|
+
* is claimed; PERMISSION_DENIED for a token that does not match.
|
|
81
84
|
*
|
|
82
|
-
* @generated from protobuf rpc:
|
|
85
|
+
* @generated from protobuf rpc: ClaimInstance
|
|
83
86
|
*/
|
|
84
|
-
|
|
87
|
+
claimInstance(input: ClaimInstanceRequest, options?: RpcOptions): UnaryCall<ClaimInstanceRequest, Empty> {
|
|
85
88
|
const method = this.methods[0], opt = this._transport.mergeOptions(options);
|
|
86
|
-
return stackIntercept<
|
|
89
|
+
return stackIntercept<ClaimInstanceRequest, Empty>("unary", this._transport, method, opt, input);
|
|
87
90
|
}
|
|
88
91
|
/**
|
|
89
92
|
* Update a profile with admin-only fields (status, roles, email verification).
|
|
@@ -15,29 +15,19 @@ import { MessageType } from "@protobuf-ts/runtime";
|
|
|
15
15
|
import { Timestamp } from "../../../google/protobuf/timestamp";
|
|
16
16
|
import { Value } from "../../../google/protobuf/struct";
|
|
17
17
|
import { ProfileStatus } from "../identity/identity";
|
|
18
|
-
// ──
|
|
18
|
+
// ── Instance claim ──
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* @generated from protobuf message sid.v1.admin.
|
|
21
|
+
* @generated from protobuf message sid.v1.admin.ClaimInstanceRequest
|
|
22
22
|
*/
|
|
23
|
-
export interface
|
|
23
|
+
export interface ClaimInstanceRequest {
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @generated from protobuf message sid.v1.admin.BootstrapResponse
|
|
31
|
-
*/
|
|
32
|
-
export interface BootstrapResponse {
|
|
33
|
-
/**
|
|
34
|
-
* @generated from protobuf field: string profile_id = 1
|
|
35
|
-
*/
|
|
36
|
-
profileId: string;
|
|
37
|
-
/**
|
|
38
|
-
* @generated from protobuf field: string message = 2
|
|
25
|
+
* Instance claim token (`sidclaim_...`) the operator read from the service log
|
|
26
|
+
* of an installation that has no administrator. Bearer secret: never logged.
|
|
27
|
+
*
|
|
28
|
+
* @generated from protobuf field: string claim_token = 1
|
|
39
29
|
*/
|
|
40
|
-
|
|
30
|
+
claimToken: string;
|
|
41
31
|
}
|
|
42
32
|
// ── Admin Update Profile ──
|
|
43
33
|
|
|
@@ -185,78 +175,26 @@ export interface DeleteProfileMetadataRequest {
|
|
|
185
175
|
key: string;
|
|
186
176
|
}
|
|
187
177
|
// @generated message type with reflection information, may provide speed optimized methods
|
|
188
|
-
class
|
|
189
|
-
constructor() {
|
|
190
|
-
super("sid.v1.admin.BootstrapRequest", [
|
|
191
|
-
{ no: 1, name: "username", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
|
192
|
-
]);
|
|
193
|
-
}
|
|
194
|
-
create(value?: PartialMessage<BootstrapRequest>): BootstrapRequest {
|
|
195
|
-
const message = globalThis.Object.create((this.messagePrototype!));
|
|
196
|
-
message.username = "";
|
|
197
|
-
if (value !== undefined)
|
|
198
|
-
reflectionMergePartial<BootstrapRequest>(this, message, value);
|
|
199
|
-
return message;
|
|
200
|
-
}
|
|
201
|
-
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BootstrapRequest): BootstrapRequest {
|
|
202
|
-
let message = target ?? this.create(), end = reader.pos + length;
|
|
203
|
-
while (reader.pos < end) {
|
|
204
|
-
let [fieldNo, wireType] = reader.tag();
|
|
205
|
-
switch (fieldNo) {
|
|
206
|
-
case /* string username */ 1:
|
|
207
|
-
message.username = reader.string();
|
|
208
|
-
break;
|
|
209
|
-
default:
|
|
210
|
-
let u = options.readUnknownField;
|
|
211
|
-
if (u === "throw")
|
|
212
|
-
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
|
213
|
-
let d = reader.skip(wireType);
|
|
214
|
-
if (u !== false)
|
|
215
|
-
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
return message;
|
|
219
|
-
}
|
|
220
|
-
internalBinaryWrite(message: BootstrapRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
|
221
|
-
/* string username = 1; */
|
|
222
|
-
if (message.username !== "")
|
|
223
|
-
writer.tag(1, WireType.LengthDelimited).string(message.username);
|
|
224
|
-
let u = options.writeUnknownFields;
|
|
225
|
-
if (u !== false)
|
|
226
|
-
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
227
|
-
return writer;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* @generated MessageType for protobuf message sid.v1.admin.BootstrapRequest
|
|
232
|
-
*/
|
|
233
|
-
export const BootstrapRequest = new BootstrapRequest$Type();
|
|
234
|
-
// @generated message type with reflection information, may provide speed optimized methods
|
|
235
|
-
class BootstrapResponse$Type extends MessageType<BootstrapResponse> {
|
|
178
|
+
class ClaimInstanceRequest$Type extends MessageType<ClaimInstanceRequest> {
|
|
236
179
|
constructor() {
|
|
237
|
-
super("sid.v1.admin.
|
|
238
|
-
{ no: 1, name: "
|
|
239
|
-
{ no: 2, name: "message", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
|
180
|
+
super("sid.v1.admin.ClaimInstanceRequest", [
|
|
181
|
+
{ no: 1, name: "claim_token", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
|
240
182
|
]);
|
|
241
183
|
}
|
|
242
|
-
create(value?: PartialMessage<
|
|
184
|
+
create(value?: PartialMessage<ClaimInstanceRequest>): ClaimInstanceRequest {
|
|
243
185
|
const message = globalThis.Object.create((this.messagePrototype!));
|
|
244
|
-
message.
|
|
245
|
-
message.message = "";
|
|
186
|
+
message.claimToken = "";
|
|
246
187
|
if (value !== undefined)
|
|
247
|
-
reflectionMergePartial<
|
|
188
|
+
reflectionMergePartial<ClaimInstanceRequest>(this, message, value);
|
|
248
189
|
return message;
|
|
249
190
|
}
|
|
250
|
-
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?:
|
|
191
|
+
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ClaimInstanceRequest): ClaimInstanceRequest {
|
|
251
192
|
let message = target ?? this.create(), end = reader.pos + length;
|
|
252
193
|
while (reader.pos < end) {
|
|
253
194
|
let [fieldNo, wireType] = reader.tag();
|
|
254
195
|
switch (fieldNo) {
|
|
255
|
-
case /* string
|
|
256
|
-
message.
|
|
257
|
-
break;
|
|
258
|
-
case /* string message */ 2:
|
|
259
|
-
message.message = reader.string();
|
|
196
|
+
case /* string claim_token */ 1:
|
|
197
|
+
message.claimToken = reader.string();
|
|
260
198
|
break;
|
|
261
199
|
default:
|
|
262
200
|
let u = options.readUnknownField;
|
|
@@ -269,13 +207,10 @@ class BootstrapResponse$Type extends MessageType<BootstrapResponse> {
|
|
|
269
207
|
}
|
|
270
208
|
return message;
|
|
271
209
|
}
|
|
272
|
-
internalBinaryWrite(message:
|
|
273
|
-
/* string
|
|
274
|
-
if (message.
|
|
275
|
-
writer.tag(1, WireType.LengthDelimited).string(message.
|
|
276
|
-
/* string message = 2; */
|
|
277
|
-
if (message.message !== "")
|
|
278
|
-
writer.tag(2, WireType.LengthDelimited).string(message.message);
|
|
210
|
+
internalBinaryWrite(message: ClaimInstanceRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
|
211
|
+
/* string claim_token = 1; */
|
|
212
|
+
if (message.claimToken !== "")
|
|
213
|
+
writer.tag(1, WireType.LengthDelimited).string(message.claimToken);
|
|
279
214
|
let u = options.writeUnknownFields;
|
|
280
215
|
if (u !== false)
|
|
281
216
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
@@ -283,9 +218,9 @@ class BootstrapResponse$Type extends MessageType<BootstrapResponse> {
|
|
|
283
218
|
}
|
|
284
219
|
}
|
|
285
220
|
/**
|
|
286
|
-
* @generated MessageType for protobuf message sid.v1.admin.
|
|
221
|
+
* @generated MessageType for protobuf message sid.v1.admin.ClaimInstanceRequest
|
|
287
222
|
*/
|
|
288
|
-
export const
|
|
223
|
+
export const ClaimInstanceRequest = new ClaimInstanceRequest$Type();
|
|
289
224
|
// @generated message type with reflection information, may provide speed optimized methods
|
|
290
225
|
class AdminUpdateProfileRequest$Type extends MessageType<AdminUpdateProfileRequest> {
|
|
291
226
|
constructor() {
|
|
@@ -836,7 +771,7 @@ export const DeleteProfileMetadataRequest = new DeleteProfileMetadataRequest$Typ
|
|
|
836
771
|
* @generated ServiceType for protobuf service sid.v1.admin.AdminService
|
|
837
772
|
*/
|
|
838
773
|
export const AdminService = new ServiceType("sid.v1.admin.AdminService", [
|
|
839
|
-
{ name: "
|
|
774
|
+
{ name: "ClaimInstance", options: { "google.api.http": { post: "/v1/admin/claim", body: "*" } }, I: ClaimInstanceRequest, O: Empty },
|
|
840
775
|
{ name: "AdminUpdateProfile", options: { "google.api.http": { patch: "/v1/admin/profiles/{profile_id}", body: "*" } }, I: AdminUpdateProfileRequest, O: AdminUpdateProfileResponse },
|
|
841
776
|
{ name: "RevokeAllSessions", idempotency: "IDEMPOTENT", options: { "google.api.http": { delete: "/v1/admin/profiles/{profile_id}/sessions" } }, I: RevokeAllSessionsRequest, O: RevokeAllSessionsResponse },
|
|
842
777
|
{ name: "ListProfileMetadata", idempotency: "NO_SIDE_EFFECTS", options: { "google.api.http": { get: "/v1/admin/profiles/{profile_id}/metadata" } }, I: ListProfileMetadataRequest, O: ListProfileMetadataResponse },
|
|
@@ -14,6 +14,7 @@ import type { ListInvitesRequest } from "./enrollment";
|
|
|
14
14
|
import type { Invite } from "./enrollment";
|
|
15
15
|
import type { CreateInviteRequest } from "./enrollment";
|
|
16
16
|
import type { UpdateEnrollmentPolicyRequest } from "./enrollment";
|
|
17
|
+
import type { InstanceStatus } from "./enrollment";
|
|
17
18
|
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
|
|
18
19
|
import type { EnrollmentPolicy } from "./enrollment";
|
|
19
20
|
import type { Empty } from "../../../google/protobuf/empty";
|
|
@@ -23,9 +24,6 @@ import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
|
|
|
23
24
|
* EnrollmentService manages registration gating policies, invite codes,
|
|
24
25
|
* and registration source analytics.
|
|
25
26
|
*
|
|
26
|
-
* CE ships 4 hardcoded enrollment modes (Open, InviteOnly, AdminOnly,
|
|
27
|
-
* DomainRestricted). EE adds per-application overrides and pluggable rules.
|
|
28
|
-
*
|
|
29
27
|
* ── Enrollment Policy ──
|
|
30
28
|
*
|
|
31
29
|
* @generated from protobuf service sid.v1.admin.EnrollmentService
|
|
@@ -37,6 +35,13 @@ export interface IEnrollmentServiceClient {
|
|
|
37
35
|
* @generated from protobuf rpc: GetEnrollmentPolicy
|
|
38
36
|
*/
|
|
39
37
|
getEnrollmentPolicy(input: Empty, options?: RpcOptions): UnaryCall<Empty, EnrollmentPolicy>;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the installation has been claimed by its first administrator.
|
|
40
|
+
* Public: while unclaimed, the registration page asks for the claim token.
|
|
41
|
+
*
|
|
42
|
+
* @generated from protobuf rpc: GetInstanceStatus
|
|
43
|
+
*/
|
|
44
|
+
getInstanceStatus(input: Empty, options?: RpcOptions): UnaryCall<Empty, InstanceStatus>;
|
|
40
45
|
/**
|
|
41
46
|
* Update the enrollment policy (mode, domains, tracking).
|
|
42
47
|
*
|
|
@@ -82,9 +87,6 @@ export interface IEnrollmentServiceClient {
|
|
|
82
87
|
* EnrollmentService manages registration gating policies, invite codes,
|
|
83
88
|
* and registration source analytics.
|
|
84
89
|
*
|
|
85
|
-
* CE ships 4 hardcoded enrollment modes (Open, InviteOnly, AdminOnly,
|
|
86
|
-
* DomainRestricted). EE adds per-application overrides and pluggable rules.
|
|
87
|
-
*
|
|
88
90
|
* ── Enrollment Policy ──
|
|
89
91
|
*
|
|
90
92
|
* @generated from protobuf service sid.v1.admin.EnrollmentService
|
|
@@ -104,13 +106,23 @@ export class EnrollmentServiceClient implements IEnrollmentServiceClient, Servic
|
|
|
104
106
|
const method = this.methods[0], opt = this._transport.mergeOptions(options);
|
|
105
107
|
return stackIntercept<Empty, EnrollmentPolicy>("unary", this._transport, method, opt, input);
|
|
106
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Whether the installation has been claimed by its first administrator.
|
|
111
|
+
* Public: while unclaimed, the registration page asks for the claim token.
|
|
112
|
+
*
|
|
113
|
+
* @generated from protobuf rpc: GetInstanceStatus
|
|
114
|
+
*/
|
|
115
|
+
getInstanceStatus(input: Empty, options?: RpcOptions): UnaryCall<Empty, InstanceStatus> {
|
|
116
|
+
const method = this.methods[1], opt = this._transport.mergeOptions(options);
|
|
117
|
+
return stackIntercept<Empty, InstanceStatus>("unary", this._transport, method, opt, input);
|
|
118
|
+
}
|
|
107
119
|
/**
|
|
108
120
|
* Update the enrollment policy (mode, domains, tracking).
|
|
109
121
|
*
|
|
110
122
|
* @generated from protobuf rpc: UpdateEnrollmentPolicy
|
|
111
123
|
*/
|
|
112
124
|
updateEnrollmentPolicy(input: UpdateEnrollmentPolicyRequest, options?: RpcOptions): UnaryCall<UpdateEnrollmentPolicyRequest, EnrollmentPolicy> {
|
|
113
|
-
const method = this.methods[
|
|
125
|
+
const method = this.methods[2], opt = this._transport.mergeOptions(options);
|
|
114
126
|
return stackIntercept<UpdateEnrollmentPolicyRequest, EnrollmentPolicy>("unary", this._transport, method, opt, input);
|
|
115
127
|
}
|
|
116
128
|
// ── Invite Management ──
|
|
@@ -121,7 +133,7 @@ export class EnrollmentServiceClient implements IEnrollmentServiceClient, Servic
|
|
|
121
133
|
* @generated from protobuf rpc: CreateInvite
|
|
122
134
|
*/
|
|
123
135
|
createInvite(input: CreateInviteRequest, options?: RpcOptions): UnaryCall<CreateInviteRequest, Invite> {
|
|
124
|
-
const method = this.methods[
|
|
136
|
+
const method = this.methods[3], opt = this._transport.mergeOptions(options);
|
|
125
137
|
return stackIntercept<CreateInviteRequest, Invite>("unary", this._transport, method, opt, input);
|
|
126
138
|
}
|
|
127
139
|
/**
|
|
@@ -130,7 +142,7 @@ export class EnrollmentServiceClient implements IEnrollmentServiceClient, Servic
|
|
|
130
142
|
* @generated from protobuf rpc: ListInvites
|
|
131
143
|
*/
|
|
132
144
|
listInvites(input: ListInvitesRequest, options?: RpcOptions): UnaryCall<ListInvitesRequest, ListInvitesResponse> {
|
|
133
|
-
const method = this.methods[
|
|
145
|
+
const method = this.methods[4], opt = this._transport.mergeOptions(options);
|
|
134
146
|
return stackIntercept<ListInvitesRequest, ListInvitesResponse>("unary", this._transport, method, opt, input);
|
|
135
147
|
}
|
|
136
148
|
/**
|
|
@@ -139,7 +151,7 @@ export class EnrollmentServiceClient implements IEnrollmentServiceClient, Servic
|
|
|
139
151
|
* @generated from protobuf rpc: RevokeInvite
|
|
140
152
|
*/
|
|
141
153
|
revokeInvite(input: RevokeInviteRequest, options?: RpcOptions): UnaryCall<RevokeInviteRequest, Empty> {
|
|
142
|
-
const method = this.methods[
|
|
154
|
+
const method = this.methods[5], opt = this._transport.mergeOptions(options);
|
|
143
155
|
return stackIntercept<RevokeInviteRequest, Empty>("unary", this._transport, method, opt, input);
|
|
144
156
|
}
|
|
145
157
|
/**
|
|
@@ -148,7 +160,7 @@ export class EnrollmentServiceClient implements IEnrollmentServiceClient, Servic
|
|
|
148
160
|
* @generated from protobuf rpc: BulkCreateInvites
|
|
149
161
|
*/
|
|
150
162
|
bulkCreateInvites(input: BulkCreateInvitesRequest, options?: RpcOptions): UnaryCall<BulkCreateInvitesRequest, BulkCreateInvitesResponse> {
|
|
151
|
-
const method = this.methods[
|
|
163
|
+
const method = this.methods[6], opt = this._transport.mergeOptions(options);
|
|
152
164
|
return stackIntercept<BulkCreateInvitesRequest, BulkCreateInvitesResponse>("unary", this._transport, method, opt, input);
|
|
153
165
|
}
|
|
154
166
|
// ── Registration Analytics ──
|
|
@@ -159,7 +171,7 @@ export class EnrollmentServiceClient implements IEnrollmentServiceClient, Servic
|
|
|
159
171
|
* @generated from protobuf rpc: GetRegistrationStats
|
|
160
172
|
*/
|
|
161
173
|
getRegistrationStats(input: GetRegistrationStatsRequest, options?: RpcOptions): UnaryCall<GetRegistrationStatsRequest, RegistrationStats> {
|
|
162
|
-
const method = this.methods[
|
|
174
|
+
const method = this.methods[7], opt = this._transport.mergeOptions(options);
|
|
163
175
|
return stackIntercept<GetRegistrationStatsRequest, RegistrationStats>("unary", this._transport, method, opt, input);
|
|
164
176
|
}
|
|
165
177
|
}
|
|
@@ -13,6 +13,21 @@ import type { PartialMessage } from "@protobuf-ts/runtime";
|
|
|
13
13
|
import { reflectionMergePartial } from "@protobuf-ts/runtime";
|
|
14
14
|
import { MessageType } from "@protobuf-ts/runtime";
|
|
15
15
|
import { Timestamp } from "../../../google/protobuf/timestamp";
|
|
16
|
+
/**
|
|
17
|
+
* Whether the installation has its first administrator.
|
|
18
|
+
*
|
|
19
|
+
* @generated from protobuf message sid.v1.admin.InstanceStatus
|
|
20
|
+
*/
|
|
21
|
+
export interface InstanceStatus {
|
|
22
|
+
/**
|
|
23
|
+
* False while no administrator exists: self-registration then accepts only a
|
|
24
|
+
* registration carrying the claim token from the service log, whatever the
|
|
25
|
+
* enrollment mode. The token itself is never returned.
|
|
26
|
+
*
|
|
27
|
+
* @generated from protobuf field: bool claimed = 1
|
|
28
|
+
*/
|
|
29
|
+
claimed: boolean;
|
|
30
|
+
}
|
|
16
31
|
// ══════════════════════════════════════════════════════════════════════════
|
|
17
32
|
// Enrollment Policy
|
|
18
33
|
// ══════════════════════════════════════════════════════════════════════════
|
|
@@ -454,8 +469,7 @@ export interface GetRegistrationStatsRequest {
|
|
|
454
469
|
// ══════════════════════════════════════════════════════════════════════════
|
|
455
470
|
|
|
456
471
|
/**
|
|
457
|
-
* Registration gating mode.
|
|
458
|
-
* EE adds POLICY mode for composable rules.
|
|
472
|
+
* Registration gating mode.
|
|
459
473
|
*
|
|
460
474
|
* @generated from protobuf enum sid.v1.admin.EnrollmentMode
|
|
461
475
|
*/
|
|
@@ -525,7 +539,7 @@ export enum RegistrationSourceType {
|
|
|
525
539
|
*/
|
|
526
540
|
SCIM_PROVISIONED = 4,
|
|
527
541
|
/**
|
|
528
|
-
* Federation (
|
|
542
|
+
* Federation (a user of another organization linked to this org).
|
|
529
543
|
*
|
|
530
544
|
* @generated from protobuf enum value: REGISTRATION_SOURCE_TYPE_FEDERATION = 5;
|
|
531
545
|
*/
|
|
@@ -573,6 +587,53 @@ export enum InviteStatus {
|
|
|
573
587
|
EXPIRED = 4
|
|
574
588
|
}
|
|
575
589
|
// @generated message type with reflection information, may provide speed optimized methods
|
|
590
|
+
class InstanceStatus$Type extends MessageType<InstanceStatus> {
|
|
591
|
+
constructor() {
|
|
592
|
+
super("sid.v1.admin.InstanceStatus", [
|
|
593
|
+
{ no: 1, name: "claimed", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
|
|
594
|
+
]);
|
|
595
|
+
}
|
|
596
|
+
create(value?: PartialMessage<InstanceStatus>): InstanceStatus {
|
|
597
|
+
const message = globalThis.Object.create((this.messagePrototype!));
|
|
598
|
+
message.claimed = false;
|
|
599
|
+
if (value !== undefined)
|
|
600
|
+
reflectionMergePartial<InstanceStatus>(this, message, value);
|
|
601
|
+
return message;
|
|
602
|
+
}
|
|
603
|
+
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: InstanceStatus): InstanceStatus {
|
|
604
|
+
let message = target ?? this.create(), end = reader.pos + length;
|
|
605
|
+
while (reader.pos < end) {
|
|
606
|
+
let [fieldNo, wireType] = reader.tag();
|
|
607
|
+
switch (fieldNo) {
|
|
608
|
+
case /* bool claimed */ 1:
|
|
609
|
+
message.claimed = reader.bool();
|
|
610
|
+
break;
|
|
611
|
+
default:
|
|
612
|
+
let u = options.readUnknownField;
|
|
613
|
+
if (u === "throw")
|
|
614
|
+
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
|
615
|
+
let d = reader.skip(wireType);
|
|
616
|
+
if (u !== false)
|
|
617
|
+
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
return message;
|
|
621
|
+
}
|
|
622
|
+
internalBinaryWrite(message: InstanceStatus, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
|
623
|
+
/* bool claimed = 1; */
|
|
624
|
+
if (message.claimed !== false)
|
|
625
|
+
writer.tag(1, WireType.Varint).bool(message.claimed);
|
|
626
|
+
let u = options.writeUnknownFields;
|
|
627
|
+
if (u !== false)
|
|
628
|
+
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
629
|
+
return writer;
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
/**
|
|
633
|
+
* @generated MessageType for protobuf message sid.v1.admin.InstanceStatus
|
|
634
|
+
*/
|
|
635
|
+
export const InstanceStatus = new InstanceStatus$Type();
|
|
636
|
+
// @generated message type with reflection information, may provide speed optimized methods
|
|
576
637
|
class EnrollmentPolicy$Type extends MessageType<EnrollmentPolicy> {
|
|
577
638
|
constructor() {
|
|
578
639
|
super("sid.v1.admin.EnrollmentPolicy", [
|
|
@@ -1695,6 +1756,7 @@ export const GetRegistrationStatsRequest = new GetRegistrationStatsRequest$Type(
|
|
|
1695
1756
|
*/
|
|
1696
1757
|
export const EnrollmentService = new ServiceType("sid.v1.admin.EnrollmentService", [
|
|
1697
1758
|
{ name: "GetEnrollmentPolicy", idempotency: "NO_SIDE_EFFECTS", options: { "google.api.http": { get: "/v1/admin/enrollment/policy" } }, I: Empty, O: EnrollmentPolicy },
|
|
1759
|
+
{ name: "GetInstanceStatus", idempotency: "NO_SIDE_EFFECTS", options: { "google.api.http": { get: "/v1/admin/enrollment/instance-status" } }, I: Empty, O: InstanceStatus },
|
|
1698
1760
|
{ name: "UpdateEnrollmentPolicy", idempotency: "IDEMPOTENT", options: { "google.api.http": { put: "/v1/admin/enrollment/policy", body: "*" } }, I: UpdateEnrollmentPolicyRequest, O: EnrollmentPolicy },
|
|
1699
1761
|
{ name: "CreateInvite", options: { "google.api.http": { post: "/v1/admin/enrollment/invites", body: "*" } }, I: CreateInviteRequest, O: Invite },
|
|
1700
1762
|
{ name: "ListInvites", idempotency: "NO_SIDE_EFFECTS", options: { "google.api.http": { get: "/v1/admin/enrollment/invites" } }, I: ListInvitesRequest, O: ListInvitesResponse },
|
|
@@ -30,7 +30,7 @@ import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
|
|
|
30
30
|
// ────────────────────────────────────────────────────────────────────────────
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
|
-
* ── User Events
|
|
33
|
+
* ── User Events ──
|
|
34
34
|
*
|
|
35
35
|
* @generated from protobuf service sid.v1.admin.EventService
|
|
36
36
|
*/
|
|
@@ -47,7 +47,7 @@ export interface IEventServiceClient {
|
|
|
47
47
|
* @generated from protobuf rpc: GetUserTimeline
|
|
48
48
|
*/
|
|
49
49
|
getUserTimeline(input: GetUserTimelineRequest, options?: RpcOptions): UnaryCall<GetUserTimelineRequest, ListEventsResponse>;
|
|
50
|
-
// ── Admin Events
|
|
50
|
+
// ── Admin Events ──
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
53
|
* @generated from protobuf rpc: ListAdminEvents
|
|
@@ -57,7 +57,7 @@ export interface IEventServiceClient {
|
|
|
57
57
|
* @generated from protobuf rpc: GetAdminEvent
|
|
58
58
|
*/
|
|
59
59
|
getAdminEvent(input: GetAdminEventRequest, options?: RpcOptions): UnaryCall<GetAdminEventRequest, AdminEvent>;
|
|
60
|
-
// ── Event Config
|
|
60
|
+
// ── Event Config ──
|
|
61
61
|
|
|
62
62
|
/**
|
|
63
63
|
* @generated from protobuf rpc: GetEventConfig
|
|
@@ -73,7 +73,7 @@ export interface IEventServiceClient {
|
|
|
73
73
|
// ────────────────────────────────────────────────────────────────────────────
|
|
74
74
|
|
|
75
75
|
/**
|
|
76
|
-
* ── User Events
|
|
76
|
+
* ── User Events ──
|
|
77
77
|
*
|
|
78
78
|
* @generated from protobuf service sid.v1.admin.EventService
|
|
79
79
|
*/
|
|
@@ -104,7 +104,7 @@ export class EventServiceClient implements IEventServiceClient, ServiceInfo {
|
|
|
104
104
|
const method = this.methods[2], opt = this._transport.mergeOptions(options);
|
|
105
105
|
return stackIntercept<GetUserTimelineRequest, ListEventsResponse>("unary", this._transport, method, opt, input);
|
|
106
106
|
}
|
|
107
|
-
// ── Admin Events
|
|
107
|
+
// ── Admin Events ──
|
|
108
108
|
|
|
109
109
|
/**
|
|
110
110
|
* @generated from protobuf rpc: ListAdminEvents
|
|
@@ -120,7 +120,7 @@ export class EventServiceClient implements IEventServiceClient, ServiceInfo {
|
|
|
120
120
|
const method = this.methods[4], opt = this._transport.mergeOptions(options);
|
|
121
121
|
return stackIntercept<GetAdminEventRequest, AdminEvent>("unary", this._transport, method, opt, input);
|
|
122
122
|
}
|
|
123
|
-
// ── Event Config
|
|
123
|
+
// ── Event Config ──
|
|
124
124
|
|
|
125
125
|
/**
|
|
126
126
|
* @generated from protobuf rpc: GetEventConfig
|
|
@@ -138,7 +138,7 @@ export class EventServiceClient implements IEventServiceClient, ServiceInfo {
|
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
140
|
// ────────────────────────────────────────────────────────────────────────────
|
|
141
|
-
// AuditService — tamper-evident audit trail
|
|
141
|
+
// AuditService — tamper-evident audit trail
|
|
142
142
|
// ────────────────────────────────────────────────────────────────────────────
|
|
143
143
|
|
|
144
144
|
/**
|
|
@@ -159,7 +159,7 @@ export interface IAuditServiceClient {
|
|
|
159
159
|
exportAuditTrail(input: ExportAuditTrailRequest, options?: RpcOptions): UnaryCall<ExportAuditTrailRequest, ExportAuditTrailResponse>;
|
|
160
160
|
}
|
|
161
161
|
// ────────────────────────────────────────────────────────────────────────────
|
|
162
|
-
// AuditService — tamper-evident audit trail
|
|
162
|
+
// AuditService — tamper-evident audit trail
|
|
163
163
|
// ────────────────────────────────────────────────────────────────────────────
|
|
164
164
|
|
|
165
165
|
/**
|