@oneuptime/common 12.0.14 → 12.0.15

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 (195) hide show
  1. package/Models/DatabaseModels/GlobalOidc.ts +20 -0
  2. package/Models/DatabaseModels/GlobalSso.ts +20 -0
  3. package/Models/DatabaseModels/MarketingConversion.ts +19 -9
  4. package/Models/DatabaseModels/NetworkDeviceLinkRule.ts +46 -0
  5. package/Models/DatabaseModels/StatusPage.ts +7 -4
  6. package/Server/API/StatusPageAPI.ts +29 -4
  7. package/Server/EnvironmentConfig.ts +7 -0
  8. package/Server/Infrastructure/Postgres/SchemaMigrations/1787800000000-AddScopeToNetworkDeviceLinkRule.ts +19 -0
  9. package/Server/Infrastructure/Postgres/SchemaMigrations/1787900000000-AddRestrictToAttachedProjectsToGlobalSso.ts +40 -0
  10. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
  11. package/Server/Middleware/SlackAuthorization.ts +43 -6
  12. package/Server/Middleware/UserAuthorization.ts +236 -26
  13. package/Server/Middleware/WhatsAppAuthorization.ts +43 -3
  14. package/Server/Services/GlobalOidcProjectService.ts +126 -1
  15. package/Server/Services/GlobalOidcService.ts +132 -0
  16. package/Server/Services/GlobalSsoProjectService.ts +126 -1
  17. package/Server/Services/GlobalSsoService.ts +132 -0
  18. package/Server/Services/UserEmailService.ts +4 -4
  19. package/Server/Utils/CronTab.ts +73 -0
  20. package/Server/Utils/GlobalSsoAuthorization.ts +175 -0
  21. package/Server/Utils/Marketing/ConversionUploadProvider.ts +35 -5
  22. package/Server/Utils/Marketing/Providers/GoogleAds.ts +1 -1
  23. package/Server/Utils/Marketing/Providers/LinkedIn.ts +1 -1
  24. package/Server/Utils/Marketing/Providers/Meta.ts +1 -1
  25. package/Server/Utils/Marketing/Providers/MicrosoftAds.ts +1 -1
  26. package/Server/Utils/Marketing/Providers/Reddit.ts +1 -1
  27. package/Server/Utils/Monitor/Criteria/APIRequestCriteria.ts +48 -33
  28. package/Server/Utils/Monitor/Criteria/DnsMonitorCriteria.ts +35 -30
  29. package/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.ts +33 -28
  30. package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +475 -47
  31. package/Server/Utils/Monitor/Criteria/ExternalStatusPageMonitorCriteria.ts +35 -30
  32. package/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.ts +34 -28
  33. package/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.ts +33 -28
  34. package/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.ts +69 -40
  35. package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +35 -29
  36. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +8 -0
  37. package/Server/Utils/Monitor/MonitorResource.ts +161 -21
  38. package/Server/Utils/StatusPageContentSecurityPolicy.ts +56 -0
  39. package/Server/Utils/StatusPageCustomizationAccess.ts +117 -0
  40. package/Tests/Server/API/StatusPageCustomizationOrigin.test.ts +348 -0
  41. package/Tests/Server/Infrastructure/Postgres/FixTotpOtpUrlAlgorithmMigration.test.ts +9 -59
  42. package/Tests/Server/Infrastructure/Postgres/SchemaMigrationsOrdering.test.ts +227 -0
  43. package/Tests/Server/Middleware/SlackAuthorization.test.ts +149 -0
  44. package/Tests/Server/Middleware/UserAuthorization.test.ts +27 -13
  45. package/Tests/Server/Middleware/UserAuthorizationGlobalSsoGovernance.test.ts +1455 -0
  46. package/Tests/Server/Middleware/UserAuthorizationSSOProvider.test.ts +91 -2
  47. package/Tests/Server/Middleware/WhatsAppAuthorization.test.ts +233 -0
  48. package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +21 -8
  49. package/Tests/Server/Services/GlobalSsoProviderAuthorization.test.ts +1242 -0
  50. package/Tests/Server/Services/MonitorResourceProbeAgreementHydration.test.ts +459 -0
  51. package/Tests/Server/Services/MonitorResourceProbeAgreementReuse.test.ts +10 -0
  52. package/Tests/Server/Types/AnalyticsDatabase/AggregateUtilBucketTimestamp.test.ts +416 -0
  53. package/Tests/Server/Types/Database/QueryHelperManyToManyAndEmptyValues.test.ts +551 -0
  54. package/Tests/Server/Types/Database/SelectUtil.test.ts +348 -0
  55. package/Tests/Server/Utils/CronTab.test.ts +116 -0
  56. package/Tests/Server/Utils/GlobalSSOToken.test.ts +581 -0
  57. package/Tests/Server/Utils/GlobalSsoAuthorization.test.ts +1401 -0
  58. package/Tests/Server/Utils/Marketing/AdUploadableConversionTypes.test.ts +254 -0
  59. package/Tests/Server/Utils/Marketing/ConversionUploadProvider.test.ts +1 -1
  60. package/Tests/Server/Utils/Monitor/Criteria/APIRequestCriteriaEvaluateOverTime.test.ts +508 -0
  61. package/Tests/Server/Utils/Monitor/Criteria/APIRequestCriteriaPortTimings.test.ts +30 -9
  62. package/Tests/Server/Utils/Monitor/Criteria/EvaluateOverTime.test.ts +987 -0
  63. package/Tests/Server/Utils/Monitor/Criteria/ExternalStatusPageMonitorCriteria.test.ts +916 -0
  64. package/Tests/Server/Utils/Monitor/Criteria/ProfileMonitorCriteria.test.ts +382 -0
  65. package/Tests/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.test.ts +1219 -0
  66. package/Tests/Server/Utils/Monitor/MonitorResourceIngestedStepSelection.test.ts +86 -0
  67. package/Tests/Server/Utils/StatusPageContentSecurityPolicy.test.ts +136 -0
  68. package/Tests/Server/Utils/StatusPageCustomizationAccess.test.ts +223 -0
  69. package/Tests/Types/Monitor/MonitorStepConfigHelpers.test.ts +165 -0
  70. package/Tests/Types/NetworkDevice/NetworkDeviceLinkRuleScope.test.ts +215 -0
  71. package/Tests/UI/Components/Forms/FormSubmitAnalytics.test.tsx +206 -0
  72. package/Tests/UI/Utils/AIChatExport/ConversationMarkdown.test.ts +774 -0
  73. package/Tests/UI/Utils/AIChatExport/MarkdownBlocks.test.ts +791 -0
  74. package/Tests/UI/Utils/AIChatExport/MarkdownSafety.test.ts +544 -0
  75. package/Tests/Utils/Analytics.test.ts +187 -0
  76. package/Tests/Utils/Monitor/MonitorMetricType.test.ts +80 -0
  77. package/Tests/Utils/Monitor/NetworkDeviceLinkRuleUtil.test.ts +1291 -0
  78. package/Tests/Utils/NetworkDiscovery/UnclaimedScanDiagnosis.test.ts +214 -0
  79. package/Types/Marketing/MarketingConversion.ts +12 -0
  80. package/Types/Monitor/CriteriaFilter.ts +9 -0
  81. package/Types/NetworkDevice/NetworkDeviceLinkRuleScope.ts +51 -0
  82. package/UI/Components/FormModal/BasicFormModal.tsx +12 -0
  83. package/UI/Components/Forms/BasicForm.tsx +13 -1
  84. package/UI/Components/Forms/BasicModelForm.tsx +2 -1
  85. package/UI/Components/Forms/ModelForm.tsx +10 -1
  86. package/UI/Components/Forms/Utils/FormAnalyticsName.ts +39 -0
  87. package/UI/Components/ModelFormModal/ModelFormModal.tsx +6 -1
  88. package/Utils/Analytics.ts +55 -2
  89. package/Utils/Monitor/MonitorMetricType.ts +40 -0
  90. package/Utils/Monitor/NetworkDeviceLinkRuleUtil.ts +587 -37
  91. package/Utils/NetworkDiscovery/UnclaimedScanDiagnosis.ts +115 -0
  92. package/build/dist/Models/DatabaseModels/GlobalOidc.js +21 -0
  93. package/build/dist/Models/DatabaseModels/GlobalOidc.js.map +1 -1
  94. package/build/dist/Models/DatabaseModels/GlobalSso.js +21 -0
  95. package/build/dist/Models/DatabaseModels/GlobalSso.js.map +1 -1
  96. package/build/dist/Models/DatabaseModels/MarketingConversion.js +20 -10
  97. package/build/dist/Models/DatabaseModels/MarketingConversion.js.map +1 -1
  98. package/build/dist/Models/DatabaseModels/NetworkDeviceLinkRule.js +47 -0
  99. package/build/dist/Models/DatabaseModels/NetworkDeviceLinkRule.js.map +1 -1
  100. package/build/dist/Models/DatabaseModels/StatusPage.js +4 -4
  101. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  102. package/build/dist/Server/API/StatusPageAPI.js +25 -4
  103. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  104. package/build/dist/Server/EnvironmentConfig.js +6 -0
  105. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  106. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787800000000-AddScopeToNetworkDeviceLinkRule.js +12 -0
  107. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787800000000-AddScopeToNetworkDeviceLinkRule.js.map +1 -0
  108. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787900000000-AddRestrictToAttachedProjectsToGlobalSso.js +29 -0
  109. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787900000000-AddRestrictToAttachedProjectsToGlobalSso.js.map +1 -0
  110. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  111. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  112. package/build/dist/Server/Middleware/SlackAuthorization.js +28 -4
  113. package/build/dist/Server/Middleware/SlackAuthorization.js.map +1 -1
  114. package/build/dist/Server/Middleware/UserAuthorization.js +197 -22
  115. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  116. package/build/dist/Server/Middleware/WhatsAppAuthorization.js +32 -2
  117. package/build/dist/Server/Middleware/WhatsAppAuthorization.js.map +1 -1
  118. package/build/dist/Server/Services/GlobalOidcProjectService.js +105 -0
  119. package/build/dist/Server/Services/GlobalOidcProjectService.js.map +1 -1
  120. package/build/dist/Server/Services/GlobalOidcService.js +127 -0
  121. package/build/dist/Server/Services/GlobalOidcService.js.map +1 -1
  122. package/build/dist/Server/Services/GlobalSsoProjectService.js +105 -0
  123. package/build/dist/Server/Services/GlobalSsoProjectService.js.map +1 -1
  124. package/build/dist/Server/Services/GlobalSsoService.js +127 -0
  125. package/build/dist/Server/Services/GlobalSsoService.js.map +1 -1
  126. package/build/dist/Server/Services/UserEmailService.js +4 -4
  127. package/build/dist/Server/Utils/CronTab.js +66 -0
  128. package/build/dist/Server/Utils/CronTab.js.map +1 -1
  129. package/build/dist/Server/Utils/GlobalSsoAuthorization.js +112 -0
  130. package/build/dist/Server/Utils/GlobalSsoAuthorization.js.map +1 -0
  131. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js +17 -1
  132. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js.map +1 -1
  133. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js +1 -1
  134. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js.map +1 -1
  135. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js +1 -1
  136. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js.map +1 -1
  137. package/build/dist/Server/Utils/Marketing/Providers/Meta.js +1 -1
  138. package/build/dist/Server/Utils/Marketing/Providers/Meta.js.map +1 -1
  139. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js +1 -1
  140. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js.map +1 -1
  141. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js +1 -1
  142. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js.map +1 -1
  143. package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js +37 -35
  144. package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js.map +1 -1
  145. package/build/dist/Server/Utils/Monitor/Criteria/DnsMonitorCriteria.js +21 -25
  146. package/build/dist/Server/Utils/Monitor/Criteria/DnsMonitorCriteria.js.map +1 -1
  147. package/build/dist/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.js +20 -22
  148. package/build/dist/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.js.map +1 -1
  149. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +370 -42
  150. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
  151. package/build/dist/Server/Utils/Monitor/Criteria/ExternalStatusPageMonitorCriteria.js +21 -25
  152. package/build/dist/Server/Utils/Monitor/Criteria/ExternalStatusPageMonitorCriteria.js.map +1 -1
  153. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js +21 -25
  154. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js.map +1 -1
  155. package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js +21 -25
  156. package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js.map +1 -1
  157. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js +64 -52
  158. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js.map +1 -1
  159. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +25 -29
  160. package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
  161. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +8 -0
  162. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  163. package/build/dist/Server/Utils/Monitor/MonitorResource.js +123 -23
  164. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  165. package/build/dist/Server/Utils/StatusPageContentSecurityPolicy.js +39 -0
  166. package/build/dist/Server/Utils/StatusPageContentSecurityPolicy.js.map +1 -0
  167. package/build/dist/Server/Utils/StatusPageCustomizationAccess.js +85 -0
  168. package/build/dist/Server/Utils/StatusPageCustomizationAccess.js.map +1 -0
  169. package/build/dist/Types/Marketing/MarketingConversion.js +10 -0
  170. package/build/dist/Types/Marketing/MarketingConversion.js.map +1 -1
  171. package/build/dist/Types/Monitor/CriteriaFilter.js +1 -0
  172. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  173. package/build/dist/Types/NetworkDevice/NetworkDeviceLinkRuleScope.js +46 -0
  174. package/build/dist/Types/NetworkDevice/NetworkDeviceLinkRuleScope.js.map +1 -0
  175. package/build/dist/UI/Components/FormModal/BasicFormModal.js +2 -1
  176. package/build/dist/UI/Components/FormModal/BasicFormModal.js.map +1 -1
  177. package/build/dist/UI/Components/Forms/BasicForm.js +10 -1
  178. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  179. package/build/dist/UI/Components/Forms/BasicModelForm.js +2 -1
  180. package/build/dist/UI/Components/Forms/BasicModelForm.js.map +1 -1
  181. package/build/dist/UI/Components/Forms/ModelForm.js +4 -1
  182. package/build/dist/UI/Components/Forms/ModelForm.js.map +1 -1
  183. package/build/dist/UI/Components/Forms/Utils/FormAnalyticsName.js +33 -0
  184. package/build/dist/UI/Components/Forms/Utils/FormAnalyticsName.js.map +1 -0
  185. package/build/dist/UI/Components/ModelFormModal/ModelFormModal.js +2 -1
  186. package/build/dist/UI/Components/ModelFormModal/ModelFormModal.js.map +1 -1
  187. package/build/dist/Utils/Analytics.js +50 -2
  188. package/build/dist/Utils/Analytics.js.map +1 -1
  189. package/build/dist/Utils/Monitor/MonitorMetricType.js +37 -0
  190. package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
  191. package/build/dist/Utils/Monitor/NetworkDeviceLinkRuleUtil.js +318 -37
  192. package/build/dist/Utils/Monitor/NetworkDeviceLinkRuleUtil.js.map +1 -1
  193. package/build/dist/Utils/NetworkDiscovery/UnclaimedScanDiagnosis.js +87 -0
  194. package/build/dist/Utils/NetworkDiscovery/UnclaimedScanDiagnosis.js.map +1 -0
  195. package/package.json +1 -1
