@tdxvolt/volt-client-grpc 0.18.3 → 0.18.5

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.
Files changed (29) hide show
  1. package/lib/index.cjs +3208 -181
  2. package/package.json +5 -3
  3. package/scripts/generate-proto-assets.js +71 -0
  4. package/src/constants.js +2 -1
  5. package/src/grpc-call.js +7 -3
  6. package/src/proto-package-definition.js +184 -0
  7. package/src/proto-utils.js +40 -111
  8. package/src/volt-client-internal.js +5 -30
  9. package/src/volt-client.js +0 -57
  10. package/src/volt-proto-literals.js +2985 -0
  11. package/protobuf/README.md +0 -4
  12. package/protobuf/tdx/volt_api/data/v1/sqlite.proto +0 -43
  13. package/protobuf/tdx/volt_api/data/v1/sqlite_database_api.proto +0 -153
  14. package/protobuf/tdx/volt_api/data/v1/sqlite_server_api.proto +0 -50
  15. package/protobuf/tdx/volt_api/relay/v1/proxy_api.proto +0 -9
  16. package/protobuf/tdx/volt_api/relay/v1/relay_api.proto +0 -78
  17. package/protobuf/tdx/volt_api/sync/v1/sync.proto +0 -57
  18. package/protobuf/tdx/volt_api/volt/v1/discovery_api.proto +0 -35
  19. package/protobuf/tdx/volt_api/volt/v1/file.proto +0 -17
  20. package/protobuf/tdx/volt_api/volt/v1/file_api.proto +0 -165
  21. package/protobuf/tdx/volt_api/volt/v1/remote.proto +0 -93
  22. package/protobuf/tdx/volt_api/volt/v1/spark_api.proto +0 -121
  23. package/protobuf/tdx/volt_api/volt/v1/ssi.proto +0 -66
  24. package/protobuf/tdx/volt_api/volt/v1/ssi_api.proto +0 -214
  25. package/protobuf/tdx/volt_api/volt/v1/status.proto +0 -15
  26. package/protobuf/tdx/volt_api/volt/v1/terminal_api.proto +0 -42
  27. package/protobuf/tdx/volt_api/volt/v1/volt.proto +0 -666
  28. package/protobuf/tdx/volt_api/volt/v1/volt_api.proto +0 -1082
  29. package/protobuf/tdx/volt_api/volt/v1/wire_api.proto +0 -56
