@noodleseed/one 0.84.2 → 0.84.3
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/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.d.ts +5 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.js +18 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.d.ts +7 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.js +85 -2
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-linked-evidence-postgres.d.ts +37 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-linked-evidence-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-linked-evidence-postgres.js +136 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-linked-evidence-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.js +38 -11
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-postgres.js +2 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-result.js +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-result.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.js +12 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-quarantine-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-eligibility-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-eligibility-postgres.js +65 -8
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-eligibility-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.d.ts +2 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.js +22 -2
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-local-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.d.ts +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.js +16 -0
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-preview-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-preview-postgres.js +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-account-reset-rollback-preview-postgres.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.js +32 -1
- package/node_modules/@noodle-borg/service/dist/platform-identity-schema-postgres.js.map +1 -1
- package/package.json +1 -1
package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.d.ts
CHANGED
|
@@ -55,6 +55,11 @@ export interface PlatformAccountResetFrozenResources {
|
|
|
55
55
|
readonly app: string;
|
|
56
56
|
}[];
|
|
57
57
|
readonly deploymentIds: readonly string[];
|
|
58
|
+
readonly workosLinks: readonly {
|
|
59
|
+
readonly principalId: string;
|
|
60
|
+
readonly realm: string;
|
|
61
|
+
readonly externalId: string;
|
|
62
|
+
}[];
|
|
58
63
|
readonly resourceCount: number;
|
|
59
64
|
}
|
|
60
65
|
export declare function platformAccountResetActionEvidence(request: PlatformAccountResetExecuteRequest, actorFingerprint: string): PlatformAccountResetActionEvidence;
|
package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-account-reset-operation-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-operation-postgres.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"platform-account-reset-operation-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-operation-postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,0BAA0B,EAEhC,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,MAAM,MAAM,8BAA8B,GAAG,yBAAyB,GAAG;IACvE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;CACnC,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,yBAAyB,GAAG;IACjE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,8BAA8B,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,UAAU,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC;CACrD;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAC;IACxD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,IAAI,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAC;IACxD,QAAQ,CAAC,8BAA8B,EAAE,MAAM,GAAG,IAAI,CAAC;IACvD,QAAQ,CAAC,6BAA6B,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,6BAA6B,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD,QAAQ,CAAC,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,IAAI,EAAE,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzE,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,SAAS;QAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,EAAE,CAAC;IACJ,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,kCAAkC,EAC3C,gBAAgB,EAAE,MAAM,GACvB,kCAAkC,CA4BpC;AAED,wBAAsB,iCAAiC,CACrD,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gCAAgC,CAAC,CAuB3C;AAED,wBAAgB,2CAA2C,CACzD,SAAS,EAAE,gCAAgC,EAC3C,4BAA4B,EAAE,MAAM,GACnC,IAAI,CAGN;AAED,wBAAsB,+BAA+B,CACnD,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,WAAW,GAAG,aAAa,GACrC,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAW5B;AAED,wBAAsB,uCAAuC,CAC3D,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mCAAmC,CAAC,CAgF9C;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,OAAO,GAAG,0BAA0B,CAI9F;AAED,wBAAgB,wCAAwC,CACtD,SAAS,EAAE,gCAAgC,EAC3C,OAAO,EAAE,kCAAkC,EAC3C,OAAO,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACrE,IAAI,CASN;AAED,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,kCAAkC,EAC5C,MAAM,EAAE;IACN,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B,GACA,0BAA0B,CAS5B"}
|
|
@@ -74,6 +74,7 @@ export async function loadPlatformAccountResetFrozenResources(connection, operat
|
|
|
74
74
|
FOR SHARE`, [operationId]);
|
|
75
75
|
const apps = new Map();
|
|
76
76
|
const deploymentIds = new Set();
|
|
77
|
+
const workosLinks = new Map();
|
|
77
78
|
for (const row of result.rows) {
|
|
78
79
|
let locator;
|
|
79
80
|
try {
|
|
@@ -107,10 +108,27 @@ export async function loadPlatformAccountResetFrozenResources(connection, operat
|
|
|
107
108
|
if (!locator.archived)
|
|
108
109
|
deploymentIds.add(deploymentId);
|
|
109
110
|
}
|
|
111
|
+
if (row.resource_kind === 'workos_identity_link') {
|
|
112
|
+
const principalId = locator.principalId;
|
|
113
|
+
const realm = locator.realm;
|
|
114
|
+
const externalId = locator.externalId;
|
|
115
|
+
if (typeof principalId !== 'string' ||
|
|
116
|
+
typeof realm !== 'string' ||
|
|
117
|
+
typeof externalId !== 'string' ||
|
|
118
|
+
locator.provider !== 'workos' ||
|
|
119
|
+
locator.disabledAt !== null)
|
|
120
|
+
throw new PlatformAccountResetPreviewError('operation_conflict');
|
|
121
|
+
workosLinks.set(`${principalId}\u0000${realm}\u0000${externalId}`, {
|
|
122
|
+
principalId,
|
|
123
|
+
realm,
|
|
124
|
+
externalId,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
110
127
|
}
|
|
111
128
|
return {
|
|
112
129
|
apps: [...apps.values()].sort((left, right) => `${left.org}/${left.app}`.localeCompare(`${right.org}/${right.app}`)),
|
|
113
130
|
deploymentIds: [...deploymentIds].sort(),
|
|
131
|
+
workosLinks: [...workosLinks.values()].sort((left, right) => `${left.principalId}\u0000${left.realm}\u0000${left.externalId}`.localeCompare(`${right.principalId}\u0000${right.realm}\u0000${right.externalId}`)),
|
|
114
132
|
resourceCount: result.rows.length,
|
|
115
133
|
};
|
|
116
134
|
}
|
package/node_modules/@noodle-borg/service/dist/platform-account-reset-operation-postgres.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-account-reset-operation-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-operation-postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gCAAgC,GACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"platform-account-reset-operation-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-operation-postgres.ts"],"names":[],"mappings":"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"}
|
package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.d.ts
CHANGED
|
@@ -12,11 +12,17 @@ export interface PlatformAccountResetWorkosEvidence {
|
|
|
12
12
|
readonly resources: readonly PlatformAccountResetCleanupResource[];
|
|
13
13
|
readonly providerUnavailableCount: number;
|
|
14
14
|
readonly conflictCount: number;
|
|
15
|
+
readonly presentCount: number;
|
|
16
|
+
}
|
|
17
|
+
export interface PlatformAccountResetExpectedWorkosIdentity {
|
|
18
|
+
readonly principalId: string;
|
|
19
|
+
readonly externalId: string;
|
|
20
|
+
readonly normalizedEmail: string;
|
|
15
21
|
}
|
|
16
22
|
export declare function loadPlatformAccountResetCustomerEvidence(connection: PlatformIdentityQueryable, targets: readonly string[]): Promise<readonly {
|
|
17
23
|
readonly subject: string;
|
|
18
24
|
readonly source: string;
|
|
19
25
|
}[]>;
|
|
20
26
|
export declare function loadPlatformAccountResetContactEvidence(connection: PlatformIdentityQueryable, targets: readonly string[], configured: PlatformAuthInventorySourceManifest): Promise<PlatformAccountResetContactEvidence>;
|
|
21
|
-
export declare function loadPlatformAccountResetWorkosEvidence(contacts: ReadonlyMap<string, string>, directory: PlatformAccountResetDirectory, workosRealm: string, options: PlatformAccountResetDirectoryReadOptions): Promise<PlatformAccountResetWorkosEvidence>;
|
|
27
|
+
export declare function loadPlatformAccountResetWorkosEvidence(contacts: ReadonlyMap<string, string>, linkedIdentities: ReadonlyMap<string, PlatformAccountResetExpectedWorkosIdentity>, directory: PlatformAccountResetDirectory, workosRealm: string, options: PlatformAccountResetDirectoryReadOptions): Promise<PlatformAccountResetWorkosEvidence>;
|
|
22
28
|
//# sourceMappingURL=platform-account-reset-preview-evidence-postgres.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-account-reset-preview-evidence-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-preview-evidence-postgres.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AAC1G,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAEhG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EACV,6BAA6B,EAC7B,wCAAwC,EAEzC,MAAM,uBAAuB,CAAC;AAQ/B,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,SAAS,EAAE,SAAS,mCAAmC,EAAE,CAAC;IACnE,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"platform-account-reset-preview-evidence-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-preview-evidence-postgres.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AAC1G,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAEhG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EACV,6BAA6B,EAC7B,wCAAwC,EAEzC,MAAM,uBAAuB,CAAC;AAQ/B,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,SAAS,EAAE,SAAS,mCAAmC,EAAE,CAAC;IACnE,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,0CAA0C;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,wBAAsB,wCAAwC,CAC5D,UAAU,EAAE,yBAAyB,EACrC,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,OAAO,CAAC,SAAS;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CAY3E;AAED,wBAAsB,uCAAuC,CAC3D,UAAU,EAAE,yBAAyB,EACrC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,UAAU,EAAE,mCAAmC,GAC9C,OAAO,CAAC,mCAAmC,CAAC,CA4E9C;AAED,wBAAsB,sCAAsC,CAC1D,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,0CAA0C,CAAC,EACjF,SAAS,EAAE,6BAA6B,EACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,wCAAwC,GAChD,OAAO,CAAC,kCAAkC,CAAC,CAkF7C"}
|
package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-evidence-postgres.js
CHANGED
|
@@ -74,10 +74,11 @@ export async function loadPlatformAccountResetContactEvidence(connection, target
|
|
|
74
74
|
ambiguousCount,
|
|
75
75
|
};
|
|
76
76
|
}
|
|
77
|
-
export async function loadPlatformAccountResetWorkosEvidence(contacts, directory, workosRealm, options) {
|
|
77
|
+
export async function loadPlatformAccountResetWorkosEvidence(contacts, linkedIdentities, directory, workosRealm, options) {
|
|
78
78
|
const resources = [];
|
|
79
79
|
let providerUnavailableCount = 0;
|
|
80
80
|
let conflictCount = 0;
|
|
81
|
+
let presentCount = 0;
|
|
81
82
|
const orderedContacts = [...contacts].sort(([left], [right]) => compareText(left, right));
|
|
82
83
|
for (const [principalId, normalizedEmail] of orderedContacts) {
|
|
83
84
|
if (providerReadAborted(options))
|
|
@@ -97,6 +98,27 @@ export async function loadPlatformAccountResetWorkosEvidence(contacts, directory
|
|
|
97
98
|
const exact = users
|
|
98
99
|
.filter((user) => safelyNormalizeEmail(user.normalizedEmail) === normalizedEmail)
|
|
99
100
|
.sort((left, right) => compareText(left.id, right.id));
|
|
101
|
+
const linked = linkedIdentities.get(principalId);
|
|
102
|
+
if (linked !== undefined) {
|
|
103
|
+
const linkedResult = await reconcileLinkedWorkosIdentity({
|
|
104
|
+
linked,
|
|
105
|
+
exact,
|
|
106
|
+
directory,
|
|
107
|
+
workosRealm,
|
|
108
|
+
options,
|
|
109
|
+
});
|
|
110
|
+
if (linkedResult === 'unavailable') {
|
|
111
|
+
providerUnavailableCount += 1;
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (linkedResult === 'conflict') {
|
|
115
|
+
conflictCount += 1;
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
resources.push(linkedResult.resource);
|
|
119
|
+
presentCount += linkedResult.present ? 1 : 0;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
100
122
|
if (exact.length > 1 || exact.some((user) => user.externalId !== undefined)) {
|
|
101
123
|
conflictCount += 1;
|
|
102
124
|
continue;
|
|
@@ -137,10 +159,70 @@ export async function loadPlatformAccountResetWorkosEvidence(contacts, directory
|
|
|
137
159
|
locator,
|
|
138
160
|
}),
|
|
139
161
|
});
|
|
162
|
+
presentCount += 1;
|
|
140
163
|
}
|
|
141
164
|
if (providerReadAborted(options))
|
|
142
165
|
return unavailableWorkosEvidence(orderedContacts.length);
|
|
143
|
-
return { resources, providerUnavailableCount, conflictCount };
|
|
166
|
+
return { resources, providerUnavailableCount, conflictCount, presentCount };
|
|
167
|
+
}
|
|
168
|
+
async function reconcileLinkedWorkosIdentity(input) {
|
|
169
|
+
let byId;
|
|
170
|
+
try {
|
|
171
|
+
byId = await input.directory.findUserById(input.linked.externalId, input.options);
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
return 'unavailable';
|
|
175
|
+
}
|
|
176
|
+
if (providerReadAborted(input.options))
|
|
177
|
+
return 'unavailable';
|
|
178
|
+
const exactUser = input.exact[0];
|
|
179
|
+
if (byId === undefined && input.exact.length === 0) {
|
|
180
|
+
return {
|
|
181
|
+
present: false,
|
|
182
|
+
resource: workosResource('absent_linked_user', {
|
|
183
|
+
principalId: input.linked.principalId,
|
|
184
|
+
userId: input.linked.externalId,
|
|
185
|
+
normalizedEmail: input.linked.normalizedEmail,
|
|
186
|
+
realm: input.workosRealm,
|
|
187
|
+
externalId: input.linked.principalId,
|
|
188
|
+
}),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
if (byId === undefined ||
|
|
192
|
+
input.exact.length !== 1 ||
|
|
193
|
+
exactUser === undefined ||
|
|
194
|
+
exactUser.id !== input.linked.externalId ||
|
|
195
|
+
safelyNormalizeEmail(exactUser.normalizedEmail) !== input.linked.normalizedEmail ||
|
|
196
|
+
exactUser.externalId !== input.linked.principalId ||
|
|
197
|
+
exactUser.verified !== true ||
|
|
198
|
+
byId.id !== input.linked.externalId ||
|
|
199
|
+
safelyNormalizeEmail(byId.normalizedEmail) !== input.linked.normalizedEmail ||
|
|
200
|
+
byId.externalId !== input.linked.principalId ||
|
|
201
|
+
byId.verified !== true) {
|
|
202
|
+
return 'conflict';
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
present: true,
|
|
206
|
+
resource: workosResource('linked_user', {
|
|
207
|
+
principalId: input.linked.principalId,
|
|
208
|
+
userId: input.linked.externalId,
|
|
209
|
+
normalizedEmail: input.linked.normalizedEmail,
|
|
210
|
+
realm: input.workosRealm,
|
|
211
|
+
externalId: input.linked.principalId,
|
|
212
|
+
}),
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
function workosResource(resourceKind, locator) {
|
|
216
|
+
return {
|
|
217
|
+
provider: 'workos',
|
|
218
|
+
resourceKind,
|
|
219
|
+
locator,
|
|
220
|
+
locatorFingerprint: sha256Canonical({
|
|
221
|
+
schemaVersion: 1,
|
|
222
|
+
label: `platform_account_reset_locator:workos:${resourceKind}`,
|
|
223
|
+
locator,
|
|
224
|
+
}),
|
|
225
|
+
};
|
|
144
226
|
}
|
|
145
227
|
function providerReadAborted(options) {
|
|
146
228
|
return options.signal.aborted || options.deadline.getTime() <= Date.now();
|
|
@@ -150,6 +232,7 @@ function unavailableWorkosEvidence(contactCount) {
|
|
|
150
232
|
resources: [],
|
|
151
233
|
providerUnavailableCount: contactCount,
|
|
152
234
|
conflictCount: 0,
|
|
235
|
+
presentCount: 0,
|
|
153
236
|
};
|
|
154
237
|
}
|
|
155
238
|
function queryRows(pool, text, values) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-account-reset-preview-evidence-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-preview-evidence-postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAG1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"platform-account-reset-preview-evidence-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-preview-evidence-postgres.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { PlatformAccountResetCleanupResource } from './platform-account-reset-ownership-postgres.js';
|
|
2
|
+
import type { PlatformAccountResetExpectedWorkosIdentity } from './platform-account-reset-preview-evidence-postgres.js';
|
|
3
|
+
export interface PlatformAccountResetIdentityLinkEvidenceRow {
|
|
4
|
+
readonly principal_id: string;
|
|
5
|
+
readonly provider: string;
|
|
6
|
+
readonly realm: string;
|
|
7
|
+
readonly external_id: string;
|
|
8
|
+
readonly disabled_at: Date | string | null;
|
|
9
|
+
readonly created_at: Date | string;
|
|
10
|
+
}
|
|
11
|
+
export interface PlatformAccountResetVerifiedEmailEvidenceRow {
|
|
12
|
+
readonly principal_id: string;
|
|
13
|
+
readonly original_email: string;
|
|
14
|
+
readonly normalized_email: string;
|
|
15
|
+
readonly provider: string;
|
|
16
|
+
readonly realm: string;
|
|
17
|
+
readonly status: 'active' | 'superseded';
|
|
18
|
+
readonly verified_at: Date | string;
|
|
19
|
+
readonly observed_at: Date | string;
|
|
20
|
+
}
|
|
21
|
+
export declare function inspectPlatformAccountResetLinkedEvidence(input: {
|
|
22
|
+
readonly targets: readonly string[];
|
|
23
|
+
readonly verified: readonly PlatformAccountResetVerifiedEmailEvidenceRow[];
|
|
24
|
+
readonly identityLinks: readonly PlatformAccountResetIdentityLinkEvidenceRow[];
|
|
25
|
+
readonly contacts: ReadonlyMap<string, string>;
|
|
26
|
+
readonly googleRealm: string;
|
|
27
|
+
readonly workosRealm: string;
|
|
28
|
+
readonly sharedExternalSubjectCount: number;
|
|
29
|
+
}): {
|
|
30
|
+
readonly identities: ReadonlyMap<string, PlatformAccountResetExpectedWorkosIdentity>;
|
|
31
|
+
readonly resources: readonly PlatformAccountResetCleanupResource[];
|
|
32
|
+
readonly blockers: readonly {
|
|
33
|
+
readonly code: 'verified_email_evidence_present' | 'workos_link_present';
|
|
34
|
+
readonly count: number;
|
|
35
|
+
}[];
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=platform-account-reset-preview-linked-evidence-postgres.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-account-reset-preview-linked-evidence-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-preview-linked-evidence-postgres.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AAC1G,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,uDAAuD,CAAC;AAGxH,MAAM,WAAW,2CAA2C;IAC1D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,4CAA4C;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,CAAC;CACrC;AAED,wBAAgB,yCAAyC,CAAC,KAAK,EAAE;IAC/D,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,4CAA4C,EAAE,CAAC;IAC3E,QAAQ,CAAC,aAAa,EAAE,SAAS,2CAA2C,EAAE,CAAC;IAC/E,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;CAC7C,GAAG;IACF,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,0CAA0C,CAAC,CAAC;IACrF,QAAQ,CAAC,SAAS,EAAE,SAAS,mCAAmC,EAAE,CAAC;IACnE,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,QAAQ,CAAC,IAAI,EAAE,iCAAiC,GAAG,qBAAqB,CAAC;QACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;CACL,CAuHA"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { sha256Canonical } from './platform-account-reset-fingerprint.js';
|
|
2
|
+
import { normalizePlatformIdentityEmail } from './platform-identity.js';
|
|
3
|
+
export function inspectPlatformAccountResetLinkedEvidence(input) {
|
|
4
|
+
const identities = new Map();
|
|
5
|
+
const resources = [];
|
|
6
|
+
const blockers = new Map();
|
|
7
|
+
const workosLinks = input.identityLinks.filter((row) => row.provider === 'workos');
|
|
8
|
+
const linkedShape = input.verified.length !== 0 || workosLinks.length !== 0;
|
|
9
|
+
if (!linkedShape) {
|
|
10
|
+
const unexpectedLinks = input.identityLinks.filter((row) => row.provider !== 'google' ||
|
|
11
|
+
row.realm !== input.googleRealm ||
|
|
12
|
+
row.external_id !== row.principal_id ||
|
|
13
|
+
row.disabled_at !== null);
|
|
14
|
+
return {
|
|
15
|
+
identities,
|
|
16
|
+
resources,
|
|
17
|
+
blockers: unexpectedLinks.length === 0
|
|
18
|
+
? []
|
|
19
|
+
: [{ code: 'workos_link_present', count: unexpectedLinks.length }],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const verifiedByTarget = groupBy(input.verified, (row) => row.principal_id);
|
|
23
|
+
const linksByTarget = groupBy(input.identityLinks, (row) => row.principal_id);
|
|
24
|
+
for (const target of input.targets) {
|
|
25
|
+
const contact = input.contacts.get(target);
|
|
26
|
+
const verifiedRows = verifiedByTarget.get(target) ?? [];
|
|
27
|
+
const normalized = [
|
|
28
|
+
...new Set(verifiedRows
|
|
29
|
+
.map((row) => safelyNormalizeEmail(row.normalized_email))
|
|
30
|
+
.filter((value) => value !== undefined)),
|
|
31
|
+
];
|
|
32
|
+
const providerRealms = new Set(verifiedRows.map((row) => `${row.provider}\u0000${row.realm}`));
|
|
33
|
+
const invalidVerified = contact === undefined ||
|
|
34
|
+
verifiedRows.length !== 2 ||
|
|
35
|
+
providerRealms.size !== 2 ||
|
|
36
|
+
!providerRealms.has(`google\u0000${input.googleRealm}`) ||
|
|
37
|
+
!providerRealms.has(`workos\u0000${input.workosRealm}`) ||
|
|
38
|
+
normalized.length !== 1 ||
|
|
39
|
+
normalized[0] !== contact ||
|
|
40
|
+
verifiedRows.some((row) => row.status !== 'active' ||
|
|
41
|
+
safelyNormalizeEmail(row.original_email) !== contact ||
|
|
42
|
+
safelyNormalizeEmail(row.normalized_email) !== contact);
|
|
43
|
+
if (invalidVerified)
|
|
44
|
+
increment(blockers, 'verified_email_evidence_present');
|
|
45
|
+
const targetLinks = linksByTarget.get(target) ?? [];
|
|
46
|
+
const googleLinks = targetLinks.filter((row) => row.provider === 'google' &&
|
|
47
|
+
row.realm === input.googleRealm &&
|
|
48
|
+
row.external_id === target &&
|
|
49
|
+
row.disabled_at === null);
|
|
50
|
+
const targetWorkosLinks = targetLinks.filter((row) => row.provider === 'workos');
|
|
51
|
+
const workosLink = targetWorkosLinks[0];
|
|
52
|
+
const invalidLink = targetLinks.length !== 2 ||
|
|
53
|
+
googleLinks.length !== 1 ||
|
|
54
|
+
targetWorkosLinks.length !== 1 ||
|
|
55
|
+
workosLink === undefined ||
|
|
56
|
+
workosLink.realm !== input.workosRealm ||
|
|
57
|
+
workosLink.disabled_at !== null ||
|
|
58
|
+
workosLink.external_id.trim().length === 0;
|
|
59
|
+
if (invalidLink)
|
|
60
|
+
increment(blockers, 'workos_link_present');
|
|
61
|
+
if (invalidVerified || invalidLink || contact === undefined || workosLink === undefined)
|
|
62
|
+
continue;
|
|
63
|
+
identities.set(target, {
|
|
64
|
+
principalId: target,
|
|
65
|
+
externalId: workosLink.external_id,
|
|
66
|
+
normalizedEmail: contact,
|
|
67
|
+
});
|
|
68
|
+
for (const row of verifiedRows) {
|
|
69
|
+
resources.push(localEvidenceResource('verified_email_evidence', {
|
|
70
|
+
principalId: row.principal_id,
|
|
71
|
+
originalEmail: row.original_email,
|
|
72
|
+
normalizedEmail: row.normalized_email,
|
|
73
|
+
provider: row.provider,
|
|
74
|
+
realm: row.realm,
|
|
75
|
+
status: row.status,
|
|
76
|
+
verifiedAt: timestamp(row.verified_at),
|
|
77
|
+
observedAt: timestamp(row.observed_at),
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
resources.push(localEvidenceResource('workos_identity_link', {
|
|
81
|
+
principalId: workosLink.principal_id,
|
|
82
|
+
provider: workosLink.provider,
|
|
83
|
+
realm: workosLink.realm,
|
|
84
|
+
externalId: workosLink.external_id,
|
|
85
|
+
createdAt: timestamp(workosLink.created_at),
|
|
86
|
+
disabledAt: null,
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
const duplicateExternalIds = workosLinks.length - new Set(workosLinks.map((row) => row.external_id)).size;
|
|
90
|
+
const sharedOrDuplicateCount = duplicateExternalIds + input.sharedExternalSubjectCount;
|
|
91
|
+
if (sharedOrDuplicateCount !== 0)
|
|
92
|
+
blockers.set('workos_link_present', (blockers.get('workos_link_present') ?? 0) + sharedOrDuplicateCount);
|
|
93
|
+
return {
|
|
94
|
+
identities,
|
|
95
|
+
resources,
|
|
96
|
+
blockers: [...blockers].map(([code, count]) => ({ code, count })),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function localEvidenceResource(resourceKind, locator) {
|
|
100
|
+
return {
|
|
101
|
+
provider: 'postgres',
|
|
102
|
+
resourceKind,
|
|
103
|
+
locator,
|
|
104
|
+
locatorFingerprint: sha256Canonical({
|
|
105
|
+
schemaVersion: 1,
|
|
106
|
+
label: `platform_account_reset_locator:postgres:${resourceKind}`,
|
|
107
|
+
locator,
|
|
108
|
+
}),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function timestamp(value) {
|
|
112
|
+
const parsed = new Date(value);
|
|
113
|
+
if (!Number.isFinite(parsed.getTime()))
|
|
114
|
+
throw new TypeError('account-reset evidence timestamp is invalid');
|
|
115
|
+
return parsed.toISOString();
|
|
116
|
+
}
|
|
117
|
+
function safelyNormalizeEmail(value) {
|
|
118
|
+
try {
|
|
119
|
+
return normalizePlatformIdentityEmail(value);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function groupBy(values, key) {
|
|
126
|
+
const grouped = new Map();
|
|
127
|
+
for (const value of values) {
|
|
128
|
+
const itemKey = key(value);
|
|
129
|
+
grouped.set(itemKey, [...(grouped.get(itemKey) ?? []), value]);
|
|
130
|
+
}
|
|
131
|
+
return grouped;
|
|
132
|
+
}
|
|
133
|
+
function increment(blockers, code) {
|
|
134
|
+
blockers.set(code, (blockers.get(code) ?? 0) + 1);
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=platform-account-reset-preview-linked-evidence-postgres.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-account-reset-preview-linked-evidence-postgres.js","sourceRoot":"","sources":["../src/platform-account-reset-preview-linked-evidence-postgres.ts"],"names":[],"mappings":"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"}
|
package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PlatformAccountResetBlockerCode, PlatformAccountResetPreviewRequest, PlatformAccountResetResult } from './platform-account-reset.js';
|
|
2
2
|
import { type PlatformAccountResetCleanupResource } from './platform-account-reset-ownership-postgres.js';
|
|
3
|
+
import { type PlatformAccountResetExpectedWorkosIdentity } from './platform-account-reset-preview-evidence-postgres.js';
|
|
3
4
|
import type { PlatformAuthInventorySourceManifest } from './platform-auth-inventory-sources.js';
|
|
4
5
|
import type { PlatformIdentityQueryable } from './platform-identity-postgres.js';
|
|
5
6
|
export interface PlatformAccountResetLocalInspection {
|
|
@@ -7,6 +8,7 @@ export interface PlatformAccountResetLocalInspection {
|
|
|
7
8
|
readonly request: PlatformAccountResetPreviewRequest;
|
|
8
9
|
readonly targets: readonly string[];
|
|
9
10
|
readonly normalizedContacts: ReadonlyMap<string, string>;
|
|
11
|
+
readonly linkedWorkosIdentities: ReadonlyMap<string, PlatformAccountResetExpectedWorkosIdentity>;
|
|
10
12
|
readonly targetEvidence: ReadonlyMap<string, Readonly<Record<string, unknown>>>;
|
|
11
13
|
readonly cleanupResources: readonly PlatformAccountResetCleanupResource[];
|
|
12
14
|
readonly ownershipFingerprint: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-account-reset-preview-local-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-preview-local-postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,kCAAkC,EAClC,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"platform-account-reset-preview-local-postgres.d.ts","sourceRoot":"","sources":["../src/platform-account-reset-preview-local-postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,kCAAkC,EAClC,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAGL,KAAK,0CAA0C,EAChD,MAAM,uDAAuD,CAAC;AAO/D,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAqBjF,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,kCAAkC,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,0CAA0C,CAAC,CAAC;IACjG,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAChF,QAAQ,CAAC,gBAAgB,EAAE,SAAS,mCAAmC,EAAE,CAAC;IAC1E,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,QAAQ,CAAC,IAAI,EAAE,+BAA+B,CAAC;QAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,0CAA0C;IACzD,QAAQ,CAAC,kBAAkB,EAAE,mCAAmC,CAAC;IACjE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,SAAS;QAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;KACzC,EAAE,CAAC;IACJ,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,wBAAsB,wCAAwC,CAC5D,UAAU,EAAE,yBAAyB,EACrC,OAAO,EAAE,kCAAkC,EAC3C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,0CAA0C,GAClD,OAAO,CAAC,mCAAmC,CAAC,CA2P9C"}
|
package/node_modules/@noodle-borg/service/dist/platform-account-reset-preview-local-postgres.js
CHANGED
|
@@ -1,29 +1,35 @@
|
|
|
1
1
|
import { sha256Canonical } from './platform-account-reset-fingerprint.js';
|
|
2
2
|
import { loadPlatformAccountResetOwnershipSnapshot, } from './platform-account-reset-ownership-postgres.js';
|
|
3
3
|
import { loadPlatformAccountResetContactEvidence, loadPlatformAccountResetCustomerEvidence, } from './platform-account-reset-preview-evidence-postgres.js';
|
|
4
|
+
import { inspectPlatformAccountResetLinkedEvidence, } from './platform-account-reset-preview-linked-evidence-postgres.js';
|
|
4
5
|
import { readPlatformAuthInventorySourceEpoch } from './platform-auth-inventory-source-fence-postgres.js';
|
|
5
6
|
export async function inspectPlatformAccountResetLocalEvidence(connection, request, operationId, options) {
|
|
6
7
|
const targets = [...request.targetSet.principalIds].sort(compareText);
|
|
7
8
|
const targetSet = new Set(targets);
|
|
8
9
|
const targetFingerprints = targets.map((target) => sha256Canonical(target));
|
|
9
10
|
const blockers = new Map();
|
|
10
|
-
const rollout = await connection.query(`SELECT generation::text FROM platform_auth_rollout_state
|
|
11
|
+
const rollout = await connection.query(`SELECT generation::text, lifecycle, workos_percentage FROM platform_auth_rollout_state
|
|
11
12
|
WHERE singleton = true FOR SHARE`);
|
|
12
|
-
const
|
|
13
|
+
const rolloutState = rollout.rows[0];
|
|
14
|
+
const generation = Number(rolloutState?.generation);
|
|
13
15
|
const sourceEpoch = Number(await readPlatformAuthInventorySourceEpoch(connection));
|
|
14
16
|
if (request.releaseSha !== options.releaseSha)
|
|
15
17
|
increment(blockers, 'release_mismatch');
|
|
16
18
|
if (request.expectedGeneration !== generation)
|
|
17
19
|
increment(blockers, 'generation_mismatch');
|
|
20
|
+
if (rolloutState?.lifecycle !== 'google' || rolloutState.workos_percentage !== 0)
|
|
21
|
+
increment(blockers, 'operation_conflict');
|
|
18
22
|
if (request.sourceEpoch !== sourceEpoch)
|
|
19
23
|
increment(blockers, 'source_epoch_mismatch');
|
|
20
24
|
if (request.workosRealm !== options.workosRealm)
|
|
21
25
|
increment(blockers, 'operation_conflict');
|
|
22
26
|
const principals = await queryRows(connection, `SELECT principal_id, status, billing_identity_issuer, billing_subject
|
|
23
27
|
FROM platform_principals WHERE principal_id = ANY($1::text[])`, [targets]);
|
|
24
|
-
const links = await queryRows(connection, `SELECT principal_id, provider, realm, external_id, disabled_at
|
|
28
|
+
const links = await queryRows(connection, `SELECT principal_id, provider, realm, external_id, disabled_at, created_at
|
|
25
29
|
FROM platform_identity_links WHERE principal_id = ANY($1::text[])`, [targets]);
|
|
26
|
-
const verified = await queryRows(connection, `SELECT principal_id
|
|
30
|
+
const verified = await queryRows(connection, `SELECT principal_id, original_email, normalized_email, provider, realm, status,
|
|
31
|
+
verified_at, observed_at
|
|
32
|
+
FROM platform_verified_emails
|
|
27
33
|
WHERE principal_id = ANY($1::text[])`, [targets]);
|
|
28
34
|
const imports = await queryRows(connection, `SELECT principal_id FROM workos_import_ledger
|
|
29
35
|
WHERE principal_id = ANY($1::text[])`, [targets]);
|
|
@@ -68,11 +74,14 @@ export async function inspectPlatformAccountResetLocalEvidence(connection, reque
|
|
|
68
74
|
principal.billing_subject !== target)
|
|
69
75
|
increment(blockers, 'principal_not_legacy_google');
|
|
70
76
|
}
|
|
71
|
-
if (verified.length !== 0)
|
|
72
|
-
blockers.set('verified_email_evidence_present', verified.length);
|
|
73
77
|
const workosLinks = links.filter((row) => row.provider === 'workos');
|
|
74
|
-
|
|
75
|
-
|
|
78
|
+
const sharedWorkosSubjects = workosLinks.length === 0
|
|
79
|
+
? []
|
|
80
|
+
: await queryRows(connection, `SELECT external_id
|
|
81
|
+
FROM platform_identity_links
|
|
82
|
+
WHERE provider = 'workos'
|
|
83
|
+
AND external_id = ANY($1::text[])
|
|
84
|
+
AND NOT (principal_id = ANY($2::text[]))`, [workosLinks.map((row) => row.external_id), targets]);
|
|
76
85
|
if (imports.length + importAttempts.length !== 0)
|
|
77
86
|
blockers.set('workos_import_present', imports.length + importAttempts.length);
|
|
78
87
|
if (activeResets.length !== 0)
|
|
@@ -100,11 +109,28 @@ export async function inspectPlatformAccountResetLocalEvidence(connection, reque
|
|
|
100
109
|
blockers.set('contact_hint_missing', contactEvidence.missingCount);
|
|
101
110
|
if (contactEvidence.ambiguousCount !== 0)
|
|
102
111
|
blockers.set('contact_hint_ambiguous', contactEvidence.ambiguousCount);
|
|
112
|
+
const linkedEvidence = inspectPlatformAccountResetLinkedEvidence({
|
|
113
|
+
targets,
|
|
114
|
+
verified,
|
|
115
|
+
identityLinks: links,
|
|
116
|
+
contacts: contactEvidence.normalizedContacts,
|
|
117
|
+
googleRealm: options.googleRealm,
|
|
118
|
+
workosRealm: options.workosRealm,
|
|
119
|
+
sharedExternalSubjectCount: sharedWorkosSubjects.length,
|
|
120
|
+
});
|
|
121
|
+
for (const blocker of linkedEvidence.blockers)
|
|
122
|
+
blockers.set(blocker.code, (blockers.get(blocker.code) ?? 0) + blocker.count);
|
|
103
123
|
const ownership = await loadPlatformAccountResetOwnershipSnapshot(connection, {
|
|
104
124
|
targetPrincipalIds: targets,
|
|
105
125
|
});
|
|
106
126
|
for (const blocker of ownership.blockers)
|
|
107
127
|
blockers.set(blocker.code, (blockers.get(blocker.code) ?? 0) + blocker.count);
|
|
128
|
+
const cleanupResources = [...ownership.cleanupResources, ...linkedEvidence.resources].sort((left, right) => JSON.stringify(left).localeCompare(JSON.stringify(right)));
|
|
129
|
+
const localCleanupSetFingerprint = sha256Canonical({
|
|
130
|
+
schemaVersion: 1,
|
|
131
|
+
label: 'platform_account_reset_cleanup_set',
|
|
132
|
+
resources: cleanupResources,
|
|
133
|
+
});
|
|
108
134
|
const blockerList = [...blockers]
|
|
109
135
|
.map(([code, count]) => ({ code, count }))
|
|
110
136
|
.sort((left, right) => left.code.localeCompare(right.code));
|
|
@@ -146,17 +172,18 @@ export async function inspectPlatformAccountResetLocalEvidence(connection, reque
|
|
|
146
172
|
blockers: blockerList,
|
|
147
173
|
counts,
|
|
148
174
|
ownershipFingerprint: ownership.ownershipFingerprint,
|
|
149
|
-
cleanupSetFingerprint:
|
|
175
|
+
cleanupSetFingerprint: localCleanupSetFingerprint,
|
|
150
176
|
});
|
|
151
177
|
return {
|
|
152
178
|
operationId,
|
|
153
179
|
request,
|
|
154
180
|
targets,
|
|
155
181
|
normalizedContacts: contactEvidence.normalizedContacts,
|
|
182
|
+
linkedWorkosIdentities: linkedEvidence.identities,
|
|
156
183
|
targetEvidence,
|
|
157
|
-
cleanupResources
|
|
184
|
+
cleanupResources,
|
|
158
185
|
ownershipFingerprint: ownership.ownershipFingerprint,
|
|
159
|
-
localCleanupSetFingerprint
|
|
186
|
+
localCleanupSetFingerprint,
|
|
160
187
|
requestFingerprint,
|
|
161
188
|
workosRealmFingerprint,
|
|
162
189
|
counts,
|