@structured-id/ui-core 0.1.5 → 1.0.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/dist/index.cjs +14 -0
- package/dist/index.d.cts +16 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +14 -0
- package/package.json +7 -1
- package/src/generated/google/api/http.ts +1 -1
- package/src/generated/sid/v1/admin/settings.ts +146 -3
- package/src/generated/sid/v1/authn/auth.ts +4 -0
- package/src/generated/sid/v1/identity/identity.ts +23 -0
- package/src/generated/sid/v1/projects/projects.ts +34 -2
package/dist/index.cjs
CHANGED
|
@@ -11010,6 +11010,14 @@ var CreateProfileRequest$Type = class extends _runtime.MessageType {
|
|
|
11010
11010
|
T: 9
|
|
11011
11011
|
/*ScalarType.STRING*/
|
|
11012
11012
|
},
|
|
11013
|
+
{
|
|
11014
|
+
no: 17,
|
|
11015
|
+
name: "phone",
|
|
11016
|
+
kind: "scalar",
|
|
11017
|
+
opt: true,
|
|
11018
|
+
T: 9
|
|
11019
|
+
/*ScalarType.STRING*/
|
|
11020
|
+
},
|
|
11013
11021
|
{
|
|
11014
11022
|
no: 3,
|
|
11015
11023
|
name: "given_name",
|
|
@@ -11090,6 +11098,10 @@ var CreateProfileRequest$Type = class extends _runtime.MessageType {
|
|
|
11090
11098
|
2:
|
|
11091
11099
|
message.email = reader.string();
|
|
11092
11100
|
break;
|
|
11101
|
+
case /* optional string phone */
|
|
11102
|
+
17:
|
|
11103
|
+
message.phone = reader.string();
|
|
11104
|
+
break;
|
|
11093
11105
|
case /* optional string given_name */
|
|
11094
11106
|
3:
|
|
11095
11107
|
message.givenName = reader.string();
|
|
@@ -11160,6 +11172,8 @@ var CreateProfileRequest$Type = class extends _runtime.MessageType {
|
|
|
11160
11172
|
writer.tag(15, _runtime.WireType.LengthDelimited).string(message.honorificPrefix);
|
|
11161
11173
|
if (message.honorificSuffix !== void 0)
|
|
11162
11174
|
writer.tag(16, _runtime.WireType.LengthDelimited).string(message.honorificSuffix);
|
|
11175
|
+
if (message.phone !== void 0)
|
|
11176
|
+
writer.tag(17, _runtime.WireType.LengthDelimited).string(message.phone);
|
|
11163
11177
|
let u = options.writeUnknownFields;
|
|
11164
11178
|
if (u !== false)
|
|
11165
11179
|
(u == true ? _runtime.UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
package/dist/index.d.cts
CHANGED
|
@@ -5588,18 +5588,34 @@ declare class CreateProfileRequest$Type extends MessageType<CreateProfileRequest
|
|
|
5588
5588
|
internalBinaryWrite(message: CreateProfileRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
|
|
5589
5589
|
}
|
|
5590
5590
|
/**
|
|
5591
|
+
* Primary identifier — user provides exactly ONE at signup.
|
|
5592
|
+
* Additional identifiers can be added later via profile settings.
|
|
5593
|
+
* Username is a valuable identity — never auto-generated.
|
|
5594
|
+
*
|
|
5591
5595
|
* @generated from protobuf message sid.v1.identity.CreateProfileRequest
|
|
5592
5596
|
*/
|
|
5593
5597
|
interface CreateProfileRequest {
|
|
5594
5598
|
/**
|
|
5599
|
+
* Login handle (no '@', no '+'). Global ('alice') or federated ('alice#acme.corp').
|
|
5600
|
+
*
|
|
5595
5601
|
* @generated from protobuf field: optional string username = 1
|
|
5596
5602
|
*/
|
|
5597
5603
|
username?: string;
|
|
5598
5604
|
/**
|
|
5605
|
+
* Email address. Requires OTP/magic-link verification after signup.
|
|
5606
|
+
*
|
|
5599
5607
|
* @generated from protobuf field: optional string email = 2
|
|
5600
5608
|
*/
|
|
5601
5609
|
email?: string;
|
|
5602
5610
|
/**
|
|
5611
|
+
* Phone number in E.164 format (+380501234567). Requires OTP verification after signup.
|
|
5612
|
+
*
|
|
5613
|
+
* @generated from protobuf field: optional string phone = 17
|
|
5614
|
+
*/
|
|
5615
|
+
phone?: string;
|
|
5616
|
+
/**
|
|
5617
|
+
* Structured name components (OIDC + SCIM compliant). All optional.
|
|
5618
|
+
*
|
|
5603
5619
|
* @generated from protobuf field: optional string given_name = 3
|
|
5604
5620
|
*/
|
|
5605
5621
|
givenName?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -5588,18 +5588,34 @@ declare class CreateProfileRequest$Type extends MessageType<CreateProfileRequest
|
|
|
5588
5588
|
internalBinaryWrite(message: CreateProfileRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
|
|
5589
5589
|
}
|
|
5590
5590
|
/**
|
|
5591
|
+
* Primary identifier — user provides exactly ONE at signup.
|
|
5592
|
+
* Additional identifiers can be added later via profile settings.
|
|
5593
|
+
* Username is a valuable identity — never auto-generated.
|
|
5594
|
+
*
|
|
5591
5595
|
* @generated from protobuf message sid.v1.identity.CreateProfileRequest
|
|
5592
5596
|
*/
|
|
5593
5597
|
interface CreateProfileRequest {
|
|
5594
5598
|
/**
|
|
5599
|
+
* Login handle (no '@', no '+'). Global ('alice') or federated ('alice#acme.corp').
|
|
5600
|
+
*
|
|
5595
5601
|
* @generated from protobuf field: optional string username = 1
|
|
5596
5602
|
*/
|
|
5597
5603
|
username?: string;
|
|
5598
5604
|
/**
|
|
5605
|
+
* Email address. Requires OTP/magic-link verification after signup.
|
|
5606
|
+
*
|
|
5599
5607
|
* @generated from protobuf field: optional string email = 2
|
|
5600
5608
|
*/
|
|
5601
5609
|
email?: string;
|
|
5602
5610
|
/**
|
|
5611
|
+
* Phone number in E.164 format (+380501234567). Requires OTP verification after signup.
|
|
5612
|
+
*
|
|
5613
|
+
* @generated from protobuf field: optional string phone = 17
|
|
5614
|
+
*/
|
|
5615
|
+
phone?: string;
|
|
5616
|
+
/**
|
|
5617
|
+
* Structured name components (OIDC + SCIM compliant). All optional.
|
|
5618
|
+
*
|
|
5603
5619
|
* @generated from protobuf field: optional string given_name = 3
|
|
5604
5620
|
*/
|
|
5605
5621
|
givenName?: string;
|
package/dist/index.js
CHANGED
|
@@ -11010,6 +11010,14 @@ var CreateProfileRequest$Type = class extends MessageType5 {
|
|
|
11010
11010
|
T: 9
|
|
11011
11011
|
/*ScalarType.STRING*/
|
|
11012
11012
|
},
|
|
11013
|
+
{
|
|
11014
|
+
no: 17,
|
|
11015
|
+
name: "phone",
|
|
11016
|
+
kind: "scalar",
|
|
11017
|
+
opt: true,
|
|
11018
|
+
T: 9
|
|
11019
|
+
/*ScalarType.STRING*/
|
|
11020
|
+
},
|
|
11013
11021
|
{
|
|
11014
11022
|
no: 3,
|
|
11015
11023
|
name: "given_name",
|
|
@@ -11090,6 +11098,10 @@ var CreateProfileRequest$Type = class extends MessageType5 {
|
|
|
11090
11098
|
2:
|
|
11091
11099
|
message.email = reader.string();
|
|
11092
11100
|
break;
|
|
11101
|
+
case /* optional string phone */
|
|
11102
|
+
17:
|
|
11103
|
+
message.phone = reader.string();
|
|
11104
|
+
break;
|
|
11093
11105
|
case /* optional string given_name */
|
|
11094
11106
|
3:
|
|
11095
11107
|
message.givenName = reader.string();
|
|
@@ -11160,6 +11172,8 @@ var CreateProfileRequest$Type = class extends MessageType5 {
|
|
|
11160
11172
|
writer.tag(15, WireType4.LengthDelimited).string(message.honorificPrefix);
|
|
11161
11173
|
if (message.honorificSuffix !== void 0)
|
|
11162
11174
|
writer.tag(16, WireType4.LengthDelimited).string(message.honorificSuffix);
|
|
11175
|
+
if (message.phone !== void 0)
|
|
11176
|
+
writer.tag(17, WireType4.LengthDelimited).string(message.phone);
|
|
11163
11177
|
let u = options.writeUnknownFields;
|
|
11164
11178
|
if (u !== false)
|
|
11165
11179
|
(u == true ? UnknownFieldHandler5.onWrite : u)(this.typeName, message, writer);
|
package/package.json
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@structured-id/ui-core",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
7
7
|
"registry": "https://registry.npmjs.org"
|
|
8
8
|
},
|
|
9
9
|
"description": "Shared UI package for StructuredID — proto clients, Vue 3 composables, Pinia stores, components.",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/structured-id/ui-core.git"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/structured-id/ui-core",
|
|
15
|
+
"bugs": "https://github.com/structured-id/ui-core/issues",
|
|
10
16
|
"main": "dist/index.cjs",
|
|
11
17
|
"module": "dist/index.js",
|
|
12
18
|
"types": "dist/index.d.ts",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// @generated from protobuf file "google/api/http.proto" (package "google.api", syntax proto3)
|
|
3
3
|
// tslint:disable
|
|
4
4
|
//
|
|
5
|
-
// Copyright
|
|
5
|
+
// Copyright 2026 Google LLC
|
|
6
6
|
//
|
|
7
7
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
8
|
// you may not use this file except in compliance with the License.
|
|
@@ -288,43 +288,103 @@ export interface SetFeatureRequest {
|
|
|
288
288
|
*/
|
|
289
289
|
export interface EmailSettings {
|
|
290
290
|
/**
|
|
291
|
+
* SMTP server hostname (e.g. "smtp.office365.com").
|
|
292
|
+
*
|
|
291
293
|
* @generated from protobuf field: string smtp_host = 1
|
|
292
294
|
*/
|
|
293
295
|
smtpHost: string;
|
|
294
296
|
/**
|
|
297
|
+
* SMTP port. Canonical defaults: 587 (STARTTLS), 465 (SSL/TLS), 25 (none).
|
|
298
|
+
*
|
|
295
299
|
* @generated from protobuf field: uint32 smtp_port = 2
|
|
296
300
|
*/
|
|
297
301
|
smtpPort: number;
|
|
298
302
|
/**
|
|
303
|
+
* Envelope From / From header address (e.g. "noreply@example.com").
|
|
304
|
+
*
|
|
299
305
|
* @generated from protobuf field: string from_address = 3
|
|
300
306
|
*/
|
|
301
307
|
fromAddress: string;
|
|
302
308
|
/**
|
|
309
|
+
* Display name in From header (e.g. "Example IdP").
|
|
310
|
+
*
|
|
303
311
|
* @generated from protobuf field: string from_display_name = 4
|
|
304
312
|
*/
|
|
305
313
|
fromDisplayName: string;
|
|
306
314
|
/**
|
|
315
|
+
* Optional Reply-To address. Empty = none.
|
|
316
|
+
*
|
|
307
317
|
* @generated from protobuf field: string reply_to = 5
|
|
308
318
|
*/
|
|
309
319
|
replyTo: string;
|
|
310
320
|
/**
|
|
321
|
+
* TLS/encryption mode for the SMTP connection.
|
|
322
|
+
*
|
|
311
323
|
* @generated from protobuf field: sid.v1.admin.SmtpEncryptionType encryption = 6
|
|
312
324
|
*/
|
|
313
325
|
encryption: SmtpEncryptionType;
|
|
314
326
|
/**
|
|
327
|
+
* Authentication method.
|
|
328
|
+
*
|
|
315
329
|
* @generated from protobuf field: sid.v1.admin.SmtpAuthType auth_type = 7
|
|
316
330
|
*/
|
|
317
331
|
authType: SmtpAuthType;
|
|
318
332
|
/**
|
|
319
|
-
*
|
|
333
|
+
* SMTP username for PLAIN/LOGIN or the email address for XOAUTH2.
|
|
334
|
+
* Only set on update; never returned in GetEmailSettings.
|
|
320
335
|
*
|
|
321
336
|
* @generated from protobuf field: string username = 8
|
|
322
337
|
*/
|
|
323
338
|
username: string;
|
|
324
339
|
/**
|
|
340
|
+
* SMTP password for PLAIN/LOGIN. Write-only — never returned in GetEmailSettings.
|
|
341
|
+
*
|
|
325
342
|
* @generated from protobuf field: string password = 9
|
|
326
343
|
*/
|
|
327
344
|
password: string;
|
|
345
|
+
// ── XOAUTH2 fields (auth_type == SMTP_AUTH_TYPE_XOAUTH2 only) ──────────
|
|
346
|
+
|
|
347
|
+
/**
|
|
348
|
+
* OAuth2 provider: "m365" (Microsoft 365) or "google" (Google Workspace).
|
|
349
|
+
*
|
|
350
|
+
* @generated from protobuf field: sid.v1.admin.XOAuth2ProviderType xoauth2_provider = 10
|
|
351
|
+
*/
|
|
352
|
+
xoauth2Provider: XOAuth2ProviderType;
|
|
353
|
+
/**
|
|
354
|
+
* Microsoft 365: Azure AD tenant ID (GUID or domain name).
|
|
355
|
+
* Required when xoauth2_provider == M365.
|
|
356
|
+
*
|
|
357
|
+
* @generated from protobuf field: string xoauth2_tenant_id = 11
|
|
358
|
+
*/
|
|
359
|
+
xoauth2TenantId: string;
|
|
360
|
+
/**
|
|
361
|
+
* OAuth2 client ID (app registration). Required for both M365 and Google.
|
|
362
|
+
*
|
|
363
|
+
* @generated from protobuf field: string xoauth2_client_id = 12
|
|
364
|
+
*/
|
|
365
|
+
xoauth2ClientId: string;
|
|
366
|
+
/**
|
|
367
|
+
* OAuth2 client secret. Write-only — never returned in GetEmailSettings.
|
|
368
|
+
* M365: Azure AD client secret. Google: not used (service account key instead).
|
|
369
|
+
*
|
|
370
|
+
* @generated from protobuf field: string xoauth2_client_secret = 13
|
|
371
|
+
*/
|
|
372
|
+
xoauth2ClientSecret: string;
|
|
373
|
+
/**
|
|
374
|
+
* Google Workspace: service account key JSON. Write-only.
|
|
375
|
+
* Contains private key used to sign JWT assertions for the token exchange.
|
|
376
|
+
*
|
|
377
|
+
* @generated from protobuf field: string xoauth2_service_account_key = 14
|
|
378
|
+
*/
|
|
379
|
+
xoauth2ServiceAccountKey: string;
|
|
380
|
+
/**
|
|
381
|
+
* Optional override for the OAuth2 token endpoint URL.
|
|
382
|
+
* Defaults: M365 = https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token
|
|
383
|
+
* Google = https://oauth2.googleapis.com/token
|
|
384
|
+
*
|
|
385
|
+
* @generated from protobuf field: string xoauth2_token_endpoint = 15
|
|
386
|
+
*/
|
|
387
|
+
xoauth2TokenEndpoint: string;
|
|
328
388
|
}
|
|
329
389
|
/**
|
|
330
390
|
* @generated from protobuf message sid.v1.admin.TestEmailResponse
|
|
@@ -607,7 +667,42 @@ export enum SmtpAuthType {
|
|
|
607
667
|
/**
|
|
608
668
|
* @generated from protobuf enum value: SMTP_AUTH_TYPE_USERNAME_PASSWORD = 2;
|
|
609
669
|
*/
|
|
610
|
-
USERNAME_PASSWORD = 2
|
|
670
|
+
USERNAME_PASSWORD = 2,
|
|
671
|
+
/**
|
|
672
|
+
* OAuth2 bearer token via XOAUTH2 SASL mechanism.
|
|
673
|
+
* Required for Microsoft 365 (App Password deprecated Oct 2022) and
|
|
674
|
+
* Google Workspace SMTP relay. Credentials: OAuth2 client credentials flow
|
|
675
|
+
* (M365) or service account JWT exchange (Google).
|
|
676
|
+
*
|
|
677
|
+
* @generated from protobuf enum value: SMTP_AUTH_TYPE_XOAUTH2 = 3;
|
|
678
|
+
*/
|
|
679
|
+
XOAUTH2 = 3
|
|
680
|
+
}
|
|
681
|
+
/**
|
|
682
|
+
* OAuth2 provider for XOAUTH2 SMTP authentication.
|
|
683
|
+
*
|
|
684
|
+
* @generated from protobuf enum sid.v1.admin.XOAuth2ProviderType
|
|
685
|
+
*/
|
|
686
|
+
export enum XOAuth2ProviderType {
|
|
687
|
+
/**
|
|
688
|
+
* @generated from protobuf enum value: XOAUTH2_PROVIDER_TYPE_UNSPECIFIED = 0;
|
|
689
|
+
*/
|
|
690
|
+
XOAUTH2_PROVIDER_TYPE_UNSPECIFIED = 0,
|
|
691
|
+
/**
|
|
692
|
+
* Microsoft 365 via Azure AD OAuth2 client credentials flow.
|
|
693
|
+
* Required config: xoauth2_tenant_id, xoauth2_client_id, xoauth2_client_secret.
|
|
694
|
+
*
|
|
695
|
+
* @generated from protobuf enum value: XOAUTH2_PROVIDER_TYPE_M365 = 1;
|
|
696
|
+
*/
|
|
697
|
+
XOAUTH2_PROVIDER_TYPE_M365 = 1,
|
|
698
|
+
/**
|
|
699
|
+
* Google Workspace via service account JWT bearer token exchange.
|
|
700
|
+
* Required config: xoauth2_client_id (service account email),
|
|
701
|
+
* xoauth2_service_account_key (JSON key file content).
|
|
702
|
+
*
|
|
703
|
+
* @generated from protobuf enum value: XOAUTH2_PROVIDER_TYPE_GOOGLE = 2;
|
|
704
|
+
*/
|
|
705
|
+
XOAUTH2_PROVIDER_TYPE_GOOGLE = 2
|
|
611
706
|
}
|
|
612
707
|
/**
|
|
613
708
|
* @generated from protobuf enum sid.v1.admin.ImportConflictStrategy
|
|
@@ -1483,7 +1578,13 @@ class EmailSettings$Type extends MessageType<EmailSettings> {
|
|
|
1483
1578
|
{ no: 6, name: "encryption", kind: "enum", T: () => ["sid.v1.admin.SmtpEncryptionType", SmtpEncryptionType, "SMTP_ENCRYPTION_TYPE_"] },
|
|
1484
1579
|
{ no: 7, name: "auth_type", kind: "enum", T: () => ["sid.v1.admin.SmtpAuthType", SmtpAuthType, "SMTP_AUTH_TYPE_"] },
|
|
1485
1580
|
{ no: 8, name: "username", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
|
1486
|
-
{ no: 9, name: "password", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
|
1581
|
+
{ no: 9, name: "password", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
|
1582
|
+
{ no: 10, name: "xoauth2_provider", kind: "enum", T: () => ["sid.v1.admin.XOAuth2ProviderType", XOAuth2ProviderType] },
|
|
1583
|
+
{ no: 11, name: "xoauth2_tenant_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
|
1584
|
+
{ no: 12, name: "xoauth2_client_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
|
1585
|
+
{ no: 13, name: "xoauth2_client_secret", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
|
1586
|
+
{ no: 14, name: "xoauth2_service_account_key", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
|
1587
|
+
{ no: 15, name: "xoauth2_token_endpoint", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
|
1487
1588
|
]);
|
|
1488
1589
|
}
|
|
1489
1590
|
create(value?: PartialMessage<EmailSettings>): EmailSettings {
|
|
@@ -1497,6 +1598,12 @@ class EmailSettings$Type extends MessageType<EmailSettings> {
|
|
|
1497
1598
|
message.authType = 0;
|
|
1498
1599
|
message.username = "";
|
|
1499
1600
|
message.password = "";
|
|
1601
|
+
message.xoauth2Provider = 0;
|
|
1602
|
+
message.xoauth2TenantId = "";
|
|
1603
|
+
message.xoauth2ClientId = "";
|
|
1604
|
+
message.xoauth2ClientSecret = "";
|
|
1605
|
+
message.xoauth2ServiceAccountKey = "";
|
|
1606
|
+
message.xoauth2TokenEndpoint = "";
|
|
1500
1607
|
if (value !== undefined)
|
|
1501
1608
|
reflectionMergePartial<EmailSettings>(this, message, value);
|
|
1502
1609
|
return message;
|
|
@@ -1533,6 +1640,24 @@ class EmailSettings$Type extends MessageType<EmailSettings> {
|
|
|
1533
1640
|
case /* string password */ 9:
|
|
1534
1641
|
message.password = reader.string();
|
|
1535
1642
|
break;
|
|
1643
|
+
case /* sid.v1.admin.XOAuth2ProviderType xoauth2_provider */ 10:
|
|
1644
|
+
message.xoauth2Provider = reader.int32();
|
|
1645
|
+
break;
|
|
1646
|
+
case /* string xoauth2_tenant_id */ 11:
|
|
1647
|
+
message.xoauth2TenantId = reader.string();
|
|
1648
|
+
break;
|
|
1649
|
+
case /* string xoauth2_client_id */ 12:
|
|
1650
|
+
message.xoauth2ClientId = reader.string();
|
|
1651
|
+
break;
|
|
1652
|
+
case /* string xoauth2_client_secret */ 13:
|
|
1653
|
+
message.xoauth2ClientSecret = reader.string();
|
|
1654
|
+
break;
|
|
1655
|
+
case /* string xoauth2_service_account_key */ 14:
|
|
1656
|
+
message.xoauth2ServiceAccountKey = reader.string();
|
|
1657
|
+
break;
|
|
1658
|
+
case /* string xoauth2_token_endpoint */ 15:
|
|
1659
|
+
message.xoauth2TokenEndpoint = reader.string();
|
|
1660
|
+
break;
|
|
1536
1661
|
default:
|
|
1537
1662
|
let u = options.readUnknownField;
|
|
1538
1663
|
if (u === "throw")
|
|
@@ -1572,6 +1697,24 @@ class EmailSettings$Type extends MessageType<EmailSettings> {
|
|
|
1572
1697
|
/* string password = 9; */
|
|
1573
1698
|
if (message.password !== "")
|
|
1574
1699
|
writer.tag(9, WireType.LengthDelimited).string(message.password);
|
|
1700
|
+
/* sid.v1.admin.XOAuth2ProviderType xoauth2_provider = 10; */
|
|
1701
|
+
if (message.xoauth2Provider !== 0)
|
|
1702
|
+
writer.tag(10, WireType.Varint).int32(message.xoauth2Provider);
|
|
1703
|
+
/* string xoauth2_tenant_id = 11; */
|
|
1704
|
+
if (message.xoauth2TenantId !== "")
|
|
1705
|
+
writer.tag(11, WireType.LengthDelimited).string(message.xoauth2TenantId);
|
|
1706
|
+
/* string xoauth2_client_id = 12; */
|
|
1707
|
+
if (message.xoauth2ClientId !== "")
|
|
1708
|
+
writer.tag(12, WireType.LengthDelimited).string(message.xoauth2ClientId);
|
|
1709
|
+
/* string xoauth2_client_secret = 13; */
|
|
1710
|
+
if (message.xoauth2ClientSecret !== "")
|
|
1711
|
+
writer.tag(13, WireType.LengthDelimited).string(message.xoauth2ClientSecret);
|
|
1712
|
+
/* string xoauth2_service_account_key = 14; */
|
|
1713
|
+
if (message.xoauth2ServiceAccountKey !== "")
|
|
1714
|
+
writer.tag(14, WireType.LengthDelimited).string(message.xoauth2ServiceAccountKey);
|
|
1715
|
+
/* string xoauth2_token_endpoint = 15; */
|
|
1716
|
+
if (message.xoauth2TokenEndpoint !== "")
|
|
1717
|
+
writer.tag(15, WireType.LengthDelimited).string(message.xoauth2TokenEndpoint);
|
|
1575
1718
|
let u = options.writeUnknownFields;
|
|
1576
1719
|
if (u !== false)
|
|
1577
1720
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
@@ -223,6 +223,10 @@ export interface OpaqueLoginFinishResponse {
|
|
|
223
223
|
// Graceful degradation: if client lacks WASM capability, zkpp_proof is empty.
|
|
224
224
|
// Server sets zkpp_verified=false and starts a 24h deferred verification window
|
|
225
225
|
// (see SubmitDeferredZkProof RPC).
|
|
226
|
+
//
|
|
227
|
+
// Reference: Prudnikov, D. (2026). "Zero-Knowledge Proof System for Password Policy
|
|
228
|
+
// Verification in Asymmetric Password-Authenticated Key Exchange."
|
|
229
|
+
// doi:10.5281/zenodo.19387561 — https://doi.org/10.5281/zenodo.19387561
|
|
226
230
|
// ══════════════════════════════════════════════════════════════════════════
|
|
227
231
|
|
|
228
232
|
/**
|
|
@@ -444,18 +444,34 @@ export interface Session {
|
|
|
444
444
|
// Request/Response messages.
|
|
445
445
|
|
|
446
446
|
/**
|
|
447
|
+
* Primary identifier — user provides exactly ONE at signup.
|
|
448
|
+
* Additional identifiers can be added later via profile settings.
|
|
449
|
+
* Username is a valuable identity — never auto-generated.
|
|
450
|
+
*
|
|
447
451
|
* @generated from protobuf message sid.v1.identity.CreateProfileRequest
|
|
448
452
|
*/
|
|
449
453
|
export interface CreateProfileRequest {
|
|
450
454
|
/**
|
|
455
|
+
* Login handle (no '@', no '+'). Global ('alice') or federated ('alice#acme.corp').
|
|
456
|
+
*
|
|
451
457
|
* @generated from protobuf field: optional string username = 1
|
|
452
458
|
*/
|
|
453
459
|
username?: string;
|
|
454
460
|
/**
|
|
461
|
+
* Email address. Requires OTP/magic-link verification after signup.
|
|
462
|
+
*
|
|
455
463
|
* @generated from protobuf field: optional string email = 2
|
|
456
464
|
*/
|
|
457
465
|
email?: string;
|
|
458
466
|
/**
|
|
467
|
+
* Phone number in E.164 format (+380501234567). Requires OTP verification after signup.
|
|
468
|
+
*
|
|
469
|
+
* @generated from protobuf field: optional string phone = 17
|
|
470
|
+
*/
|
|
471
|
+
phone?: string;
|
|
472
|
+
/**
|
|
473
|
+
* Structured name components (OIDC + SCIM compliant). All optional.
|
|
474
|
+
*
|
|
459
475
|
* @generated from protobuf field: optional string given_name = 3
|
|
460
476
|
*/
|
|
461
477
|
givenName?: string;
|
|
@@ -2515,6 +2531,7 @@ class CreateProfileRequest$Type extends MessageType<CreateProfileRequest> {
|
|
|
2515
2531
|
super("sid.v1.identity.CreateProfileRequest", [
|
|
2516
2532
|
{ no: 1, name: "username", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
2517
2533
|
{ no: 2, name: "email", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
2534
|
+
{ no: 17, name: "phone", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
2518
2535
|
{ no: 3, name: "given_name", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
2519
2536
|
{ no: 13, name: "family_name", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
2520
2537
|
{ no: 14, name: "middle_name", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ },
|
|
@@ -2544,6 +2561,9 @@ class CreateProfileRequest$Type extends MessageType<CreateProfileRequest> {
|
|
|
2544
2561
|
case /* optional string email */ 2:
|
|
2545
2562
|
message.email = reader.string();
|
|
2546
2563
|
break;
|
|
2564
|
+
case /* optional string phone */ 17:
|
|
2565
|
+
message.phone = reader.string();
|
|
2566
|
+
break;
|
|
2547
2567
|
case /* optional string given_name */ 3:
|
|
2548
2568
|
message.givenName = reader.string();
|
|
2549
2569
|
break;
|
|
@@ -2616,6 +2636,9 @@ class CreateProfileRequest$Type extends MessageType<CreateProfileRequest> {
|
|
|
2616
2636
|
/* optional string honorific_suffix = 16; */
|
|
2617
2637
|
if (message.honorificSuffix !== undefined)
|
|
2618
2638
|
writer.tag(16, WireType.LengthDelimited).string(message.honorificSuffix);
|
|
2639
|
+
/* optional string phone = 17; */
|
|
2640
|
+
if (message.phone !== undefined)
|
|
2641
|
+
writer.tag(17, WireType.LengthDelimited).string(message.phone);
|
|
2619
2642
|
let u = options.writeUnknownFields;
|
|
2620
2643
|
if (u !== false)
|
|
2621
2644
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
@@ -127,6 +127,17 @@ export interface Application {
|
|
|
127
127
|
* @generated from protobuf field: bool dynamically_registered = 17
|
|
128
128
|
*/
|
|
129
129
|
dynamicallyRegistered: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* Organization this client belongs to. Used as the binding grouping
|
|
132
|
+
* key for pairwise sub derivation (org-model.md §Binding Grouping):
|
|
133
|
+
* sub = HMAC(salt, profile_id || org_id || "sid-pairwise-sub-v1")
|
|
134
|
+
* All clients within the same org produce the same BindingId for a
|
|
135
|
+
* given profile — domain changes don't affect sub stability.
|
|
136
|
+
* Empty = no org association (legacy CE clients before org model).
|
|
137
|
+
*
|
|
138
|
+
* @generated from protobuf field: optional string org_id = 18
|
|
139
|
+
*/
|
|
140
|
+
orgId?: string;
|
|
130
141
|
}
|
|
131
142
|
/**
|
|
132
143
|
* Initial Access Token constrains DCR registrations.
|
|
@@ -289,6 +300,13 @@ export interface CreateApplicationRequest {
|
|
|
289
300
|
* @generated from protobuf field: repeated string grant_types = 6
|
|
290
301
|
*/
|
|
291
302
|
grantTypes: string[];
|
|
303
|
+
/**
|
|
304
|
+
* Organization to associate this client with (for pairwise sub derivation).
|
|
305
|
+
* Empty = inherit from project's org (if any).
|
|
306
|
+
*
|
|
307
|
+
* @generated from protobuf field: optional string org_id = 7
|
|
308
|
+
*/
|
|
309
|
+
orgId?: string;
|
|
292
310
|
}
|
|
293
311
|
/**
|
|
294
312
|
* Returns client_secret in plaintext (only on creation, never stored).
|
|
@@ -829,7 +847,8 @@ class Application$Type extends MessageType<Application> {
|
|
|
829
847
|
{ no: 14, name: "contacts", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
|
|
830
848
|
{ no: 15, name: "client_id_issued_at", kind: "message", T: () => Timestamp },
|
|
831
849
|
{ no: 16, name: "client_secret_expires_at", kind: "message", T: () => Timestamp },
|
|
832
|
-
{ no: 17, name: "dynamically_registered", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }
|
|
850
|
+
{ no: 17, name: "dynamically_registered", kind: "scalar", T: 8 /*ScalarType.BOOL*/ },
|
|
851
|
+
{ no: 18, name: "org_id", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ }
|
|
833
852
|
]);
|
|
834
853
|
}
|
|
835
854
|
create(value?: PartialMessage<Application>): Application {
|
|
@@ -907,6 +926,9 @@ class Application$Type extends MessageType<Application> {
|
|
|
907
926
|
case /* bool dynamically_registered */ 17:
|
|
908
927
|
message.dynamicallyRegistered = reader.bool();
|
|
909
928
|
break;
|
|
929
|
+
case /* optional string org_id */ 18:
|
|
930
|
+
message.orgId = reader.string();
|
|
931
|
+
break;
|
|
910
932
|
default:
|
|
911
933
|
let u = options.readUnknownField;
|
|
912
934
|
if (u === "throw")
|
|
@@ -970,6 +992,9 @@ class Application$Type extends MessageType<Application> {
|
|
|
970
992
|
/* bool dynamically_registered = 17; */
|
|
971
993
|
if (message.dynamicallyRegistered !== false)
|
|
972
994
|
writer.tag(17, WireType.Varint).bool(message.dynamicallyRegistered);
|
|
995
|
+
/* optional string org_id = 18; */
|
|
996
|
+
if (message.orgId !== undefined)
|
|
997
|
+
writer.tag(18, WireType.LengthDelimited).string(message.orgId);
|
|
973
998
|
let u = options.writeUnknownFields;
|
|
974
999
|
if (u !== false)
|
|
975
1000
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
|
@@ -1442,7 +1467,8 @@ class CreateApplicationRequest$Type extends MessageType<CreateApplicationRequest
|
|
|
1442
1467
|
{ no: 3, name: "type", kind: "enum", T: () => ["sid.v1.projects.ApplicationType", ApplicationType, "APPLICATION_TYPE_"] },
|
|
1443
1468
|
{ no: 4, name: "redirect_uris", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
|
|
1444
1469
|
{ no: 5, name: "allowed_scopes", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
|
|
1445
|
-
{ no: 6, name: "grant_types", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
|
|
1470
|
+
{ no: 6, name: "grant_types", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
|
|
1471
|
+
{ no: 7, name: "org_id", kind: "scalar", opt: true, T: 9 /*ScalarType.STRING*/ }
|
|
1446
1472
|
]);
|
|
1447
1473
|
}
|
|
1448
1474
|
create(value?: PartialMessage<CreateApplicationRequest>): CreateApplicationRequest {
|
|
@@ -1480,6 +1506,9 @@ class CreateApplicationRequest$Type extends MessageType<CreateApplicationRequest
|
|
|
1480
1506
|
case /* repeated string grant_types */ 6:
|
|
1481
1507
|
message.grantTypes.push(reader.string());
|
|
1482
1508
|
break;
|
|
1509
|
+
case /* optional string org_id */ 7:
|
|
1510
|
+
message.orgId = reader.string();
|
|
1511
|
+
break;
|
|
1483
1512
|
default:
|
|
1484
1513
|
let u = options.readUnknownField;
|
|
1485
1514
|
if (u === "throw")
|
|
@@ -1510,6 +1539,9 @@ class CreateApplicationRequest$Type extends MessageType<CreateApplicationRequest
|
|
|
1510
1539
|
/* repeated string grant_types = 6; */
|
|
1511
1540
|
for (let i = 0; i < message.grantTypes.length; i++)
|
|
1512
1541
|
writer.tag(6, WireType.LengthDelimited).string(message.grantTypes[i]);
|
|
1542
|
+
/* optional string org_id = 7; */
|
|
1543
|
+
if (message.orgId !== undefined)
|
|
1544
|
+
writer.tag(7, WireType.LengthDelimited).string(message.orgId);
|
|
1513
1545
|
let u = options.writeUnknownFields;
|
|
1514
1546
|
if (u !== false)
|
|
1515
1547
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|