@@ -1,666 +0,0 @@
1
- syntax = "proto3";
2
-
3
- package tdx.volt_api.volt.v1;
4
-
5
- enum DiscoveryMode {
6
- DISCOVERY_MODE_UNKNOWN = 0;
7
-
8
- // Only local identities with explicit policy PERMIT can discover.
9
- DISCOVERY_MODE_TRUSTED = 1;
10
-
11
- // Any bound local identity can discover.
12
- DISCOVERY_MODE_PUBLIC = 2;
13
-
14
- // Only identities with explicit policy PERMIT can discover, and the service will be available to local and non-local (Relayed) clients.
15
- DISCOVERY_MODE_TRUSTED_GLOBAL = 3;
16
-
17
- // Any bound identity can discover, and the service will be available to local and non-local (Relayed) clients.
18
- DISCOVERY_MODE_PUBLIC_GLOBAL = 4;
19
- }
20
-
21
- enum OnlineStatus {
22
- ONLINE_STATUS_UNKNOWN = 0;
23
- ONLINE_STATUS_ONLINE = 1;
24
- ONLINE_STATUS_OFFLINE = 2;
25
- }
26
-
27
- // Not used ATM.
28
- enum ResourceStatus {
29
- RESOURCE_STATUS_UNKNOWN = 0;
30
- RESOURCE_STATUS_LIVE = 1;
31
- RESOURCE_STATUS_INACTIVE = 2;
32
- RESOURCE_STATUS_DELETED = 999;
33
- }
34
-
35
- // Not used ATM.
36
- enum ShareMode {
37
- SHARE_MODE_UNKNOWN = 0;
38
- SHARE_MODE_TRUSTED = 1;
39
- SHARE_MODE_PUBLIC_READ = 2;
40
- }
41
-
42
- // @todo currently this must align with AuthorisationDecision enum in policy library, but some of the values are irrelevant outside of the public API so we need a public-facing enum and some translation.
43
- enum PolicyDecision {
44
- POLICY_DECISION_UNKNOWN = 0;
45
- POLICY_DECISION_PROMPT = 1;
46
- POLICY_DECISION_PERMIT = 2;
47
- POLICY_DECISION_DENY = 3;
48
- POLICY_DECISION_INDETERMINATE = 4;
49
- POLICY_DECISION_NOT_APPLICABLE = 5;
50
- POLICY_DECISION_APPLICABLE = 6;
51
- POLICY_DECISION_PENDING = 7;
52
- }
53
-
54
- // Attribute data types.
55
- enum AttributeDataType {
56
- ATTRIBUTE_DATA_TYPE_UNKNOWN = 0;
57
- ATTRIBUTE_DATA_TYPE_STRING = 1;
58
- ATTRIBUTE_DATA_TYPE_INTEGER = 2;
59
- ATTRIBUTE_DATA_TYPE_REAL = 3;
60
- ATTRIBUTE_DATA_TYPE_BOOLEAN = 4;
61
- ATTRIBUTE_DATA_TYPE_BYTES = 5;
62
-
63
- ATTRIBUTE_DATA_TYPE_IDENTITY = 100;
64
- ATTRIBUTE_DATA_TYPE_RESOURCE = 101;
65
- }
66
-
67
- // Represents an outbound connection from a Volt to a remote service that will act as a proxy for that Volt.
68
- // This enables Volts to bypass firewall and NATs.
69
- // Example - connection from a Volt to a Relay Volt running on the public internet, such as tdxvolt.com
70
- message ProxyConnection {
71
- // Unique connection id.
72
- string id = 1;
73
-
74
- // A human-readable name for the connection.
75
- string name = 2;
76
-
77
- // The remote address of the proxy service.
78
- string address = 3;
79
-
80
- // The certificate authority of the proxy service.
81
- string ca_pem = 4;
82
-
83
- // Indicates this connection is enabled.
84
- bool enabled = 5;
85
-
86
- // Indicates this connection is currently in use.
87
- bool connected = 6;
88
-
89
- // Indicates that this connection will handle HTTP proxying as well as GRPC.
90
- bool enable_http_proxy = 8;
91
-
92
- // Set to indicate the Volt API itself is not automatically exposed to the connection.
93
- bool disable_volt_api = 9;
94
-
95
- // Optional challenge that can be presented in the authentication request.
96
- string challenge = 10;
97
-
98
- // The id of the target Volt that this connection is bound to.
99
- string target_id = 11;
100
-
101
- // Indicates that this connection hosts a DID registry that we should synchronise with.
102
- bool sync_did_registry = 12;
103
-
104
- // The id of the last DID registry operation that was synchronised.
105
- uint64 did_registry_sync_id = 13;
106
-
107
- // Indicates that this connection hosts a DID registry that we should synchronise with.
108
- bool sync_vc_registry = 14;
109
-
110
- // The timestamp of the last VC registry operation that was synchronised.
111
- uint64 vc_registry_sync_timestamp = 15;
112
-
113
- string session_id = 16;
114
-
115
- string certificate = 17;
116
- }
117
-
118
- enum SecureMode {
119
- SECURE_MODE_UNKNOWN = 0;
120
- SECURE_MODE_INSECURE = 1;
121
- SECURE_MODE_TLS = 2;
122
- }
123
-
124
- // Encapsulates the various Volt parameters that are configurable by the Volt owner.
125
- message VoltParameters {
126
- string id = 1;
127
-
128
- // The name of the Volt.
129
- string name = 2;
130
-
131
- // Human-readable description of the Volt.
132
- string description = 3;
133
-
134
- // The database driver in use.
135
- string db_driver = 4;
136
-
137
- // The local file path location of the Volt storage.
138
- string location = 5;
139
-
140
- // The key strategy in use, this determines how the root key is stored.
141
- string key_strategy = 6;
142
-
143
- // The identifier for the key, the semantics depend on the key strategy in use.
144
- string key_id = 7;
145
-
146
- // The Volt certificate authority.
147
- string ca_pem = 8;
148
-
149
- // The Volt API server certificate.
150
- string cert_pem = 9;
151
-
152
- // Optional hostname of the Volt if using DNS or a static IP address, e.g. tdxvolt.com
153
- string fixed_host = 10;
154
-
155
- // Port to use for hosting the Volt management service.
156
- int32 grpc_port = 11;
157
-
158
- // Port to use for hosting the Volt grpc service.
159
- int32 http_port = 12;
160
-
161
- // The Volt http server key file path.
162
- string http_key_path = 13;
163
-
164
- // The Volt http server certificate file path.
165
- string http_cert_path = 14;
166
-
167
- // The Volt http server certificate authority chain file path.
168
- string http_ca_path = 15;
169
-
170
- // Indicates the Volt will be discoverable by clients using the discovery api.
171
- bool discoverable = 16;
172
-
173
- // Optional challenge code that can be used aid in the process of authenticating clients.
174
- string authenticate_challenge = 18;
175
-
176
- // Indicates that clients must present the correct challenge code in order to be able to authenticate.
177
- bool require_authenticate_challenge = 19;
178
-
179
- // Internal use only.
180
- bool confirm_stop = 20;
181
-
182
- // Internal use only.
183
- bool auto_start = 21;
184
-
185
- // Internal use only.
186
- bool enable_messaging = 22;
187
-
188
- // Set to indicate this Volt acts as a Relay.
189
- // This means this Volt can act as a proxy for other Volts (or in fact any client) that connect to it.
190
- bool has_relay = 23;
191
-
192
- // Set to run the Relay open to any client, i.e. clients can utilise the Relay without first authenticating.
193
- bool relay_open = 24;
194
-
195
- // Determines if the Volt HTTP server is enabled.
196
- bool enable_http_server = 25;
197
-
198
- // Determines whether the HTTP server employs TLS.
199
- bool http_server_secure = 26;
200
-
201
- // Determines whether the HTTP server supports forwarding.
202
- bool enable_http_forwarding = 27;
203
-
204
- // Determines if the Volt REST API is exposed via the HTTP server.
205
- bool enable_http_api = 28;
206
-
207
- // Determines if the Volt Websocket API is exposed via the HTTP server.
208
- bool enable_websocket_api = 29;
209
-
210
- // The hostname:port at which the Volt API is currently running.
211
- string address = 30;
212
-
213
- // Set to indicate the Volt file store is encrypted.
214
- bool encrypt_file_store = 31;
215
-
216
- // This is a unique connection id.
217
- // Indicates that these parameters refer to a connection to a remote Volt rather than a local Volt.
218
- string connection_id = 32;
219
-
220
- // The certificate authority of the Relay if this is a remote connection via a Relay.
221
- string relay_ca_pem = 33;
222
-
223
- // Optional override of the http address, rather than using the default of fixed_host:http_port.
224
- // This is useful if the Volt is behind a firewall or NAT, and the http server is listening on a different port
225
- // from 80 or 443 but this is hidden by the proxy. For example, if the `fixed_host` is `coreid.com` and http server is
226
- // listening on 2115, but the proxy is forwarding 443 to 2115, then the http_address_override would be set to
227
- // `https://coreid.com`.
228
- string http_address_override = 34;
229
-
230
- // An optional alias that can be used to refer to the Volt rather than the `id` field.
231
- // This alias must be unique within the scope of the Battery in which the Volt is stored.
232
- string alias = 35;
233
-
234
- // The runtime version this Volt is running.
235
- Version version = 36;
236
-
237
- // If set, indicates that any client that provides the correct challenge during authentication will automatically be approved to access the Volt.
238
- bool approve_on_challenge = 37;
239
-
240
- // If set, indicates that any client that proves ownership of a DID known to the Volt will automatically be approved to access the Volt.
241
- bool approve_on_did = 38;
242
-
243
- // If set, indicates that clients can register DIDs with this Volt.
244
- bool enable_did_registry = 39;
245
-
246
- // Zero or more URLs of trusted peer DID registries.
247
- repeated string did_registry = 40;
248
-
249
- // If set, enables outbound SMTP.
250
- bool enable_outbound_smtp = 41;
251
-
252
- // The SMTP host to use for sending emails.
253
- string outbound_smtp_host = 42;
254
-
255
- // The SMTP port to use for sending emails.
256
- uint32 outbound_smtp_port = 43;
257
-
258
- // The SMTP username to use for sending emails.
259
- string outbound_smtp_user = 44;
260
-
261
- // The SMTP password to use for sending emails.
262
- string outbound_smtp_password = 45;
263
-
264
- // If set, enables sessions that authenticate using credentials rather than a DID to create resources in the 'anonymous' system folder.
265
- bool enable_anonymous_create = 46;
266
-
267
- // The decision to apply to all authentication requests that do not match any other policy.
268
- // The default is PROMPT.
269
- PolicyDecision catch_all_auth_decision = 47;
270
-
271
- // If set, enables caching of policy decisions.
272
- bool enable_policy_cache = 48;
273
-
274
- // If set, enables the terminal API.
275
- bool enable_terminal = 49;
276
-
277
- // The time at which the Volt was started.
278
- uint64 start_time = 50;
279
- }
280
-
281
- message VoltEndpoint {
282
- // The globally unique Volt id.
283
- string id = 1;
284
-
285
- // Human-readable name of the Volt.
286
- string display_name = 3;
287
-
288
- // The actual host/ip the volt is physically running on (might be a local ip if behind firewall).
289
- string local_address = 4;
290
-
291
- // The address of the endpoint HTTP server.
292
- string http_address = 5;
293
-
294
- // The global (Relay) address of the volt. Any given volt may be advertising on more than one Relay instance. The value given here will depend on the Relay instance that handled the endpoint query response.
295
- string relay_address = 6;
296
-
297
- // The root certificate of the Relay instance referred to in `relay_address`.
298
- string relay_ca_pem = 7;
299
-
300
- // The self-signed certificate used by the volt to sign client certificates.
301
- string ca_pem = 8;
302
-
303
- // The Volt public key in PEM format.
304
- string public_key = 9;
305
-
306
- // The base58 fingerprint of the Volt public key.
307
- string fingerprint = 10;
308
-
309
- // The online status of the Volt.
310
- OnlineStatus online_status = 11;
311
-
312
- // Indicates that this Volt acts as a Relay.
313
- bool has_relay = 12;
314
-
315
- // The API version supported by the endpoint.
316
- Version api_version = 13;
317
-
318
- // Optional description of the endpoint.
319
- string description = 14;
320
-
321
- // The list of DID registries that this Volt trusts.
322
- repeated string did_registry = 15;
323
- }
324
-
325
- // Internal use only.
326
- message MethodDescription {
327
- string path = 1;
328
- bool client_streaming = 2;
329
- bool server_streaming = 3;
330
- }
331
-
332
- // Describes a single protobuf file for use in ServiceDescription.
333
- message ProtoFile {
334
- // The path name of the proto file, relative to the 'root' of the namespace, e.g. "tdx/volt_api/volt/v1/volt.proto".
335
- string file_path = 1;
336
-
337
- // The actual protobuf file contents.
338
- string protobuf = 2;
339
-
340
- // Optional - the service(s) contained in this protobuf file, if omitted here they will be loaded dynamically from the protobuf.
341
- repeated string service_name = 3;
342
- }
343
-
344
- enum ServiceHostType {
345
- SERVICE_HOST_TYPE_UNKNOWN = 0;
346
- // A built-in service hosted by the Volt.
347
- SERVICE_HOST_TYPE_BUILTIN = 1;
348
- // A service hosted by a grpc server other than the Volt.
349
- SERVICE_HOST_TYPE_SERVER = 2;
350
- // A service hosted by a Volt client via a relay connection, i.e. the service is not exposed by a server as such, rather a Volt client implements the service and a Volt acts as a proxy, calling back to the client to implement the methods.
351
- SERVICE_HOST_TYPE_RELAYED = 3;
352
- }
353
-
354
- // Describes a Volt service.
355
- message ServiceDescription {
356
- // The configuration used by the host of this service.
357
- ServiceHostType host_type = 1;
358
-
359
- // The identity of the client that is exposing the service.
360
- // For example, if a third party is exposing a database service via a Volt, it will first authenticate and obtain a client DID and credentials in order to be able to create service resource(s).
361
- // Any resources that are owned by this client will be marked as online if the client itself is online, i.e. has a live connection to the Volt.
362
- // This will be empty if the service is a built-in Volt service.
363
- string host_client_id = 2;
364
-
365
- // The id of the resource that holds the protobuf definition for this resource.
366
- // For example, if a third party is exposing a database service via a Volt, it will create a service resource that holds details of the protobuf methods exposed by the service.
367
- // For built-in services, i.e. those hosted by the Volt, this will set to the Volt id.
368
- string host_service_id = 3;
369
-
370
- // The address of the grpc server hosting this service.
371
- // Only relevant to grpc-hosted services.
372
- string host_address = 4;
373
-
374
- // The certificate authority (chain) that signed the service server certificate.
375
- // This is only relevant to grpc-hosted services.
376
- string host_ca_pem = 5;
377
-
378
- // The public key of the service host, which is used to encrypt payloads.
379
- // This may change as the service comes and goes online.
380
- string host_public_key = 6;
381
-
382
- // The connection id currently used to host this service.
383
- string host_connection_id = 8;
384
-
385
- // Internal use only.
386
- string host_session_id = 9;
387
-
388
- // The discovery mode.
389
- DiscoveryMode discoverable = 10;
390
-
391
- // The ping timestamp of the server hosting this service.
392
- int64 ping_timestamp = 11;
393
-
394
- // The protobuf definitions of the APIs exposed by this service.
395
- repeated ProtoFile proto_file = 12;
396
-
397
- // The fully qualified names of the protobuf services, for example tdx.volt_api.webcam.v1.WebcamControlAPI.
398
- repeated string service_api = 13;
399
-
400
- // Internal use only.
401
- repeated MethodDescription method = 100;
402
- }
403
-
404
- // Attribute value will be one of the following fields, depending on the data type.
405
- message AttributeValue {
406
- oneof value {
407
- string string = 1;
408
- int64 integer = 2;
409
- double real = 3;
410
- bool boolean = 4;
411
- bytes bytes = 5;
412
- }
413
- }
414
-
415
- // A resource attribute enables storing arbitrary data associated with a resource.
416
- message ResourceAttribute {
417
- uint32 id = 1;
418
-
419
- string attribute_id = 2;
420
-
421
- string resource_id = 3;
422
-
423
- AttributeDataType data_type = 4;
424
-
425
- repeated AttributeValue value = 5;
426
- }
427
-
428
- // Using `major` and `minor` here upsets the GNU C Library, so we add a `version_` prefix.
429
- message Version {
430
- uint32 version_major = 1;
431
- uint32 version_minor = 2;
432
- uint32 version_patch = 3;
433
- }
434
-
435
- // The core Resource metadata schema.
436
- message Resource {
437
- // The globally unique resource id.
438
- string id = 1;
439
-
440
- // Optional description.
441
- string description = 2;
442
-
443
- // Human-readable resource name.
444
- string name = 4;
445
-
446
- // Not in use.
447
- ShareMode share_mode = 5;
448
-
449
- // The id of the Volt that hosts this resource.
450
- string volt_id = 7;
451
-
452
- // Optional description of any services exposed by this resource.
453
- ServiceDescription service_description = 8;
454
-
455
- // Attributes assigned to the resource.
456
- repeated ResourceAttribute attribute = 9;
457
-
458
- // The version of the platform.
459
- Version platform_version = 10;
460
-
461
- // The resource version.
462
- uint64 version = 11;
463
-
464
- // The identity of the resource owner.
465
- string owner = 101;
466
-
467
- // Creation timestamp, milliseconds since epoch.
468
- uint64 created = 105;
469
-
470
- // Last modification timestamp, milliseconds since epoch.
471
- uint64 modified = 106;
472
-
473
- // Not in use.
474
- ResourceStatus status = 108;
475
-
476
- // The taxonomy of the resource.
477
- repeated string kind = 110;
478
-
479
- // The online status.
480
- // For most kinds of resource this indicates that the server hosting the resource is online, the exception being identity resources, in which case the status reflects whether or not the identity has a live connection.
481
- // All built-in resources are hosted by the Volt itself and are therefore always online when the Volt is running.
482
- // Resources hosted by external servers are online if the server itself is online and has registered the resource as online using `setServiceStatus`.
483
- OnlineStatus online_status = 111;
484
-
485
- // The size of the resource store in bytes.
486
- uint64 size = 113;
487
-
488
- // The path to the resource store.
489
- string store = 114;
490
-
491
- // Alias(es) that can be used to refer to the resource rather than the id.
492
- // Each alias must be unique to the Volt, this is enforced by the API.
493
- // No format restrictions are currently applied to alias, but this may change in future, for the time being it makes sense to stick to alphanumeric characters and '_' or '-'.
494
- repeated string alias = 115;
495
-
496
- // The hash of the resource content contained in the store.
497
- string content_hash = 116;
498
-
499
- // Not yet supported.
500
- repeated Resource child = 200;
501
- }
502
-
503
- message IdentityAlias {
504
- // The alias id.
505
- uint32 id = 1;
506
-
507
- // The corresponding identity id.
508
- string identity_did = 2;
509
-
510
- // The actual alias, e.g. a common name or key fingerprint.
511
- string alias = 3;
512
-
513
- // This will only be populated if alias_type == tdx:public-key
514
- string public_key = 4;
515
-
516
- // This will only be populated if alias_type == tdx:public-key, and the key is stored in the Volt.
517
- string private_key = 5;
518
-
519
- // The alias type, for example public key, email, phone number etc.
520
- string alias_type = 6;
521
-
522
- // The identity that issued this alias.
523
- string issuer_id = 7;
524
-
525
- // Indicates if this alias has an authenticate policy decision assigned.
526
- PolicyDecision authenticate = 8;
527
-
528
- // Optional description of this alias.
529
- string description = 9;
530
- }
531
-
532
- // A Volt identity encompasses a Resource and a set of identity aliases.
533
- message Identity {
534
- Resource resource = 1;
535
-
536
- repeated IdentityAlias alias = 2;
537
- }
538
-
539
- message Access {
540
- string id = 1;
541
-
542
- // The resource being accessed.
543
- string resource_id = 2;
544
-
545
- // A human-readable short identifier of the resource.
546
- string resource_name = 3;
547
-
548
- // The identity that owns the resource.
549
- string resource_owner = 4;
550
-
551
- // The kind of resource.
552
- repeated string resource_kind = 5;
553
-
554
- oneof subject {
555
- // The identity attempting access.
556
- string identity_did = 6;
557
-
558
- // The JSON path array for looking up verifiable credentials.
559
- string credential_lookup = 7;
560
- }
561
-
562
- // A human-readable short identifier of the subject.
563
- string identity_name = 8;
564
-
565
- // The kind of identity.
566
- repeated string identity_kind = 9;
567
-
568
- // Requested access.
569
- string access = 10;
570
-
571
- // Optional extra data.
572
- string extra = 11;
573
-
574
- // Assigned decision.
575
- PolicyDecision decision = 12;
576
-
577
- bool recursive = 13;
578
-
579
- // Time at which the request was made.
580
- int64 request_time = 14;
581
-
582
- // Time at which the decision was taken.
583
- int64 decision_time = 15;
584
-
585
- // Counter of number times this access was requested.
586
- uint32 request_count = 16;
587
- }
588
-
589
- enum SessionStatus {
590
- SESSION_STATUS_UNKNOWN = 0;
591
- SESSION_STATUS_PENDING = 1;
592
- SESSION_STATUS_LIVE = 2;
593
- SESSION_STATUS_EXPIRED = 3;
594
- SESSION_STATUS_REVOKED = 4;
595
- SESSION_STATUS_REJECTED = 5;
596
- }
597
-
598
- message SessionCredential {
599
- // The alias id.
600
- uint32 id = 1;
601
-
602
- // The corresponding session id.
603
- string session_id = 2;
604
-
605
- // The credential type, for example public key, verifiable credential, challenge etc.
606
- string credential_type = 4;
607
-
608
- // Optional description of this credential.
609
- string description = 5;
610
-
611
- // The id of the verifiable credential, if the credential type is volt:vc-claim.
612
- string vc_id = 6;
613
-
614
- // The verifiable credential in JSON format, if the credential type is volt:vc-claim.
615
- string vc_json = 7;
616
-
617
- // The subject id extracted from the `vc_json` field.
618
- string vc_subject_id = 8;
619
-
620
- // The issuer id extracted from the `vc_json` field.
621
- string vc_issuer_id = 9;
622
-
623
- // The comma-separated type(s) extracted from the `vc_json` field.
624
- string vc_type = 10;
625
-
626
- // The challenge string, if the credential type is volt:challenge.
627
- string challenge = 11;
628
-
629
- // The key fingerprint, if the credential type is volt:public-key.
630
- string key_fingerprint = 12;
631
-
632
- // The PEM-encoded public key, if the credential type is volt:public-key.
633
- string public_key = 13;
634
-
635
- // Optional PEM-encoded private key, if the credential type is volt:public-key. Only used for ephemeral REST-base sessions created dynamically after OTP authentication.
636
- string private_key = 14;
637
-
638
- // Type-specific extra data stored with the credential.
639
- string extra = 15;
640
-
641
- // More type-specific data stored with the credential.
642
- string extra_2 = 16;
643
- }
644
-
645
- message Session {
646
- string id = 1;
647
-
648
- string identity_did = 2;
649
-
650
- string identity_name = 3;
651
-
652
- string ip = 4;
653
-
654
- uint64 created = 5;
655
-
656
- uint64 modified = 6;
657
-
658
- uint64 expires = 7;
659
-
660
- repeated SessionCredential credential = 8;
661
-
662
- string origin = 9;
663
-
664
- SessionStatus status = 10;
665
- }
666
-