@@ -26,6 +26,10 @@ import HashedString from "../../Types/HashedString";
26
26
  import JSONFunctions from "../../Types/JSONFunctions";
27
27
  import ObjectID from "../../Types/ObjectID";
28
28
  import SsoProviderType from "../../Types/SSO/SsoProviderType";
29
+ import GlobalSsoService from "../Services/GlobalSsoService";
30
+ import GlobalOidcService from "../Services/GlobalOidcService";
31
+ import GlobalSsoProjectService from "../Services/GlobalSsoProjectService";
32
+ import GlobalOidcProjectService from "../Services/GlobalOidcProjectService";
29
33
  import NotAuthorizedException from "../../Types/Exception/NotAuthorizedException";
30
34
  import { PermissionHelper, } from "../../Types/Permission";
31
35
  import UserType from "../../Types/UserType";
@@ -159,34 +163,170 @@ export default class UserMiddleware {
159
163
  return null;
160
164
  }
161
165
  }
162
- static doesSsoTokenForProjectExist(req, projectId, userId, requiredSsoProviderId) {
166
+ /**
167
+ * Per-project SSO token check (Project SSO/OIDC login). Bound to one project,
168
+ * entirely stateless: signature, expiry, project, user, and the optional
169
+ * pinned-provider discriminator.
170
+ */
171
+ static doesProjectScopedSsoTokenExist(req, projectId, userId, requiredSsoProviderId) {
163
172
  var _a;
164
173
  const ssoTokens = this.getSsoTokens(req);
165
- /*
166
- * 1) Per-project SSO token (Project SSO/OIDC login). Bound to one project.
167
- */
168
- if (ssoTokens && ssoTokens[projectId.toString()]) {
174
+ if (!ssoTokens || !ssoTokens[projectId.toString()]) {
175
+ return false;
176
+ }
177
+ try {
169
178
  const decodedData = JSONWebToken.decode(ssoTokens[projectId.toString()]);
170
- if (((_a = decodedData.projectId) === null || _a === void 0 ? void 0 : _a.toString()) === projectId.toString() &&
171
- decodedData.userId.toString() === userId.toString() &&
172
- this.isSsoProviderSatisfied(decodedData, requiredSsoProviderId)) {
173
- return true;
179
+ /*
180
+ * A Global-typed credential is NEVER accepted here, whichever slot it
181
+ * arrived in. Before the single-token redesign the Global SSO router
182
+ * minted one per-project token per project, typed GlobalSSO, signed for
183
+ * 30 days - and those are still sitting in browsers as `sso-<projectId>`
184
+ * cookies and in the mobile app's AsyncStorage, replayed on every
185
+ * request. Accepting them here would let a Global credential short-
186
+ * circuit past the provider-trust check, so disabling a provider would
187
+ * still not revoke them. Route every Global token through the stateful
188
+ * path instead.
189
+ */
190
+ if (decodedData.ssoProviderType === SsoProviderType.GlobalSSO ||
191
+ decodedData.ssoProviderType === SsoProviderType.GlobalOIDC) {
192
+ return false;
174
193
  }
194
+ return (((_a = decodedData.projectId) === null || _a === void 0 ? void 0 : _a.toString()) === projectId.toString() &&
195
+ decodedData.userId.toString() === userId.toString() &&
196
+ this.isSsoProviderSatisfied(decodedData, requiredSsoProviderId));
175
197
  }
176
- /*
177
- * 2) Global SSO token (Global SSO/OIDC login). Not bound to a project, so a
178
- * single token satisfies enforcement for every project this user belongs to
179
- * including projects created after the login. The specific-provider
180
- * discriminator still applies (a project pinned to a different provider is
181
- * not satisfied by this token).
182
- */
198
+ catch (_b) {
199
+ /*
200
+ * A token that expires between `getSsoTokens` decoding it and this call
201
+ * throws out of `decode`. Swallowing it here means the request falls
202
+ * through to the Global SSO token instead of 500-ing, which is what a
203
+ * user with both kinds would expect.
204
+ */
205
+ return false;
206
+ }
207
+ }
208
+ /**
209
+ * The Global SSO token, if one is present and stateless-valid for this user.
210
+ *
211
+ * "Stateless-valid" means signature, expiry, Global provider type, matching
212
+ * user, and the project's pinned-provider discriminator. It deliberately
213
+ * says nothing about whether the provider still exists, is still enabled, or
214
+ * governs the project in question - those need the database, and live in
215
+ * `isGlobalSsoTokenAuthorizedForProject`.
216
+ */
217
+ static getStatelessValidGlobalSsoTokenData(req, userId, requiredSsoProviderId) {
183
218
  const globalSsoTokenData = this.getGlobalSsoTokenData(req);
184
- if (globalSsoTokenData &&
185
- globalSsoTokenData.userId.toString() === userId.toString() &&
186
- this.isSsoProviderSatisfied(globalSsoTokenData, requiredSsoProviderId)) {
219
+ if (!globalSsoTokenData) {
220
+ return null;
221
+ }
222
+ if (globalSsoTokenData.userId.toString() !== userId.toString()) {
223
+ return null;
224
+ }
225
+ if (!this.isSsoProviderSatisfied(globalSsoTokenData, requiredSsoProviderId)) {
226
+ return null;
227
+ }
228
+ return globalSsoTokenData;
229
+ }
230
+ /**
231
+ * The stateless half of the whole decision, kept as one call because it is
232
+ * the part that can be reasoned about without a database.
233
+ *
234
+ * NOTE: this is NOT the enforcement entry point. A Global SSO token that
235
+ * passes here can still be refused by `isSsoSatisfiedForProject`, which also
236
+ * asks whether the provider is still trusted and whether it governs this
237
+ * project. Enforcement must call that.
238
+ */
239
+ static doesSsoTokenForProjectExist(req, projectId, userId, requiredSsoProviderId) {
240
+ if (this.doesProjectScopedSsoTokenExist(req, projectId, userId, requiredSsoProviderId)) {
241
+ return true;
242
+ }
243
+ return Boolean(this.getStatelessValidGlobalSsoTokenData(req, userId, requiredSsoProviderId));
244
+ }
245
+ /**
246
+ * Whether a stateless-valid Global SSO token is STILL authorized for this
247
+ * project right now.
248
+ *
249
+ * Two questions the token itself cannot answer:
250
+ *
251
+ * 1. IS THE PROVIDER STILL TRUSTED? Always checked. A Global SSO token
252
+ * lives for 30 days and carries no revocation, so without this an admin
253
+ * turning a provider off - or deleting it outright - changes nothing
254
+ * for anyone already signed in, for up to a month.
255
+ *
256
+ * 2. DOES THE PROVIDER GOVERN THIS PROJECT? Only checked when the admin
257
+ * turned on `restrictToAttachedProjects` for that provider. The
258
+ * attachment rows are the PROVISIONING allow-list by default, and the
259
+ * login routers grant a session on membership of ANY project - so
260
+ * treating attachments as an access boundary unasked would deny users
261
+ * projects they legitimately reach today, with nothing in the product
262
+ * to recover with.
263
+ *
264
+ * Answers are cached in-process for 60s and concurrent misses share one
265
+ * query (Common/Server/Utils/GlobalSsoAuthorization.ts).
266
+ *
267
+ * THROWS rather than denying when the lookup itself fails. "This provider is
268
+ * not allowed here" and "we could not find out" are different answers, and
269
+ * conflating them lets a database blip look like a permission decision - on
270
+ * the multi-tenant path that would silently hand back a 200 with no
271
+ * permissions rather than an error anyone would notice.
272
+ */
273
+ static async isGlobalSsoTokenAuthorizedForProject(data) {
274
+ var _a;
275
+ const { globalSsoTokenData, projectId } = data;
276
+ const providerIdValue = (_a = globalSsoTokenData.ssoProviderId) === null || _a === void 0 ? void 0 : _a.toString();
277
+ if (!providerIdValue) {
278
+ /*
279
+ * A Global-typed token with no provider id cannot be checked against
280
+ * either question, so it cannot be trusted for a project. This is a
281
+ * decision, not a failure - do not throw.
282
+ */
283
+ return false;
284
+ }
285
+ const providerId = new ObjectID(providerIdValue);
286
+ const isOidc = globalSsoTokenData.ssoProviderType === SsoProviderType.GlobalOIDC;
287
+ const trust = isOidc
288
+ ? await GlobalOidcService.getProviderTrust(providerId)
289
+ : await GlobalSsoService.getProviderTrust(providerId);
290
+ if (!trust.isUsable) {
291
+ return false;
292
+ }
293
+ if (!trust.restrictToAttachedProjects) {
294
+ /*
295
+ * The default, and what every existing installation gets: a global login
296
+ * satisfies enforcement for every project the user belongs to.
297
+ */
187
298
  return true;
188
299
  }
189
- return false;
300
+ return isOidc
301
+ ? GlobalOidcProjectService.doesProviderGovernProject({
302
+ globalOidcId: providerId,
303
+ projectId,
304
+ })
305
+ : GlobalSsoProjectService.doesProviderGovernProject({
306
+ globalSsoId: providerId,
307
+ projectId,
308
+ });
309
+ }
310
+ /**
311
+ * THE enforcement entry point: is this request's SSO requirement satisfied
312
+ * for this project?
313
+ *
314
+ * A per-project token is decided statelessly. A Global SSO token additionally
315
+ * has to survive the provider-trust and project-governance checks above.
316
+ */
317
+ static async isSsoSatisfiedForProject(data) {
318
+ const { req, projectId, userId, requiredSsoProviderId } = data;
319
+ if (this.doesProjectScopedSsoTokenExist(req, projectId, userId, requiredSsoProviderId)) {
320
+ return true;
321
+ }
322
+ const globalSsoTokenData = this.getStatelessValidGlobalSsoTokenData(req, userId, requiredSsoProviderId);
323
+ if (!globalSsoTokenData) {
324
+ return false;
325
+ }
326
+ return this.isGlobalSsoTokenAuthorizedForProject({
327
+ globalSsoTokenData,
328
+ projectId,
329
+ });
190
330
  }
191
331
  static async getUserMiddleware(req, res, next) {
192
332
  const tenantId = ProjectMiddleware.getProjectId(req);
@@ -397,7 +537,12 @@ export default class UserMiddleware {
397
537
  const requiredSsoProviderId = await ProjectService.getRequireSsoWithSsoProviderId(tenantId).catch(() => {
398
538
  return null;
399
539
  });
400
- if (!UserMiddleware.doesSsoTokenForProjectExist(req, tenantId, userId, requiredSsoProviderId !== null && requiredSsoProviderId !== void 0 ? requiredSsoProviderId : undefined)) {
540
+ if (!(await UserMiddleware.isSsoSatisfiedForProject({
541
+ req,
542
+ projectId: tenantId,
543
+ userId,
544
+ requiredSsoProviderId: requiredSsoProviderId !== null && requiredSsoProviderId !== void 0 ? requiredSsoProviderId : undefined,
545
+ }))) {
401
546
  throw new SsoAuthorizationException();
402
547
  }
403
548
  }
@@ -436,7 +581,12 @@ export default class UserMiddleware {
436
581
  const requiredSsoProviderId = await ProjectService.getRequireSsoWithSsoProviderId(projectId).catch(() => {
437
582
  return null;
438
583
  });
439
- if (!UserMiddleware.doesSsoTokenForProjectExist(req, projectId, userId, requiredSsoProviderId !== null && requiredSsoProviderId !== void 0 ? requiredSsoProviderId : undefined)) {
584
+ if (!(await UserMiddleware.isSsoSatisfiedForProject({
585
+ req,
586
+ projectId,
587
+ userId,
588
+ requiredSsoProviderId: requiredSsoProviderId !== null && requiredSsoProviderId !== void 0 ? requiredSsoProviderId : undefined,
589
+ }))) {
440
590
  return {
441
591
  projectId,
442
592
  permission: UserPermissionUtil.getDefaultUserTenantAccessPermission(projectId),
@@ -484,6 +634,19 @@ __decorate([
484
634
  __metadata("design:paramtypes", [Object]),
485
635
  __metadata("design:returntype", Object)
486
636
  ], UserMiddleware, "getGlobalSsoTokenData", null);
637
+ __decorate([
638
+ CaptureSpan(),
639
+ __metadata("design:type", Function),
640
+ __metadata("design:paramtypes", [Object, ObjectID,
641
+ ObjectID, Object]),
642
+ __metadata("design:returntype", Boolean)
643
+ ], UserMiddleware, "doesProjectScopedSsoTokenExist", null);
644
+ __decorate([
645
+ CaptureSpan(),
646
+ __metadata("design:type", Function),
647
+ __metadata("design:paramtypes", [Object, ObjectID, Object]),
648
+ __metadata("design:returntype", Object)
649
+ ], UserMiddleware, "getStatelessValidGlobalSsoTokenData", null);
487
650
  __decorate([
488
651
  CaptureSpan(),
489
652
  __metadata("design:type", Function),
@@ -491,6 +654,18 @@ __decorate([
491
654
  ObjectID, Object]),
492
655
  __metadata("design:returntype", Boolean)
493
656
  ], UserMiddleware, "doesSsoTokenForProjectExist", null);
657
+ __decorate([
658
+ CaptureSpan(),
659
+ __metadata("design:type", Function),
660
+ __metadata("design:paramtypes", [Object]),
661
+ __metadata("design:returntype", Promise)
662
+ ], UserMiddleware, "isGlobalSsoTokenAuthorizedForProject", null);
663
+ __decorate([
664
+ CaptureSpan(),
665
+ __metadata("design:type", Function),
666
+ __metadata("design:paramtypes", [Object]),
667
+ __metadata("design:returntype", Promise)
668
+ ], UserMiddleware, "isSsoSatisfiedForProject", null);
494
669
  __decorate([
495
670
  CaptureSpan(),
496
671
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"UserAuthorization.js","sourceRoot":"","sources":["../../../../Server/Middleware/UserAuthorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserAuthorization.js","sourceRoot":"","sources":["../../../../Server/Middleware/UserAuthorization.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,18 @@ import ObjectID from "../../Types/ObjectID";
14
14
  import crypto from "crypto";
15
15
  import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
16
16
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
17
+ /*
18
+ * Meta sends the digest as "sha256=" followed by the 64 hex characters of a
19
+ * SHA-256 HMAC. The header is attacker-controlled and the endpoint is
20
+ * unauthenticated by design - the signature IS the authentication - so the
21
+ * shape has to be checked before the value reaches crypto.timingSafeEqual,
22
+ * which throws RangeError on a length mismatch rather than returning false.
23
+ * Without the guard, any unauthenticated request carrying a signature header
24
+ * of some other length threw out of the middleware instead of getting the
25
+ * intended 400.
26
+ */
27
+ const SIGNATURE_PREFIX = "sha256=";
28
+ const HEX_DIGEST_REGEX = /^[a-f0-9]{64}$/i;
17
29
  export default class WhatsAppAuthorization {
18
30
  static async isAuthorizedWhatsAppRequest(req, res, next) {
19
31
  var _a;
@@ -23,6 +35,17 @@ export default class WhatsAppAuthorization {
23
35
  logger.error("WhatsApp webhook request missing X-Hub-Signature-256 header.", getLogAttributesFromRequest(req));
24
36
  return Response.sendErrorResponse(req, res, new BadDataException("Missing X-Hub-Signature-256 header."));
25
37
  }
38
+ /*
39
+ * Checked up front, before the config lookup: a request whose signature
40
+ * cannot possibly verify should not cost a database round trip.
41
+ */
42
+ const providedDigest = signature.startsWith(SIGNATURE_PREFIX)
43
+ ? signature.slice(SIGNATURE_PREFIX.length)
44
+ : "";
45
+ if (!HEX_DIGEST_REGEX.test(providedDigest)) {
46
+ logger.error("WhatsApp webhook request has a malformed X-Hub-Signature-256 header.", getLogAttributesFromRequest(req));
47
+ return Response.sendErrorResponse(req, res, new BadDataException("WhatsApp webhook signature verification failed."));
48
+ }
26
49
  const globalConfig = await GlobalConfigService.findOneBy({
27
50
  query: {
28
51
  _id: ObjectID.getZeroObjectID().toString(),
@@ -40,8 +63,15 @@ export default class WhatsAppAuthorization {
40
63
  return Response.sendErrorResponse(req, res, new BadDataException("Meta WhatsApp App Secret is not configured."));
41
64
  }
42
65
  const rawBody = req.rawBody || "";
43
- const expectedSignature = `sha256=${crypto.createHmac("sha256", appSecret).update(rawBody).digest("hex")}`;
44
- if (!crypto.timingSafeEqual(Buffer.from(expectedSignature), Buffer.from(signature))) {
66
+ const expectedDigest = crypto
67
+ .createHmac("sha256", appSecret)
68
+ .update(rawBody)
69
+ .digest("hex");
70
+ /*
71
+ * Both sides are decoded from 64 validated hex characters, so both
72
+ * buffers are 32 bytes and timingSafeEqual cannot throw here.
73
+ */
74
+ if (!crypto.timingSafeEqual(Buffer.from(expectedDigest, "hex"), Buffer.from(providedDigest, "hex"))) {
45
75
  logger.error("WhatsApp webhook signature verification failed.", getLogAttributesFromRequest(req));
46
76
  return Response.sendErrorResponse(req, res, new BadDataException("WhatsApp webhook signature verification failed."));
47
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WhatsAppAuthorization.js","sourceRoot":"","sources":["../../../../Server/Middleware/WhatsAppAuthorization.ts"],"names":[],"mappings":";;;;;;;;;AAKA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AAEtE,OAAO,mBAAmB,MAAM,iCAAiC,CAAC;AAClE,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,MAAM,EAAE,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,WAAW,MAAM,gCAAgC,CAAC;AAEzD,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAEpB,AAAb,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAC7C,GAAqB,EACrB,GAAoB,EACpB,IAAkB;;QAElB,MAAM,CAAC,KAAK,CACV,kDAAkD,EAClD,2BAA2B,CAAC,GAAG,CAAC,CACjC,CAAC;QAEF,MAAM,SAAS,GAAuB,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAE1D,CAAC;QAEd,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,8DAA8D,EAC9D,2BAA2B,CAAC,GAAG,CAAC,CACjC,CAAC;YACF,OAAO,QAAQ,CAAC,iBAAiB,CAC/B,GAAG,EACH,GAAG,EACH,IAAI,gBAAgB,CAAC,qCAAqC,CAAC,CAC5D,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAChB,MAAM,mBAAmB,CAAC,SAAS,CAAC;YAClC,KAAK,EAAE;gBACL,GAAG,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE;aAC3C;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;YACD,MAAM,EAAE;gBACN,qBAAqB,EAAE,IAAI;aAC5B;SACF,CAAC,CAAC;QAEL,MAAM,SAAS,GACb,CAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,qBAAqB,0CAAE,IAAI,EAAE,KAAI,SAAS,CAAC;QAE3D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CACV,8EAA8E,EAC9E,2BAA2B,CAAC,GAAG,CAAC,CACjC,CAAC;YACF,OAAO,QAAQ,CAAC,iBAAiB,CAC/B,GAAG,EACH,GAAG,EACH,IAAI,gBAAgB,CAAC,6CAA6C,CAAC,CACpE,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAE1C,MAAM,iBAAiB,GAAW,UAAU,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAEnH,IACE,CAAC,MAAM,CAAC,eAAe,CACrB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAe,EAC5C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAe,CACrC,EACD,CAAC;YACD,MAAM,CAAC,KAAK,CACV,iDAAiD,EACjD,2BAA2B,CAAC,GAAG,CAAC,CACjC,CAAC;YACF,OAAO,QAAQ,CAAC,iBAAiB,CAC/B,GAAG,EACH,GAAG,EACH,IAAI,gBAAgB,CAAC,iDAAiD,CAAC,CACxE,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,CACV,kDAAkD,EAClD,2BAA2B,CAAC,GAAG,CAAC,CACjC,CAAC;QACF,IAAI,EAAE,CAAC;IACT,CAAC;CACF;AAjFqB;IADnB,WAAW,EAAE;;;;8DAiFb"}
1
+ {"version":3,"file":"WhatsAppAuthorization.js","sourceRoot":"","sources":["../../../../Server/Middleware/WhatsAppAuthorization.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,82 @@ import Model from "../../Models/DatabaseModels/GlobalOidcProject";
12
12
  import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
13
13
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
14
14
  import validateGlobalProviderProjectTeams, { resolveAttachmentProjectId, } from "../Utils/ValidateGlobalProviderProjectTeams";
15
+ import { GLOBAL_SSO_AUTHORIZATION_CACHE_TTL_MS, clearGlobalSsoAuthorizationCaches, doAttachmentsGovernProject, globalProviderCacheKey, globalSsoAttachmentsCache, loadAttachmentsOnce, } from "../Utils/GlobalSsoAuthorization";
15
16
  export class Service extends DatabaseService {
16
17
  constructor() {
17
18
  super(Model);
18
19
  }
20
+ /**
21
+ * Whether this provider's attachments cover `projectId`.
22
+ *
23
+ * Only consulted when the provider has `restrictToAttachedProjects` on -
24
+ * attachments are the PROVISIONING allow-list by default, not an access
25
+ * boundary, and reading them as one without the admin asking would lock
26
+ * existing users out of projects they legitimately reach.
27
+ *
28
+ * "No attachment rows at all" means instance-wide, matching the login
29
+ * router's default-all mode. "Rows exist but none are enabled" is a
30
+ * different answer and denies - otherwise an admin disabling the last
31
+ * attachment would WIDEN the provider to every project.
32
+ *
33
+ * Cached for 60s, with concurrent misses sharing one query.
34
+ */
35
+ async doesProviderGovernProject(data) {
36
+ const key = globalProviderCacheKey("oidc", data.globalOidcId);
37
+ const cached = globalSsoAttachmentsCache.get(key);
38
+ if (cached !== undefined) {
39
+ return doAttachmentsGovernProject(cached, data.projectId);
40
+ }
41
+ const attachments = await loadAttachmentsOnce(key, async () => {
42
+ /*
43
+ * Fetched WITHOUT the isEnabled filter so a disabled row still counts
44
+ * as "this provider has attachments"; the enabled ones are selected
45
+ * out below.
46
+ */
47
+ const rows = await this.findBy({
48
+ query: { globalOidcId: data.globalOidcId },
49
+ select: { _id: true, projectId: true, isEnabled: true },
50
+ limit: LIMIT_PER_PROJECT,
51
+ skip: 0,
52
+ props: { isRoot: true },
53
+ });
54
+ const loaded = {
55
+ hasAnyAttachmentRows: rows.length > 0,
56
+ enabledProjectIds: rows
57
+ .filter((row) => {
58
+ return Boolean(row.isEnabled) && Boolean(row.projectId);
59
+ })
60
+ .map((row) => {
61
+ return row.projectId.toString();
62
+ }),
63
+ };
64
+ globalSsoAttachmentsCache.set(key, loaded, GLOBAL_SSO_AUTHORIZATION_CACHE_TTL_MS);
65
+ return loaded;
66
+ });
67
+ return doAttachmentsGovernProject(attachments, data.projectId);
68
+ }
69
+ async onBeforeDelete(deleteBy) {
70
+ // Detaching a project has to take effect now, not in 60s, on this node.
71
+ clearGlobalSsoAuthorizationCaches();
72
+ return { deleteBy, carryForward: null };
73
+ }
74
+ /*
75
+ * Cleared again AFTER the write commits. A clear that runs before the row
76
+ * lands can be immediately re-filled with the pre-change answer by a
77
+ * concurrent request, handing the old attachment set another full TTL.
78
+ */
79
+ async onDeleteSuccess(onDelete, _itemIdsBeforeDelete) {
80
+ clearGlobalSsoAuthorizationCaches();
81
+ return onDelete;
82
+ }
83
+ async onCreateSuccess(_onCreate, createdItem) {
84
+ clearGlobalSsoAuthorizationCaches();
85
+ return createdItem;
86
+ }
87
+ async onUpdateSuccess(onUpdate, _updatedItemIds) {
88
+ clearGlobalSsoAuthorizationCaches();
89
+ return onUpdate;
90
+ }
19
91
  async onBeforeCreate(createBy) {
20
92
  /*
21
93
  * The attach form submits the project via the `project` relation, so the
@@ -30,6 +102,8 @@ export class Service extends DatabaseService {
30
102
  teams: createBy.data.teams,
31
103
  projectId,
32
104
  });
105
+ // A new attachment narrows (or widens) which projects the provider governs.
106
+ clearGlobalSsoAuthorizationCaches();
33
107
  return { createBy, carryForward: null };
34
108
  }
35
109
  async onBeforeUpdate(updateBy) {
@@ -61,9 +135,40 @@ export class Service extends DatabaseService {
61
135
  }
62
136
  }
63
137
  }
138
+ clearGlobalSsoAuthorizationCaches();
64
139
  return { updateBy, carryForward: null };
65
140
  }
66
141
  }
142
+ __decorate([
143
+ CaptureSpan(),
144
+ __metadata("design:type", Function),
145
+ __metadata("design:paramtypes", [Object]),
146
+ __metadata("design:returntype", Promise)
147
+ ], Service.prototype, "doesProviderGovernProject", null);
148
+ __decorate([
149
+ CaptureSpan(),
150
+ __metadata("design:type", Function),
151
+ __metadata("design:paramtypes", [Object]),
152
+ __metadata("design:returntype", Promise)
153
+ ], Service.prototype, "onBeforeDelete", null);
154
+ __decorate([
155
+ CaptureSpan(),
156
+ __metadata("design:type", Function),
157
+ __metadata("design:paramtypes", [Object, Array]),
158
+ __metadata("design:returntype", Promise)
159
+ ], Service.prototype, "onDeleteSuccess", null);
160
+ __decorate([
161
+ CaptureSpan(),
162
+ __metadata("design:type", Function),
163
+ __metadata("design:paramtypes", [Object, Model]),
164
+ __metadata("design:returntype", Promise)
165
+ ], Service.prototype, "onCreateSuccess", null);
166
+ __decorate([
167
+ CaptureSpan(),
168
+ __metadata("design:type", Function),
169
+ __metadata("design:paramtypes", [Object, Array]),
170
+ __metadata("design:returntype", Promise)
171
+ ], Service.prototype, "onUpdateSuccess", null);
67
172
  __decorate([
68
173
  CaptureSpan(),
69
174
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalOidcProjectService.js","sourceRoot":"","sources":["../../../../Server/Services/GlobalOidcProjectService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,+CAA+C,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAKlE,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,kCAAkC,EAAE,EACzC,0BAA0B,GAC3B,MAAM,6CAA6C,CAAC;AAErD,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAGwB,AAAN,KAAK,CAAC,cAAc,CACrC,QAAyB;QAEzB;;;;WAIG;QACH,MAAM,SAAS,GAAyB,0BAA0B,CAChE,QAAQ,CAAC,IAAI,CACd,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QACtC,CAAC;QAED,MAAM,kCAAkC,CAAC;YACvC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;YAC1B,SAAS;SACV,CAAC,CAAC;QAEH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAGwB,AAAN,KAAK,CAAC,cAAc,CACrC,QAAyB;QAEzB,0EAA0E;QAC1E,MAAM,KAAK,GAA4B,QAAQ,CAAC,IAAI,CAAC,KAExC,CAAC;QAEd,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,iBAAiB,GAAyB,QAAQ,CAAC,IAAI;iBAC1D,SAA4C,CAAC;YAEhD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,kCAAkC,CAAC;oBACvC,KAAK;oBACL,SAAS,EAAE,iBAAiB;iBAC7B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,yEAAyE;gBACzE,MAAM,IAAI,GAAiB,MAAM,IAAI,CAAC,MAAM,CAAC;oBAC3C,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;oBACtC,KAAK,EAAE,iBAAiB;oBACxB,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;iBACxB,CAAC,CAAC;gBAEH,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,MAAM,kCAAkC,CAAC;wBACvC,KAAK;wBACL,SAAS,EAAE,GAAG,CAAC,SAAS;qBACzB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;CACF;AA/D0B;IADxB,WAAW,EAAE;;;;6CAuBb;AAGwB;IADxB,WAAW,EAAE;;;;6CAsCb;AAGH,eAAe,IAAI,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"GlobalOidcProjectService.js","sourceRoot":"","sources":["../../../../Server/Services/GlobalOidcProjectService.ts"],"names":[],"mappings":"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"}