@spotto/contract 1.0.69-alpha.29 → 1.0.69-alpha.30
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.
|
@@ -68,12 +68,30 @@ export interface SsoEnabledBase<TRoleId = string> {
|
|
|
68
68
|
roleMappings: RoleMapping<TRoleId>[];
|
|
69
69
|
/**
|
|
70
70
|
* Mixed-mode opt-in: when `true`, the org accepts both SSO-managed users
|
|
71
|
-
* (via federation) AND
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
71
|
+
* (via federation) AND password-auth users created through `POST /users`.
|
|
72
|
+
* Password-user emails must be OUTSIDE `emailDomains` — the staff-domain
|
|
73
|
+
* space is reserved for the IdP. Defaults to `false` (SSO-only) when
|
|
74
|
+
* absent.
|
|
75
|
+
*
|
|
76
|
+
* Note: there's no on-disk "guest" type. A password-auth user in a
|
|
77
|
+
* mixed-mode org is the same shape as any other password-auth user
|
|
78
|
+
* (`authProvider: undefined`). What distinguishes federation-managed
|
|
79
|
+
* from password-managed identity is the email-domain rule, not a flag
|
|
80
|
+
* on the user record.
|
|
75
81
|
*/
|
|
76
82
|
allowGuestUsers?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Testing escape hatch: when `true`, federation is allowed for users
|
|
85
|
+
* whose email domain isn't in `emailDomains`. Production orgs should
|
|
86
|
+
* leave this off — without it, the IdP-to-emailDomains contract is
|
|
87
|
+
* enforced and federation is refused for any email outside the
|
|
88
|
+
* configured domains (`SSO_EMAIL_DOMAIN_NOT_ALLOWED`).
|
|
89
|
+
*
|
|
90
|
+
* Even when this flag is on, the bind path still refuses to overwrite
|
|
91
|
+
* an existing password-auth user whose email is outside `emailDomains`
|
|
92
|
+
* (identity-integrity guard) — only fresh JIT-creates proceed.
|
|
93
|
+
*/
|
|
94
|
+
allowOutOfDomainEmails?: boolean;
|
|
77
95
|
}
|
|
78
96
|
export interface SsoEnabledOidc<TRoleId = string> extends SsoEnabledBase<TRoleId> {
|
|
79
97
|
mode: 'oidc';
|
|
@@ -32,11 +32,17 @@ interface OnboardSsoOrgWireBase {
|
|
|
32
32
|
*/
|
|
33
33
|
roleMappings?: RoleMappingInput[];
|
|
34
34
|
/**
|
|
35
|
-
* Opt-in to mixed-mode: allow
|
|
36
|
-
* users in the same org.
|
|
37
|
-
*
|
|
35
|
+
* Opt-in to mixed-mode: allow password-auth users alongside SSO-managed
|
|
36
|
+
* users in the same org. Password-user emails must be OUTSIDE
|
|
37
|
+
* `emailDomains`. Defaults to `false`.
|
|
38
38
|
*/
|
|
39
39
|
allowGuestUsers?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Testing escape hatch: when `true`, federation is allowed for users
|
|
42
|
+
* whose email domain isn't in `emailDomains`. See `SsoEnabledBase`.
|
|
43
|
+
* Defaults to `false`.
|
|
44
|
+
*/
|
|
45
|
+
allowOutOfDomainEmails?: boolean;
|
|
40
46
|
}
|
|
41
47
|
export interface OnboardSsoOrgOidcRequest extends OnboardSsoOrgWireBase {
|
|
42
48
|
mode: 'oidc';
|
|
@@ -5,9 +5,11 @@
|
|
|
5
5
|
* their original pre-SSO password.
|
|
6
6
|
* - `noPriorAccount` — user was JIT-created post-SSO; no native record to
|
|
7
7
|
* restore. Loses access. Operator must manually re-add.
|
|
8
|
-
* - `skippedGuest` — user
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* - `skippedGuest` — user's email domain is outside the org's
|
|
9
|
+
* (now-removed) `sso.emailDomains`, so they were never federation-
|
|
10
|
+
* managed in the first place. Their native Cognito record is intact
|
|
11
|
+
* and they retain access. No Mongo write needed. (Name kept for
|
|
12
|
+
* contract stability; semantically "skipped because not SSO-bound".)
|
|
11
13
|
* - `failed` — Mongo update threw mid-loop; see `error`. The revert as a
|
|
12
14
|
* whole continues processing other users; an operator can retry the
|
|
13
15
|
* failed ones.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spotto/contract",
|
|
3
3
|
"license": "ISC",
|
|
4
|
-
"version": "1.0.69-alpha.
|
|
4
|
+
"version": "1.0.69-alpha.30",
|
|
5
5
|
"description": "Spotto's API Contract type definitions",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"files": [
|
|
@@ -18,5 +18,5 @@
|
|
|
18
18
|
"@types/geojson": "^7946.0.11",
|
|
19
19
|
"shx": "^0.3.4"
|
|
20
20
|
},
|
|
21
|
-
"gitHead": "
|
|
21
|
+
"gitHead": "d0b13061fc923ffa432a8677206936242fb93958"
|
|
22
22
|
}
|