@oneuptime/common 13.0.7 → 13.0.8

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 (463) hide show
  1. package/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.ts +1 -1
  2. package/Models/DatabaseModels/ProjectOnCallCalendarFeed.ts +1 -1
  3. package/Models/DatabaseModels/UserOnCallCalendarFeed.ts +1 -1
  4. package/Server/API/AIBillingAPI.ts +1 -0
  5. package/Server/API/AIInsightAPI.ts +1 -4
  6. package/Server/API/AIInvestigationAPI.ts +1 -4
  7. package/Server/API/AIReadinessAPI.ts +4 -5
  8. package/Server/API/AlertAPI.ts +1 -0
  9. package/Server/API/AutoRemediationAPI.ts +1 -4
  10. package/Server/API/BaseAPI.ts +13 -0
  11. package/Server/API/BaseAnalyticsAPI.ts +80 -9
  12. package/Server/API/BillingAPI.ts +2 -0
  13. package/Server/API/BillingInvoiceAPI.ts +1 -0
  14. package/Server/API/BillingPaymentMethodAPI.ts +2 -0
  15. package/Server/API/CodeFixRunAPI.ts +1 -3
  16. package/Server/API/CommonAPI.ts +68 -4
  17. package/Server/API/DashboardAPI.ts +12 -12
  18. package/Server/API/GlobalConfigAPI.ts +17 -0
  19. package/Server/API/IncidentAPI.ts +2 -0
  20. package/Server/API/IncidentEpisodeAPI.ts +1 -0
  21. package/Server/API/NotificationAPI.ts +1 -0
  22. package/Server/API/OnCallCalendarAPI.ts +4 -5
  23. package/Server/API/OnCallDutyPolicyAPI.ts +7 -0
  24. package/Server/API/OnCallReadinessAPI.ts +4 -1
  25. package/Server/API/OnCallScheduleTimelineAPI.ts +731 -0
  26. package/Server/API/ProjectAPI.ts +1 -0
  27. package/Server/API/ScheduledMaintenanceAPI.ts +1 -0
  28. package/Server/API/StatusPageAPI.ts +161 -32
  29. package/Server/API/TeamMemberAPI.ts +3 -0
  30. package/Server/API/UserCallAPI.ts +2 -0
  31. package/Server/API/UserEmailAPI.ts +2 -0
  32. package/Server/API/UserIncomingCallNumberAPI.ts +2 -0
  33. package/Server/API/UserMicrosoftTeamsAPI.ts +1 -0
  34. package/Server/API/UserSlackAPI.ts +1 -0
  35. package/Server/API/UserSmsAPI.ts +2 -0
  36. package/Server/API/UserTotpAuthAPI.ts +1 -0
  37. package/Server/API/UserWebAuthnAPI.ts +2 -0
  38. package/Server/API/UserWebhookAPI.ts +1 -0
  39. package/Server/API/UserWhatsAppAPI.ts +2 -0
  40. package/Server/Middleware/MasterAdminAuthorization.ts +13 -2
  41. package/Server/Middleware/UserAuthorization.ts +79 -5
  42. package/Server/Services/ApiKeyPermissionService.ts +101 -4
  43. package/Server/Services/DatabaseService.ts +245 -0
  44. package/Server/Services/DetectionRuleService.ts +5 -4
  45. package/Server/Services/OnCallDutyPolicyChildService.ts +261 -0
  46. package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +2 -2
  47. package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +2 -2
  48. package/Server/Services/OnCallDutyPolicyEscalationRuleTeamService.ts +2 -2
  49. package/Server/Services/OnCallDutyPolicyEscalationRuleUserService.ts +2 -2
  50. package/Server/Services/PayAsYouGoBillingService.ts +23 -28
  51. package/Server/Services/ProjectService.ts +18 -0
  52. package/Server/Services/RumSessionPinService.ts +274 -22
  53. package/Server/Services/TeamPermissionService.ts +120 -26
  54. package/Server/Services/ThreatIntelFeedService.ts +6 -3
  55. package/Server/Types/Database/Permissions/BasePermission.ts +9 -7
  56. package/Server/Types/Database/Permissions/Index.ts +75 -11
  57. package/Server/Types/Database/Permissions/TablePermission.ts +24 -28
  58. package/Server/Utils/AI/AIChatPrivacyFilter.ts +8 -0
  59. package/Server/Utils/AI/AIRunPrivacyFilter.ts +8 -0
  60. package/Server/Utils/MasterAdminPageAccess.ts +61 -0
  61. package/Server/Utils/Monitor/MonitorAlert.ts +3 -1
  62. package/Server/Utils/Monitor/MonitorIncident.ts +3 -1
  63. package/Server/Utils/OnCall/OnCallCalendarFeedRenderer.ts +1 -1
  64. package/Server/Utils/Realtime.ts +163 -45
  65. package/Server/Utils/SecurityEvent/DetectionRuleEvaluator.ts +11 -28
  66. package/Server/Utils/SecurityEvent/GoogleSecOpsSeverityRepair.ts +170 -0
  67. package/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.ts +1 -1
  68. package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.ts +6 -2
  69. package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.ts +10 -9
  70. package/Tests/App/Dashboard/AffectedResourcesPicker.test.tsx +1059 -0
  71. package/Tests/App/Dashboard/AffectedResourcesPickerEditForm.test.tsx +376 -0
  72. package/Tests/App/Dashboard/AffectedResourcesPickerHiddenTypes.test.tsx +757 -0
  73. package/Tests/App/Dashboard/AffectedResourcesSummaryStep.test.tsx +307 -0
  74. package/Tests/App/Dashboard/ArgumentsFormGroupByUnlistedAttributes.test.tsx +131 -0
  75. package/Tests/App/Dashboard/DashboardHeaderRequests.test.tsx +1 -1
  76. package/Tests/App/Dashboard/DashboardMonitorLabelVariable.test.tsx +9 -1
  77. package/Tests/App/Dashboard/DashboardVariableAllContract.test.tsx +24 -0
  78. package/Tests/App/Dashboard/DashboardVariableSelector.test.tsx +162 -8
  79. package/Tests/App/Dashboard/EntityFilterDropdownArchivedSlos.test.tsx +105 -6
  80. package/Tests/App/Dashboard/EntityFilterDropdownUnlistedSelection.test.tsx +434 -0
  81. package/Tests/App/Dashboard/EscalationRuleReadiness.test.tsx +276 -1
  82. package/Tests/App/Dashboard/OnCallCalendarFeedSideMenus.test.tsx +9 -1
  83. package/Tests/App/Dashboard/PayAsYouGoConsentGate.test.tsx +58 -42
  84. package/Tests/App/Dashboard/PayAsYouGoNotices.test.tsx +42 -5
  85. package/Tests/App/Dashboard/ResourceAuditLogsSideMenus.test.tsx +34 -23
  86. package/Tests/App/Dashboard/ScheduleTimeline.test.tsx +1580 -0
  87. package/Tests/App/Dashboard/ScheduleTimelineAPI.test.ts +280 -0
  88. package/Tests/App/Dashboard/ScheduleTimelineModel.test.ts +673 -0
  89. package/Tests/App/Dashboard/SecurityEventConnectionDiagnostics.test.tsx +95 -68
  90. package/Tests/App/Dashboard/SecurityEventsDetectionRulesPage.test.tsx +86 -3
  91. package/Tests/App/Dashboard/SecurityEventsEmptyState.test.tsx +28 -3
  92. package/Tests/App/Dashboard/SecurityEventsExplorer.test.tsx +761 -0
  93. package/Tests/App/Dashboard/SecurityEventsGuideContent.test.ts +1313 -0
  94. package/Tests/App/Dashboard/SecurityEventsHowItWorksCard.test.tsx +536 -0
  95. package/Tests/App/Dashboard/SecurityEventsNoResults.test.tsx +222 -0
  96. package/Tests/App/Dashboard/SecurityEventsThreatIntelPage.test.tsx +199 -0
  97. package/Tests/App/Dashboard/SecurityEventsVolumeChart.test.tsx +321 -0
  98. package/Tests/App/Dashboard/SloOverviewHero.test.tsx +171 -36
  99. package/Tests/App/Dashboard/SloViewSideMenu.test.tsx +215 -0
  100. package/Tests/App/Dashboard/SloViewSideMenuCounts.test.tsx +40 -3
  101. package/Tests/App/PublicDashboard/DashboardVariableSelector.test.tsx +12 -4
  102. package/Tests/App/PublicDashboard/PublicDashboardWidgetListAuth.test.tsx +623 -0
  103. package/Tests/Models/OnCallCalendarFeedModels.test.ts +23 -1
  104. package/Tests/Server/API/AIChatRouteAuthorization.test.ts +138 -5
  105. package/Tests/Server/API/AIGenerationProjectAIToggle.test.ts +187 -0
  106. package/Tests/Server/API/AIInvestigationAvailabilityAuthorization.test.ts +51 -3
  107. package/Tests/Server/API/AIInvestigationEvidenceAPI.test.ts +55 -2
  108. package/Tests/Server/API/BaseAnalyticsAPIAggregateCache.test.ts +729 -0
  109. package/Tests/Server/API/BillingPayAsYouGoStatus.test.ts +93 -7
  110. package/Tests/Server/API/BillingPaymentMethodAPI.test.ts +36 -3
  111. package/Tests/Server/API/CommonAPIAuthGuard.test.ts +1003 -24
  112. package/Tests/Server/API/DashboardPublicRateLimit.test.ts +6 -3
  113. package/Tests/Server/API/ExpiredSessionAIRoutes.test.ts +708 -0
  114. package/Tests/Server/API/ExpiredSessionCustomRoutes.test.ts +928 -0
  115. package/Tests/Server/API/ExpiredSessionMonitorTemplate.test.ts +319 -0
  116. package/Tests/Server/API/ExpiredSessionOnCallDutyPolicy.test.ts +336 -0
  117. package/Tests/Server/API/ExpiredSessionRouteGuards.test.ts +820 -0
  118. package/Tests/Server/API/GlobalConfigLicense.test.ts +140 -0
  119. package/Tests/Server/API/NotificationChannelVerificationAPI.test.ts +115 -12
  120. package/Tests/Server/API/OnCallCalendarAPI.test.ts +375 -8
  121. package/Tests/Server/API/OnCallReadinessAPI.test.ts +175 -17
  122. package/Tests/Server/API/OnCallScheduleTimelineAPI.test.ts +1513 -0
  123. package/Tests/Server/API/OnCallSetupReminderAPI.test.ts +119 -7
  124. package/Tests/Server/API/ProjectScopedCustomRouteAuth.test.ts +111 -4
  125. package/Tests/Server/API/PublicRouteInvalidAccessToken.test.ts +615 -0
  126. package/Tests/Server/API/SecurityEventAttributesAPI.test.ts +89 -2
  127. package/Tests/Server/API/SessionReplayAPI.test.ts +121 -0
  128. package/Tests/Server/API/StatusPageMasterPasswordRateLimit.test.ts +4 -2
  129. package/Tests/Server/API/StatusPagePostmortemVisibility.test.ts +441 -0
  130. package/Tests/Server/API/StatusPageTestEmailReportAuth.test.ts +664 -0
  131. package/Tests/Server/API/TeamMemberRemoveUserFromProjectAPI.test.ts +7 -0
  132. package/Tests/Server/API/UserIncomingCallNumberApi.test.ts +6 -0
  133. package/Tests/Server/API/UserNotificationSettingAPI.test.ts +65 -4
  134. package/Tests/Server/API/UserProjectsAPI.test.ts +63 -3
  135. package/Tests/Server/API/UserTotpAuthAPI.test.ts +48 -2
  136. package/Tests/Server/API/UserWebAuthnAuthenticationOptionsRoute.test.ts +11 -2
  137. package/Tests/Server/API/UserWebAuthnBackupCodeMinting.test.ts +46 -3
  138. package/Tests/Server/API/UserWebAuthnPasskeyAPI.test.ts +18 -2
  139. package/Tests/Server/API/ZZVerifyChatsAuth.test.ts +24 -7
  140. package/Tests/Server/Middleware/ExpiredSessionUserMiddleware.test.ts +563 -0
  141. package/Tests/Server/Middleware/MasterAdminAuthorization.test.ts +299 -19
  142. package/Tests/Server/Middleware/PublicRouteUserMiddleware.test.ts +453 -0
  143. package/Tests/Server/Services/AIChatPrivacyPin.test.ts +24 -0
  144. package/Tests/Server/Services/ApiKeyPermissionSecurity.test.ts +2 -0
  145. package/Tests/Server/Services/ApiKeyPermissionService.test.ts +3 -3
  146. package/Tests/Server/Services/DatabaseServiceCreateSuppliedId.test.ts +147 -0
  147. package/Tests/Server/Services/DatabaseServiceLoginBeforeHooks.test.ts +1078 -0
  148. package/Tests/Server/Services/DatabaseServiceTenantRelationGuard.test.ts +259 -0
  149. package/Tests/Server/Services/DatabaseServiceWriteOperatorValues.test.ts +147 -0
  150. package/Tests/Server/Services/MonitorPayAsYouGoBilling.test.ts +115 -1
  151. package/Tests/Server/Services/OnCallChildCreateAuthorizationPostgres.test.ts +711 -0
  152. package/Tests/Server/Services/OnCallDutyPolicyChildService.test.ts +733 -0
  153. package/Tests/Server/Services/PayAsYouGoBillingService.test.ts +190 -140
  154. package/Tests/Server/Services/PayAsYouGoStripeRateLimitBudget.test.ts +4 -9
  155. package/Tests/Server/Services/PermissionBlockDeletion.test.ts +780 -0
  156. package/Tests/Server/Services/PermissionBlockDeletionPostgres.test.ts +628 -0
  157. package/Tests/Server/Services/ProjectServiceCreateSubscriptionStarted.test.ts +77 -1
  158. package/Tests/Server/Services/RumSessionPinCreatePermission.test.ts +715 -0
  159. package/Tests/Server/Services/TeamMemberMultiTenantReadPostgres.test.ts +394 -0
  160. package/Tests/Server/Services/TeamPrivilegeEscalation.test.ts +6 -0
  161. package/Tests/Server/Services/TelemetryPayAsYouGoBilling.test.ts +131 -0
  162. package/Tests/Server/Services/UserNotificationRuleAdminGuards.test.ts +13 -2
  163. package/Tests/Server/Types/Database/Permissions/ModelPermissionAnonymousRefusal.test.ts +518 -0
  164. package/Tests/Server/Types/Database/Permissions/MultiTenantPermissions.test.ts +350 -0
  165. package/Tests/Server/Types/Database/Permissions/OnCallCalendarFeedPermissions.test.ts +282 -25
  166. package/Tests/Server/Types/Database/Permissions/TableLevelBlockPermission.test.ts +459 -0
  167. package/Tests/Server/Utils/AI/AIRunPrivacyFilter.test.ts +101 -9
  168. package/Tests/Server/Utils/AI/ChatAgentHelpers.test.ts +88 -4
  169. package/Tests/Server/Utils/AI/Toolbox/ExceptionTools.test.ts +459 -0
  170. package/Tests/Server/Utils/AI/Toolbox/LogTools.test.ts +794 -0
  171. package/Tests/Server/Utils/AI/Toolbox/RecentChangesTools.test.ts +574 -0
  172. package/Tests/Server/Utils/AI/Toolbox/SecurityEventTools.test.ts +596 -0
  173. package/Tests/Server/Utils/CaptchaRequestAndLogging.test.ts +395 -0
  174. package/Tests/Server/Utils/MasterAdminPageAccess.test.ts +251 -0
  175. package/Tests/Server/Utils/Monitor/MonitorActionTimestamps.test.ts +616 -0
  176. package/Tests/Server/Utils/Realtime.test.ts +502 -0
  177. package/Tests/Server/Utils/SecurityEvent/Connectors/GoogleSecOps/GoogleSecOpsConnectorSeverity.test.ts +216 -0
  178. package/Tests/Server/Utils/SecurityEvent/DetectionRuleEvaluator.test.ts +142 -0
  179. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsSeverityRepair.test.ts +140 -0
  180. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsSeverityRepairClickhouseIntegration.test.ts +542 -0
  181. package/Tests/Server/Utils/Telemetry/ChangeEventRow.test.ts +743 -0
  182. package/Tests/Server/Utils/Telemetry/RuntimeMetrics.test.ts +465 -0
  183. package/Tests/Server/Utils/Workspace/MicrosoftTeams/Messages/Alert.test.ts +202 -0
  184. package/Tests/Server/Utils/Workspace/MicrosoftTeams/Messages/Incident.test.ts +194 -0
  185. package/Tests/Server/Utils/Workspace/MicrosoftTeams/Messages/ScheduledMaintenance.test.ts +231 -0
  186. package/Tests/Server/Utils/Workspace/Slack/Messages/Alert.test.ts +194 -0
  187. package/Tests/Server/Utils/Workspace/Slack/Messages/AlertEpisode.test.ts +194 -0
  188. package/Tests/Server/Utils/Workspace/Slack/Messages/Incident.test.ts +194 -0
  189. package/Tests/Server/Utils/Workspace/Slack/Messages/IncidentEpisode.test.ts +194 -0
  190. package/Tests/Server/Utils/Workspace/Slack/Messages/ScheduledMaintenance.test.ts +247 -0
  191. package/Tests/Types/AI/AIInsightEvidence.test.ts +206 -0
  192. package/Tests/Types/BaseDatabase/DatabaseCommonInteractionPropsUtilAnonymous.test.ts +144 -0
  193. package/Tests/Types/Call/CallProvider.test.ts +528 -0
  194. package/Tests/Types/Kubernetes/KubernetesCostIngest.test.ts +236 -0
  195. package/Tests/Types/OnCallDutyPolicy/ScheduleTimeline.test.ts +736 -0
  196. package/Tests/Types/OnCallDutyPolicy/ScheduleTimelineLayout.test.ts +996 -0
  197. package/Tests/Types/SecurityEvent/SigmaRule.test.ts +142 -0
  198. package/Tests/Types/Workflow/Components/JSON.test.ts +182 -0
  199. package/Tests/UI/Components/BasicFormDropdownNormalization.test.tsx +116 -1
  200. package/Tests/UI/Components/Dropdown/DropdownAsyncOptions.test.tsx +81 -0
  201. package/Tests/UI/Components/EditionLabelLicenseRefresh.test.tsx +89 -1
  202. package/Tests/UI/Components/EventAttachmentList.test.tsx +174 -0
  203. package/Tests/UI/Components/Forms/BasicFormBurnRateTemplateDefaults.test.tsx +395 -0
  204. package/Tests/UI/Components/Forms/BasicFormCollapsibleSections.test.tsx +286 -0
  205. package/Tests/UI/Components/Forms/FormSummary.test.tsx +128 -0
  206. package/Tests/UI/Components/ModelTable/BaseModelTableQueryChange.test.tsx +365 -0
  207. package/Tests/UI/Components/OpenAuthenticatedUrl.test.ts +358 -0
  208. package/Tests/UI/Components/SessionAwareImage.test.tsx +496 -0
  209. package/Tests/UI/Components/TelemetryHistogramZeroBuckets.test.tsx +190 -0
  210. package/Tests/UI/Components/TooltipInteractive.test.tsx +97 -0
  211. package/Tests/UI/MicrosoftTeams/MicrosoftTeamsChatsCardInstallGuidance.test.tsx +1 -1
  212. package/Tests/UI/Monitor/EvaluationLogListTimestamps.test.tsx +367 -0
  213. package/Tests/UI/Utils/API/BaseAPIRefreshSession.test.ts +1087 -0
  214. package/Tests/UI/Utils/API/DashboardHost.ts +12 -0
  215. package/Tests/UI/Utils/API/FakeAxiosServer.ts +183 -0
  216. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +10 -0
  217. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +2 -0
  218. package/Tests/UI/Utils/Cookie.test.ts +440 -0
  219. package/Tests/UI/Utils/ModelAPIRequestClient.test.ts +278 -0
  220. package/Tests/UI/Utils/Navigation.test.ts +33 -0
  221. package/Tests/UI/Utils/PricingPlan.test.ts +295 -0
  222. package/Tests/UI/Utils/Realtime.test.ts +759 -0
  223. package/Tests/UI/Utils/Telemetry/Telemetry.test.ts +500 -0
  224. package/Tests/Utils/APIInstanceDispatch.test.ts +311 -0
  225. package/Tests/Utils/SecurityEvent/GoogleSecOpsAlertNormalizerSeverity.test.ts +565 -0
  226. package/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.ts +40 -0
  227. package/Types/Monitor/MonitorEvaluationSummary.ts +3 -0
  228. package/Types/OnCallDutyPolicy/ScheduleTimeline.ts +507 -0
  229. package/Types/OnCallDutyPolicy/ScheduleTimelineLayout.ts +589 -0
  230. package/Types/Realtime/EventName.ts +11 -0
  231. package/Types/SecurityEvent/DetectionFindingConstants.ts +14 -0
  232. package/Types/SecurityEvent/OcsfSeverity.ts +31 -26
  233. package/Types/SecurityEvent/SigmaRule.ts +51 -0
  234. package/Types/SecurityEvent/ThreatIntelConstants.ts +18 -0
  235. package/UI/Components/AttachmentList/EventAttachmentList.tsx +30 -2
  236. package/UI/Components/Dashboard/DashboardVariableControl.tsx +12 -2
  237. package/UI/Components/Dropdown/Dropdown.tsx +6 -1
  238. package/UI/Components/EditionLabel/EditionLabel.tsx +12 -0
  239. package/UI/Components/EventItem/EventItem.tsx +12 -1
  240. package/UI/Components/Forms/BasicForm.tsx +151 -126
  241. package/UI/Components/Forms/CollapsibleFormSection.tsx +63 -0
  242. package/UI/Components/Forms/Fields/FormField.tsx +10 -4
  243. package/UI/Components/Forms/FormSummary.tsx +7 -0
  244. package/UI/Components/Forms/Types/Field.ts +10 -0
  245. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +2 -1
  246. package/UI/Components/Markdown.tsx/SessionAwareImage.tsx +122 -0
  247. package/UI/Components/ModelTable/BaseModelTable.tsx +34 -5
  248. package/UI/Components/ModelTable/TableView.tsx +1 -1
  249. package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +8 -1
  250. package/UI/Components/Tooltip/Tooltip.tsx +8 -1
  251. package/UI/Utils/API/API.ts +173 -12
  252. package/UI/Utils/API/RequestOptions.ts +11 -0
  253. package/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.ts +31 -7
  254. package/UI/Utils/ModelAPI/ModelAPI.ts +30 -9
  255. package/UI/Utils/Navigation.ts +9 -0
  256. package/UI/Utils/OpenAuthenticatedUrl.ts +154 -0
  257. package/UI/Utils/Realtime.ts +176 -30
  258. package/Utils/API.ts +14 -5
  259. package/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.ts +157 -7
  260. package/Utils/SecurityEvent/Sigma/SigmaRuleParser.ts +9 -17
  261. package/Utils/Slo/SloBurnRateTemplate.ts +2 -2
  262. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js +1 -1
  263. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleCalendarFeed.js.map +1 -1
  264. package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js +1 -1
  265. package/build/dist/Models/DatabaseModels/ProjectOnCallCalendarFeed.js.map +1 -1
  266. package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js +1 -1
  267. package/build/dist/Models/DatabaseModels/UserOnCallCalendarFeed.js.map +1 -1
  268. package/build/dist/Server/API/AIBillingAPI.js +1 -1
  269. package/build/dist/Server/API/AIBillingAPI.js.map +1 -1
  270. package/build/dist/Server/API/AIInsightAPI.js +1 -4
  271. package/build/dist/Server/API/AIInsightAPI.js.map +1 -1
  272. package/build/dist/Server/API/AIInvestigationAPI.js +1 -4
  273. package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
  274. package/build/dist/Server/API/AIReadinessAPI.js +1 -3
  275. package/build/dist/Server/API/AIReadinessAPI.js.map +1 -1
  276. package/build/dist/Server/API/AlertAPI.js +1 -1
  277. package/build/dist/Server/API/AlertAPI.js.map +1 -1
  278. package/build/dist/Server/API/AutoRemediationAPI.js +1 -4
  279. package/build/dist/Server/API/AutoRemediationAPI.js.map +1 -1
  280. package/build/dist/Server/API/BaseAPI.js +12 -0
  281. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  282. package/build/dist/Server/API/BaseAnalyticsAPI.js +55 -10
  283. package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
  284. package/build/dist/Server/API/BillingAPI.js +2 -2
  285. package/build/dist/Server/API/BillingAPI.js.map +1 -1
  286. package/build/dist/Server/API/BillingInvoiceAPI.js +1 -1
  287. package/build/dist/Server/API/BillingInvoiceAPI.js.map +1 -1
  288. package/build/dist/Server/API/BillingPaymentMethodAPI.js +2 -2
  289. package/build/dist/Server/API/BillingPaymentMethodAPI.js.map +1 -1
  290. package/build/dist/Server/API/CodeFixRunAPI.js +1 -3
  291. package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -1
  292. package/build/dist/Server/API/CommonAPI.js +50 -5
  293. package/build/dist/Server/API/CommonAPI.js.map +1 -1
  294. package/build/dist/Server/API/DashboardAPI.js +12 -12
  295. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  296. package/build/dist/Server/API/GlobalConfigAPI.js +12 -0
  297. package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
  298. package/build/dist/Server/API/IncidentAPI.js +2 -2
  299. package/build/dist/Server/API/IncidentAPI.js.map +1 -1
  300. package/build/dist/Server/API/IncidentEpisodeAPI.js +1 -1
  301. package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -1
  302. package/build/dist/Server/API/NotificationAPI.js +1 -1
  303. package/build/dist/Server/API/NotificationAPI.js.map +1 -1
  304. package/build/dist/Server/API/OnCallCalendarAPI.js +1 -4
  305. package/build/dist/Server/API/OnCallCalendarAPI.js.map +1 -1
  306. package/build/dist/Server/API/OnCallDutyPolicyAPI.js +6 -0
  307. package/build/dist/Server/API/OnCallDutyPolicyAPI.js.map +1 -1
  308. package/build/dist/Server/API/OnCallReadinessAPI.js +4 -1
  309. package/build/dist/Server/API/OnCallReadinessAPI.js.map +1 -1
  310. package/build/dist/Server/API/OnCallScheduleTimelineAPI.js +494 -0
  311. package/build/dist/Server/API/OnCallScheduleTimelineAPI.js.map +1 -0
  312. package/build/dist/Server/API/ProjectAPI.js +1 -1
  313. package/build/dist/Server/API/ProjectAPI.js.map +1 -1
  314. package/build/dist/Server/API/ScheduledMaintenanceAPI.js +1 -1
  315. package/build/dist/Server/API/ScheduledMaintenanceAPI.js.map +1 -1
  316. package/build/dist/Server/API/StatusPageAPI.js +125 -33
  317. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  318. package/build/dist/Server/API/TeamMemberAPI.js +3 -3
  319. package/build/dist/Server/API/TeamMemberAPI.js.map +1 -1
  320. package/build/dist/Server/API/UserCallAPI.js +2 -2
  321. package/build/dist/Server/API/UserCallAPI.js.map +1 -1
  322. package/build/dist/Server/API/UserEmailAPI.js +2 -2
  323. package/build/dist/Server/API/UserEmailAPI.js.map +1 -1
  324. package/build/dist/Server/API/UserIncomingCallNumberAPI.js +2 -2
  325. package/build/dist/Server/API/UserIncomingCallNumberAPI.js.map +1 -1
  326. package/build/dist/Server/API/UserMicrosoftTeamsAPI.js +1 -1
  327. package/build/dist/Server/API/UserMicrosoftTeamsAPI.js.map +1 -1
  328. package/build/dist/Server/API/UserSlackAPI.js +1 -1
  329. package/build/dist/Server/API/UserSlackAPI.js.map +1 -1
  330. package/build/dist/Server/API/UserSmsAPI.js +2 -2
  331. package/build/dist/Server/API/UserSmsAPI.js.map +1 -1
  332. package/build/dist/Server/API/UserTotpAuthAPI.js +1 -1
  333. package/build/dist/Server/API/UserTotpAuthAPI.js.map +1 -1
  334. package/build/dist/Server/API/UserWebAuthnAPI.js +2 -2
  335. package/build/dist/Server/API/UserWebAuthnAPI.js.map +1 -1
  336. package/build/dist/Server/API/UserWebhookAPI.js +1 -1
  337. package/build/dist/Server/API/UserWebhookAPI.js.map +1 -1
  338. package/build/dist/Server/API/UserWhatsAppAPI.js +2 -2
  339. package/build/dist/Server/API/UserWhatsAppAPI.js.map +1 -1
  340. package/build/dist/Server/Middleware/MasterAdminAuthorization.js +11 -2
  341. package/build/dist/Server/Middleware/MasterAdminAuthorization.js.map +1 -1
  342. package/build/dist/Server/Middleware/UserAuthorization.js +64 -4
  343. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  344. package/build/dist/Server/Services/ApiKeyPermissionService.js +80 -4
  345. package/build/dist/Server/Services/ApiKeyPermissionService.js.map +1 -1
  346. package/build/dist/Server/Services/DatabaseService.js +171 -0
  347. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  348. package/build/dist/Server/Services/DetectionRuleService.js +4 -4
  349. package/build/dist/Server/Services/DetectionRuleService.js.map +1 -1
  350. package/build/dist/Server/Services/OnCallDutyPolicyChildService.js +170 -0
  351. package/build/dist/Server/Services/OnCallDutyPolicyChildService.js.map +1 -0
  352. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +2 -2
  353. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
  354. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +2 -2
  355. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
  356. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleTeamService.js +2 -2
  357. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleTeamService.js.map +1 -1
  358. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js +2 -2
  359. package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js.map +1 -1
  360. package/build/dist/Server/Services/PayAsYouGoBillingService.js +20 -27
  361. package/build/dist/Server/Services/PayAsYouGoBillingService.js.map +1 -1
  362. package/build/dist/Server/Services/ProjectService.js +17 -0
  363. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  364. package/build/dist/Server/Services/RumSessionPinService.js +180 -16
  365. package/build/dist/Server/Services/RumSessionPinService.js.map +1 -1
  366. package/build/dist/Server/Services/TeamPermissionService.js +89 -27
  367. package/build/dist/Server/Services/TeamPermissionService.js.map +1 -1
  368. package/build/dist/Server/Services/ThreatIntelFeedService.js +5 -4
  369. package/build/dist/Server/Services/ThreatIntelFeedService.js.map +1 -1
  370. package/build/dist/Server/Types/Database/Permissions/BasePermission.js +9 -6
  371. package/build/dist/Server/Types/Database/Permissions/BasePermission.js.map +1 -1
  372. package/build/dist/Server/Types/Database/Permissions/Index.js +60 -6
  373. package/build/dist/Server/Types/Database/Permissions/Index.js.map +1 -1
  374. package/build/dist/Server/Types/Database/Permissions/TablePermission.js +14 -13
  375. package/build/dist/Server/Types/Database/Permissions/TablePermission.js.map +1 -1
  376. package/build/dist/Server/Utils/AI/AIChatPrivacyFilter.js +7 -0
  377. package/build/dist/Server/Utils/AI/AIChatPrivacyFilter.js.map +1 -1
  378. package/build/dist/Server/Utils/AI/AIRunPrivacyFilter.js +7 -0
  379. package/build/dist/Server/Utils/AI/AIRunPrivacyFilter.js.map +1 -1
  380. package/build/dist/Server/Utils/MasterAdminPageAccess.js +39 -0
  381. package/build/dist/Server/Utils/MasterAdminPageAccess.js.map +1 -0
  382. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +3 -1
  383. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  384. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +3 -1
  385. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  386. package/build/dist/Server/Utils/Realtime.js +126 -37
  387. package/build/dist/Server/Utils/Realtime.js.map +1 -1
  388. package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js +7 -25
  389. package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js.map +1 -1
  390. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOpsSeverityRepair.js +127 -0
  391. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOpsSeverityRepair.js.map +1 -0
  392. package/build/dist/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.js +1 -1
  393. package/build/dist/Server/Utils/SecurityEvent/Sigma/SigmaClickhouseCompiler.js.map +1 -1
  394. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js +3 -2
  395. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js.map +1 -1
  396. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js +4 -8
  397. package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js.map +1 -1
  398. package/build/dist/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.js +31 -1
  399. package/build/dist/Types/BaseDatabase/DatabaseCommonInteractionPropsUtil.js.map +1 -1
  400. package/build/dist/Types/OnCallDutyPolicy/ScheduleTimeline.js +321 -0
  401. package/build/dist/Types/OnCallDutyPolicy/ScheduleTimeline.js.map +1 -0
  402. package/build/dist/Types/OnCallDutyPolicy/ScheduleTimelineLayout.js +372 -0
  403. package/build/dist/Types/OnCallDutyPolicy/ScheduleTimelineLayout.js.map +1 -0
  404. package/build/dist/Types/Realtime/EventName.js +10 -0
  405. package/build/dist/Types/Realtime/EventName.js.map +1 -1
  406. package/build/dist/Types/SecurityEvent/DetectionFindingConstants.js +11 -0
  407. package/build/dist/Types/SecurityEvent/DetectionFindingConstants.js.map +1 -1
  408. package/build/dist/Types/SecurityEvent/OcsfSeverity.js +30 -25
  409. package/build/dist/Types/SecurityEvent/OcsfSeverity.js.map +1 -1
  410. package/build/dist/Types/SecurityEvent/SigmaRule.js +47 -0
  411. package/build/dist/Types/SecurityEvent/SigmaRule.js.map +1 -1
  412. package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js +14 -0
  413. package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js.map +1 -1
  414. package/build/dist/UI/Components/AttachmentList/EventAttachmentList.js +9 -4
  415. package/build/dist/UI/Components/AttachmentList/EventAttachmentList.js.map +1 -1
  416. package/build/dist/UI/Components/Dashboard/DashboardVariableControl.js +10 -2
  417. package/build/dist/UI/Components/Dashboard/DashboardVariableControl.js.map +1 -1
  418. package/build/dist/UI/Components/Dropdown/Dropdown.js +5 -1
  419. package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
  420. package/build/dist/UI/Components/EditionLabel/EditionLabel.js +11 -0
  421. package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
  422. package/build/dist/UI/Components/EventItem/EventItem.js +2 -2
  423. package/build/dist/UI/Components/EventItem/EventItem.js.map +1 -1
  424. package/build/dist/UI/Components/Forms/BasicForm.js +70 -64
  425. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  426. package/build/dist/UI/Components/Forms/CollapsibleFormSection.js +27 -0
  427. package/build/dist/UI/Components/Forms/CollapsibleFormSection.js.map +1 -0
  428. package/build/dist/UI/Components/Forms/Fields/FormField.js +10 -7
  429. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  430. package/build/dist/UI/Components/Forms/FormSummary.js +7 -0
  431. package/build/dist/UI/Components/Forms/FormSummary.js.map +1 -1
  432. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +2 -1
  433. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  434. package/build/dist/UI/Components/Markdown.tsx/SessionAwareImage.js +84 -0
  435. package/build/dist/UI/Components/Markdown.tsx/SessionAwareImage.js.map +1 -0
  436. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +14 -1
  437. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  438. package/build/dist/UI/Components/ModelTable/TableView.js +1 -1
  439. package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -1
  440. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +8 -1
  441. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
  442. package/build/dist/UI/Components/Tooltip/Tooltip.js +2 -1
  443. package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
  444. package/build/dist/UI/Utils/API/API.js +143 -19
  445. package/build/dist/UI/Utils/API/API.js.map +1 -1
  446. package/build/dist/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.js +21 -7
  447. package/build/dist/UI/Utils/AnalyticsModelAPI/AnalyticsModelAPI.js.map +1 -1
  448. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +26 -9
  449. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
  450. package/build/dist/UI/Utils/Navigation.js +8 -0
  451. package/build/dist/UI/Utils/Navigation.js.map +1 -1
  452. package/build/dist/UI/Utils/OpenAuthenticatedUrl.js +92 -0
  453. package/build/dist/UI/Utils/OpenAuthenticatedUrl.js.map +1 -0
  454. package/build/dist/UI/Utils/Realtime.js +120 -15
  455. package/build/dist/UI/Utils/Realtime.js.map +1 -1
  456. package/build/dist/Utils/API.js +13 -5
  457. package/build/dist/Utils/API.js.map +1 -1
  458. package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js +123 -6
  459. package/build/dist/Utils/SecurityEvent/GoogleSecOpsAlertNormalizer.js.map +1 -1
  460. package/build/dist/Utils/SecurityEvent/Sigma/SigmaRuleParser.js +4 -18
  461. package/build/dist/Utils/SecurityEvent/Sigma/SigmaRuleParser.js.map +1 -1
  462. package/build/dist/Utils/Slo/SloBurnRateTemplate.js +2 -2
  463. package/package.json +1 -1
@@ -7,13 +7,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
+ import ModelPermission from "../Types/Database/Permissions/Index";
11
+ import QueryHelper from "../Types/Database/QueryHelper";
10
12
  import AccessTokenService from "./AccessTokenService";
11
13
  import DatabaseService from "./DatabaseService";
12
14
  import TeamMemberService from "./TeamMemberService";
13
15
  import TeamService from "./TeamService";
14
16
  import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
15
17
  import DatabaseCommonInteractionPropsUtil, { PermissionType, } from "../../Types/BaseDatabase/DatabaseCommonInteractionPropsUtil";
16
- import LIMIT_MAX, { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
18
+ import LIMIT_MAX from "../../Types/Database/LimitMax";
17
19
  import BadDataException from "../../Types/Exception/BadDataException";
18
20
  import NotAuthorizedException from "../../Types/Exception/NotAuthorizedException";
19
21
  import PermissionScope from "../../Types/Database/AccessControl/PermissionScope";
@@ -74,6 +76,7 @@ export class Service extends DatabaseService {
74
76
  return;
75
77
  }
76
78
  const callerPermissions = DatabaseCommonInteractionPropsUtil.getUserPermissions(data.props, PermissionType.Allow);
79
+ const callerBlocks = DatabaseCommonInteractionPropsUtil.getUserPermissions(data.props, PermissionType.Block);
77
80
  /*
78
81
  * ProjectOwner is the sole tenant-level delegation override. In
79
82
  * particular, ProjectAdmin is not a synonym for every project
@@ -83,8 +86,12 @@ export class Service extends DatabaseService {
83
86
  * scope comparison below, including ProjectAdmin.
84
87
  */
85
88
  if (callerPermissions.some((permission) => {
86
- return permission.permission === Permission.ProjectOwner;
87
- })) {
89
+ return (permission.permission === Permission.ProjectOwner &&
90
+ this.permissionCoversGrant(permission, PermissionScope.All, []));
91
+ }) &&
92
+ !callerBlocks.some((permission) => {
93
+ return permission.permission === Permission.ProjectOwner;
94
+ })) {
88
95
  return;
89
96
  }
90
97
  const targetLabelIds = data.labelIds || [];
@@ -95,7 +102,30 @@ export class Service extends DatabaseService {
95
102
  .some((permission) => {
96
103
  return this.permissionCoversGrant(permission, data.scope, targetLabelIds);
97
104
  });
98
- if (!canDelegate) {
105
+ const matchingBlocks = callerBlocks.filter((permission) => {
106
+ return permission.permission === data.permission;
107
+ });
108
+ const targetHasLabelScope = targetLabelIds.length > 0 &&
109
+ data.scope !== PermissionScope.All &&
110
+ data.scope !== PermissionScope.Owned;
111
+ const isBlocked = matchingBlocks.some((permission) => {
112
+ /*
113
+ * An unrestricted/Owned grant may include resources blocked from the
114
+ * caller. Ownership also cannot be transferred between principals.
115
+ */
116
+ if (!targetHasLabelScope ||
117
+ permission.scope === PermissionScope.All ||
118
+ permission.scope === PermissionScope.Owned ||
119
+ permission.labelIds.length === 0) {
120
+ return true;
121
+ }
122
+ return permission.labelIds.some((blockedLabelId) => {
123
+ return targetLabelIds.some((labelId) => {
124
+ return labelId.toString() === blockedLabelId.toString();
125
+ });
126
+ });
127
+ });
128
+ if (!canDelegate || isBlocked) {
99
129
  throw new NotAuthorizedException(`You cannot grant ${data.permission} because your own access does not include that permission at an equal or broader scope.`);
100
130
  }
101
131
  }
@@ -249,13 +279,26 @@ export class Service extends DatabaseService {
249
279
  }
250
280
  async onBeforeUpdate(updateBy) {
251
281
  var _a, _b;
252
- const teamPermissions = await this.findBy({
282
+ updateBy.query = await ModelPermission.checkUpdateQueryPermissions(Model, updateBy.query, updateBy.data, updateBy.props);
283
+ const selectedPermissions = await this.findAllBy({
253
284
  query: updateBy.query,
285
+ select: { _id: true },
286
+ skip: updateBy.skip,
287
+ limit: updateBy.limit,
288
+ props: { isRoot: true },
289
+ });
290
+ const selectedIds = selectedPermissions.map((row) => {
291
+ return row.id;
292
+ });
293
+ // Read complete labels independently of any relation filters in the query.
294
+ const teamPermissions = await this.findAllBy({
295
+ query: { _id: QueryHelper.any(selectedIds) },
254
296
  select: {
255
297
  _id: true,
256
298
  teamId: true,
257
299
  projectId: true,
258
300
  permission: true,
301
+ isBlockPermission: true,
259
302
  labels: {
260
303
  _id: true,
261
304
  },
@@ -264,8 +307,6 @@ export class Service extends DatabaseService {
264
307
  isPermissionsEditable: true,
265
308
  },
266
309
  },
267
- skip: 0,
268
- limit: LIMIT_MAX,
269
310
  props: {
270
311
  isRoot: true,
271
312
  },
@@ -287,6 +328,15 @@ export class Service extends DatabaseService {
287
328
  const requestedScope = typeof rawUpdateData.scope === "string"
288
329
  ? rawUpdateData.scope
289
330
  : permission.scope;
331
+ // Retargeting or narrowing a deny also removes its original restriction.
332
+ if (permission.isBlockPermission) {
333
+ this.assertCanGrantPermission({
334
+ permission: permission.permission,
335
+ labelIds: this.getLabelIds(permission.labels),
336
+ scope: permission.scope,
337
+ props: updateBy.props,
338
+ });
339
+ }
290
340
  this.assertCanGrantPermission({
291
341
  permission: requestedPermission,
292
342
  labelIds: this.getLabelIds(requestedLabels),
@@ -295,23 +345,7 @@ export class Service extends DatabaseService {
295
345
  });
296
346
  }
297
347
  if (updateBy.data.labels && updateBy.data.labels.length > 0) {
298
- const existingPermissions = await this.findBy({
299
- query: updateBy.query,
300
- select: {
301
- _id: true,
302
- labels: true,
303
- isBlockPermission: true,
304
- projectId: true,
305
- teamId: true,
306
- permission: true,
307
- },
308
- limit: LIMIT_PER_PROJECT,
309
- skip: 0,
310
- props: {
311
- isRoot: true,
312
- },
313
- });
314
- for (const alreadySavedPermission of existingPermissions) {
348
+ for (const alreadySavedPermission of teamPermissions) {
315
349
  // check if the
316
350
  const isBlockPermission = alreadySavedPermission.isBlockPermission || false;
317
351
  const existingPermission = await this.findOneBy({
@@ -341,6 +375,8 @@ export class Service extends DatabaseService {
341
375
  }
342
376
  }
343
377
  }
378
+ updateBy.query = Object.assign(Object.assign({}, updateBy.query), { _id: QueryHelper.any(selectedIds) });
379
+ updateBy.skip = 0;
344
380
  return { updateBy, carryForward: teamPermissions };
345
381
  }
346
382
  async onUpdateSuccess(onUpdate, _updatedItemIds) {
@@ -376,27 +412,53 @@ export class Service extends DatabaseService {
376
412
  }
377
413
  async onBeforeDelete(deleteBy) {
378
414
  var _a;
379
- const teamPermissions = await this.findBy({
415
+ // Scope the root lookup using the same delete authorization as the write.
416
+ deleteBy.query = await ModelPermission.checkDeleteQueryPermission(Model, deleteBy.query, deleteBy.props);
417
+ const selectedPermissions = await this.findAllBy({
380
418
  query: deleteBy.query,
419
+ select: { _id: true },
420
+ skip: deleteBy.skip,
421
+ limit: deleteBy.limit,
422
+ props: { isRoot: true },
423
+ });
424
+ const selectedIds = selectedPermissions.map((row) => {
425
+ return row.id;
426
+ });
427
+ const teamPermissions = await this.findAllBy({
428
+ query: { _id: QueryHelper.any(selectedIds) },
381
429
  select: {
382
430
  _id: true,
383
431
  teamId: true,
384
432
  projectId: true,
433
+ permission: true,
434
+ isBlockPermission: true,
435
+ labels: { _id: true },
436
+ scope: true,
385
437
  team: {
386
438
  isPermissionsEditable: true,
387
439
  },
388
440
  },
389
- skip: 0,
390
- limit: LIMIT_MAX,
391
441
  props: {
392
442
  isRoot: true,
393
443
  },
394
444
  });
395
445
  for (const permission of teamPermissions) {
446
+ this.assertProjectMatchesTenant(permission.projectId, deleteBy.props);
396
447
  if (!((_a = permission.team) === null || _a === void 0 ? void 0 : _a.isPermissionsEditable)) {
397
448
  throw new BadDataException("Permissions for this team is not deleteable. You can create a new team and add permissions to that team instead.");
398
449
  }
450
+ if (permission.isBlockPermission) {
451
+ this.assertCanGrantPermission({
452
+ permission: permission.permission,
453
+ labelIds: this.getLabelIds(permission.labels),
454
+ scope: permission.scope,
455
+ props: deleteBy.props,
456
+ });
457
+ }
399
458
  }
459
+ // Keep the write restricted to the page whose authority was checked.
460
+ deleteBy.query = Object.assign(Object.assign({}, deleteBy.query), { _id: QueryHelper.any(selectedIds) });
461
+ deleteBy.skip = 0;
400
462
  let teamMembers = [];
401
463
  for (const permission of teamPermissions) {
402
464
  const members = await TeamMemberService.findBy({
@@ -1 +1 @@
1
- {"version":3,"file":"TeamPermissionService.js","sourceRoot":"","sources":["../../../../Server/Services/TeamPermissionService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TeamPermissionService.js","sourceRoot":"","sources":["../../../../Server/Services/TeamPermissionService.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import DatabaseService from "./DatabaseService";
2
2
  import Model from "../../Models/DatabaseModels/ThreatIntelFeed";
3
3
  import BadDataException from "../../Types/Exception/BadDataException";
4
4
  import LIMIT_MAX from "../../Types/Database/LimitMax";
5
- import { THREAT_INTEL_MINIMUM_CONFIDENCE_MAX, THREAT_INTEL_MINIMUM_CONFIDENCE_MIN, } from "../../Types/SecurityEvent/ThreatIntelConstants";
5
+ import { THREAT_INTEL_MINIMUM_CONFIDENCE_MAX, THREAT_INTEL_MINIMUM_CONFIDENCE_MIN, THREAT_INTEL_POLL_INTERVAL_MAX_IN_MINUTES, THREAT_INTEL_POLL_INTERVAL_MIN_IN_MINUTES, } from "../../Types/SecurityEvent/ThreatIntelConstants";
6
6
  import TaxiiClient from "../Utils/SecurityEvent/ThreatIntel/TaxiiClient";
7
7
  export class Service extends DatabaseService {
8
8
  constructor() {
@@ -23,9 +23,10 @@ export class Service extends DatabaseService {
23
23
  }
24
24
  if (data.pollIntervalInMinutes !== undefined) {
25
25
  if (!Number.isInteger(data.pollIntervalInMinutes) ||
26
- data.pollIntervalInMinutes < 1 ||
27
- data.pollIntervalInMinutes > 1440) {
28
- throw new BadDataException("Poll interval must be a whole number of minutes between 1 and 1440.");
26
+ data.pollIntervalInMinutes <
27
+ THREAT_INTEL_POLL_INTERVAL_MIN_IN_MINUTES ||
28
+ data.pollIntervalInMinutes > THREAT_INTEL_POLL_INTERVAL_MAX_IN_MINUTES) {
29
+ throw new BadDataException(`Poll interval must be a whole number of minutes between ${THREAT_INTEL_POLL_INTERVAL_MIN_IN_MINUTES} and ${THREAT_INTEL_POLL_INTERVAL_MAX_IN_MINUTES}.`);
29
30
  }
30
31
  }
31
32
  if (data.minimumConfidence !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"ThreatIntelFeedService.js","sourceRoot":"","sources":["../../../../Server/Services/ThreatIntelFeedService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThreatIntelFeedService.js","sourceRoot":"","sources":["../../../../Server/Services/ThreatIntelFeedService.ts"],"names":[],"mappings":"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"}
@@ -41,14 +41,17 @@ export default class BasePermission {
41
41
  query = await TenantPermission.addTenantScopeToQuery(modelType, query, select, props, type);
42
42
  // add user scope if any
43
43
  query = await UserPermissions.addUserScopeToQuery(modelType, query, props);
44
- if (!props.isMultiTenantRequest) {
45
- // We will check for this permission in recursive function.
44
+ /*
45
+ * Only TenantPermission's per-project recursion returns an array of
46
+ * queries whose permissions have already been checked. The incoming
47
+ * query is copied into an ordinary object above, so a caller cannot
48
+ * supply this array. A multi-tenant request scoped to the current user
49
+ * (such as pending team invitations) still needs every check below.
50
+ */
51
+ if (!Array.isArray(query)) {
46
52
  // check model level permissions.
47
53
  TablePermission.checkTableLevelPermissions(modelType, props, type);
48
- /*
49
- * We will check for this permission in recursive function.
50
- * check query permissions.
51
- */
54
+ // check query permissions.
52
55
  QueryPermission.checkQueryPermission(modelType, query, props);
53
56
  query = await AccessControlPermission.addAccessControlIdsToQuery(modelType, query, select, props, type);
54
57
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"BasePermission.js","sourceRoot":"","sources":["../../../../../../Server/Types/Database/Permissions/BasePermission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BasePermission.js","sourceRoot":"","sources":["../../../../../../Server/Types/Database/Permissions/BasePermission.ts"],"names":[],"mappings":"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"}
@@ -12,25 +12,79 @@ import CreatePermission from "./CreatePermission";
12
12
  import DeletePermission from "./DeletePermission";
13
13
  import ReadPermission from "./ReadPermission";
14
14
  import UpdatePermission from "./UpdatePermission";
15
+ import DatabaseCommonInteractionPropsUtil from "../../../../Types/BaseDatabase/DatabaseCommonInteractionPropsUtil";
16
+ import NotAuthenticatedException from "../../../../Types/Exception/NotAuthenticatedException";
17
+ import NotAuthorizedException from "../../../../Types/Exception/NotAuthorizedException";
15
18
  import CaptureSpan from "../../../Utils/Telemetry/CaptureSpan";
16
19
  export default class ModelPermission {
20
+ /*
21
+ * A refusal of a caller with no credentials at all is a 401.
22
+ *
23
+ * The login check near the top of every permission check passes an
24
+ * anonymous caller straight through on models that are readable (or
25
+ * creatable) by Public - Probe, AIAgent, LlmProvider and friends - and the
26
+ * column, select and query checks that follow then refuse it with 422
27
+ * NotAuthorizedException. For the dashboard that caller is a signed-in user
28
+ * whose access-token cookie expired, and only a 401 makes the browser client
29
+ * refresh the session and replay the request. Callers with credentials keep
30
+ * the 422 they always got; the message is kept either way.
31
+ */
32
+ static toAnonymousRefusal(error, props) {
33
+ if (error instanceof NotAuthorizedException &&
34
+ !props.isRoot &&
35
+ !props.isMasterAdmin &&
36
+ DatabaseCommonInteractionPropsUtil.isAnonymous(props)) {
37
+ return new NotAuthenticatedException(error.message);
38
+ }
39
+ return error;
40
+ }
17
41
  static async checkDeletePermissionByModel(data) {
18
- return DeletePermission.checkDeletePermissionByModel(data);
42
+ try {
43
+ return await DeletePermission.checkDeletePermissionByModel(data);
44
+ }
45
+ catch (error) {
46
+ throw ModelPermission.toAnonymousRefusal(error, data.props);
47
+ }
19
48
  }
20
49
  static async checkUpdatePermissionByModel(data) {
21
- return UpdatePermission.checkUpdatePermissionByModel(data);
50
+ try {
51
+ return await UpdatePermission.checkUpdatePermissionByModel(data);
52
+ }
53
+ catch (error) {
54
+ throw ModelPermission.toAnonymousRefusal(error, data.props);
55
+ }
22
56
  }
23
57
  static async checkDeleteQueryPermission(modelType, query, props) {
24
- return DeletePermission.checkDeletePermission(modelType, query, props);
58
+ try {
59
+ return await DeletePermission.checkDeletePermission(modelType, query, props);
60
+ }
61
+ catch (error) {
62
+ throw ModelPermission.toAnonymousRefusal(error, props);
63
+ }
25
64
  }
26
65
  static async checkUpdateQueryPermissions(modelType, query, data, props) {
27
- return UpdatePermission.checkUpdatePermissions(modelType, query, data, props);
66
+ try {
67
+ return await UpdatePermission.checkUpdatePermissions(modelType, query, data, props);
68
+ }
69
+ catch (error) {
70
+ throw ModelPermission.toAnonymousRefusal(error, props);
71
+ }
28
72
  }
29
73
  static checkCreatePermissions(modelType, data, props) {
30
- return CreatePermission.checkCreatePermissions(modelType, data, props);
74
+ try {
75
+ return CreatePermission.checkCreatePermissions(modelType, data, props);
76
+ }
77
+ catch (error) {
78
+ throw ModelPermission.toAnonymousRefusal(error, props);
79
+ }
31
80
  }
32
81
  static async checkReadQueryPermission(modelType, query, select, props) {
33
- return ReadPermission.checkReadPermission(modelType, query, select, props);
82
+ try {
83
+ return await ReadPermission.checkReadPermission(modelType, query, select, props);
84
+ }
85
+ catch (error) {
86
+ throw ModelPermission.toAnonymousRefusal(error, props);
87
+ }
34
88
  }
35
89
  }
36
90
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../../../Server/Types/Database/Permissions/Index.ts"],"names":[],"mappings":";;;;;;;;;;AAGA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,cAA2C,MAAM,kBAAkB,CAAC;AAC3E,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAGlD,OAAO,WAAW,MAAM,sCAAsC,CAAC;AAE/D,MAAM,CAAC,OAAO,OAAO,eAAe;IAEd,AAAb,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAE9C,IAID;QACC,OAAO,gBAAgB,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAE9C,IAID;QACC,OAAO,gBAAgB,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAC5C,SAAiC,EACjC,KAAwB,EACxB,KAAqC;QAErC,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAC7C,SAAiC,EACjC,KAAwB,EACxB,IAAwC,EACxC,KAAqC;QAErC,OAAO,gBAAgB,CAAC,sBAAsB,CAC5C,SAAS,EACT,KAAK,EACL,IAAI,EACJ,KAAK,CACN,CAAC;IACJ,CAAC;IAGa,AAAP,MAAM,CAAC,sBAAsB,CAClC,SAAiC,EACjC,IAAgB,EAChB,KAAqC;QAErC,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAGmB,AAAb,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAC1C,SAAiC,EACjC,KAAwB,EACxB,MAAiC,EACjC,KAAqC;QAErC,OAAO,cAAc,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;CACF;AA/DqB;IADnB,WAAW,EAAE;;;;yDASb;AAGmB;IADnB,WAAW,EAAE;;;;yDASb;AAGmB;IADnB,WAAW,EAAE;;;;uDAOb;AAGmB;IADnB,WAAW,EAAE;;;;wDAab;AAGa;IADb,WAAW,EAAE;;iEAGN,UAAU,oBAAV,UAAU;;mDAIjB;AAGmB;IADnB,WAAW,EAAE;;;;qDAQb"}
1
+ {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../../../Server/Types/Database/Permissions/Index.ts"],"names":[],"mappings":"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"}
@@ -97,19 +97,20 @@ export default class TablePermission {
97
97
  // 2nd CHECK: Does user have access to CRUD data on this model.
98
98
  const userPermissions = DatabaseCommonInteractionPropsUtil.getUserPermissions(props, PermissionType.Block);
99
99
  const modelPermissions = TablePermission.getTablePermission(modelType, type);
100
- const intersectingPermissions = PermissionHelper.getIntersectingPermissions(userPermissions.map((userPermission) => {
101
- return userPermission.permission;
102
- }) || [], modelPermissions);
103
- if (intersectingPermissions && intersectingPermissions.length > 0) {
104
- for (const permission of intersectingPermissions) {
105
- const userPermission = userPermissions.find((userPermission) => {
106
- return userPermission.permission === permission;
107
- });
108
- if (userPermission &&
109
- (!userPermission.labelIds || userPermission.labelIds.length === 0)) {
110
- throw new NotAuthorizedException(`You are not authorized to ${type} ${new modelType().singularName} because ${userPermission.permission} is in your team's permission block list.`);
111
- }
112
- }
100
+ /*
101
+ * The user gets one block row per TeamPermission across all of their
102
+ * teams, unmerged and unordered, so the same permission can be blocked
103
+ * both for some labels and for the whole table. A row without labels
104
+ * blocks the whole table and must win whichever row comes first:
105
+ * ReadPermission and AccessControlPermission only enforce the labelled
106
+ * rows, so an unlabelled row missed here is enforced nowhere.
107
+ */
108
+ const tableWideBlock = userPermissions.find((userPermission) => {
109
+ return (modelPermissions.includes(userPermission.permission) &&
110
+ (!userPermission.labelIds || userPermission.labelIds.length === 0));
111
+ });
112
+ if (tableWideBlock) {
113
+ throw new NotAuthorizedException(`You are not authorized to ${type} ${new modelType().singularName} because ${tableWideBlock.permission} is in your team's permission block list.`);
113
114
  }
114
115
  }
115
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TablePermission.js","sourceRoot":"","sources":["../../../../../../Server/Types/Database/Permissions/TablePermission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TablePermission.js","sourceRoot":"","sources":["../../../../../../Server/Types/Database/Permissions/TablePermission.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,mBAAmB,MAAM,wCAAwC,CAAC;AACzE,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AACrD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAKlD,OAAO,kCAAkC,EAAE,EACzC,cAAc,GACf,MAAM,mEAAmE,CAAC;AAC3E,OAAO,sBAAsB,MAAM,oDAAoD,CAAC;AACxF,OAAO,WAAW,MAAM,sCAAsC,CAAC;AAC/D,OAAO,UAAU,EAAE,EACjB,gBAAgB,GAEjB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,CAAC,OAAO,OAAO,eAAe;IAEpB,AAAP,MAAM,CAAC,kBAAkB,CAC9B,SAAgC,EAChC,IAAyB;QAEzB,IAAI,gBAAgB,GAAsB,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAc,IAAI,SAAS,EAAE,CAAC;QAEzC,IAAI,IAAI,KAAK,mBAAmB,CAAC,MAAM,EAAE,CAAC;YACxC,gBAAgB,GAAG,KAAK,CAAC,uBAAuB,CAAC;QACnD,CAAC;QAED,IAAI,IAAI,KAAK,mBAAmB,CAAC,MAAM,EAAE,CAAC;YACxC,gBAAgB,GAAG,KAAK,CAAC,uBAAuB,CAAC;QACnD,CAAC;QAED,IAAI,IAAI,KAAK,mBAAmB,CAAC,MAAM,EAAE,CAAC;YACxC,gBAAgB,GAAG,KAAK,CAAC,uBAAuB,CAAC;QACnD,CAAC;QAED,IAAI,IAAI,KAAK,mBAAmB,CAAC,IAAI,EAAE,CAAC;YACtC,gBAAgB,GAAG,KAAK,CAAC,qBAAqB,CAAC;QACjD,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAGa,AAAP,MAAM,CAAC,0BAA0B,CACtC,SAAgC,EAChC,KAAqC,EACrC,IAAyB;QAEzB,uFAAuF;QACvF,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE/D,8CAA8C;QAC9C,kBAAkB,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEnE;;;WAGG;QACH,kBAAkB,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE7D,+DAA+D;QAC/D,MAAM,eAAe,GACnB,kCAAkC,CAAC,kBAAkB,CACnD,KAAK,EACL,cAAc,CAAC,KAAK,CACrB,CAAC;QAEJ,MAAM,gBAAgB,GACpB,eAAe,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEtD,MAAM,yBAAyB,GAC7B,eAAe,CAAC,4BAA4B,CAC1C,SAAS,EACT,gBAAgB,EAChB,IAAI,CACL,CAAC;QAEJ,IACE,CAAC,gBAAgB,CAAC,wBAAwB,CACxC,eAAe,CAAC,GAAG,CAAC,CAAC,cAA8B,EAAE,EAAE;YACrD,OAAO,cAAc,CAAC,UAAU,CAAC;QACnC,CAAC,CAAC,IAAI,EAAE,EACR,yBAAyB,CAC1B,EACD,CAAC;YACD,MAAM,WAAW,GACf,gBAAgB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;YAEzD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,sBAAsB,CAC9B,GAAG,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC,YAAY,kBAAkB,CAC7D,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,sBAAsB,CAC9B,kCAAkC,IAAI,IACpC,IAAI,SAAS,EAAE,CAAC,YAClB,wCAAwC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,MAAM,CAAC,4BAA4B,CACzC,SAAgC,EAChC,gBAAmC,EACnC,IAAyB;QAEzB,MAAM,SAAS,GAAsB,CAAC,GAAG,gBAAgB,CAAC,CAAC;QAE3D,MAAM,KAAK,GAAc,IAAI,SAAS,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAChC,MAAM,QAAQ,GACZ,eAAe,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9C,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,iCAAiC,CAC9C,IAAyB;QAEzB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,mBAAmB,CAAC,IAAI;gBAC3B,OAAO,UAAU,CAAC,2BAA2B,CAAC;YAChD,KAAK,mBAAmB,CAAC,MAAM;gBAC7B,OAAO,UAAU,CAAC,2BAA2B,CAAC;YAChD,KAAK,mBAAmB,CAAC,MAAM;gBAC7B,OAAO,UAAU,CAAC,6BAA6B,CAAC;YAClD,KAAK,mBAAmB,CAAC,MAAM;gBAC7B,OAAO,UAAU,CAAC,6BAA6B,CAAC;YAClD;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAGa,AAAP,MAAM,CAAC,+BAA+B,CAC3C,SAAgC,EAChC,KAAqC,EACrC,IAAyB;QAEzB,uFAAuF;QACvF,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE/D,+DAA+D;QAC/D,MAAM,eAAe,GACnB,kCAAkC,CAAC,kBAAkB,CACnD,KAAK,EACL,cAAc,CAAC,KAAK,CACrB,CAAC;QAEJ,MAAM,gBAAgB,GACpB,eAAe,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEtD;;;;;;;WAOG;QACH,MAAM,cAAc,GAA+B,eAAe,CAAC,IAAI,CACrE,CAAC,cAA8B,EAAE,EAAE;YACjC,OAAO,CACL,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC;gBACpD,CAAC,CAAC,cAAc,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CACnE,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,IAAI,sBAAsB,CAC9B,6BAA6B,IAAI,IAC/B,IAAI,SAAS,EAAE,CAAC,YAClB,YACE,cAAc,CAAC,UACjB,2CAA2C,CAC5C,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAjLe;IADb,WAAW,EAAE;;;oCAIX,KAAK;+CAqBP;AAGa;IADb,WAAW,EAAE;;;;uDA0Db;AAgDa;IADb,WAAW,EAAE;;;;4DA6Cb"}
@@ -1,3 +1,4 @@
1
+ import DatabaseCommonInteractionPropsUtil from "../../../Types/BaseDatabase/DatabaseCommonInteractionPropsUtil";
1
2
  import NotAuthorizedException from "../../../Types/Exception/NotAuthorizedException";
2
3
  /*
3
4
  * AI conversations (and their messages, runs and run events) are personal to
@@ -9,6 +10,12 @@ export function pinQueryToRequestingUser(query, props, userColumnName) {
9
10
  if (props.isRoot || props.isMasterAdmin) {
10
11
  return query;
11
12
  }
13
+ /*
14
+ * No credentials at all is an expired session, not someone else's data:
15
+ * 401 so the client refreshes. The countBy overrides reach this before the
16
+ * permission layer's own login check does.
17
+ */
18
+ DatabaseCommonInteractionPropsUtil.assertCredentialsPresent(props);
12
19
  if (!props.userId) {
13
20
  throw new NotAuthorizedException("AI conversations are personal and can only be accessed by the user who created them.");
14
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AIChatPrivacyFilter.js","sourceRoot":"","sources":["../../../../../Server/Utils/AI/AIChatPrivacyFilter.ts"],"names":[],"mappings":"AACA,OAAO,sBAAsB,MAAM,iDAAiD,CAAC;AAErF;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAa,EACb,KAAqC,EACrC,cAAsB;IAEtB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,sBAAsB,CAC9B,sFAAsF,CACvF,CAAC;IACJ,CAAC;IAEA,KAAiC,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAElE,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"AIChatPrivacyFilter.js","sourceRoot":"","sources":["../../../../../Server/Utils/AI/AIChatPrivacyFilter.ts"],"names":[],"mappings":"AACA,OAAO,kCAAkC,MAAM,gEAAgE,CAAC;AAChH,OAAO,sBAAsB,MAAM,iDAAiD,CAAC;AAErF;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAa,EACb,KAAqC,EACrC,cAAsB;IAEtB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,kCAAkC,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAEnE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,sBAAsB,CAC9B,sFAAsF,CACvF,CAAC;IACJ,CAAC;IAEA,KAAiC,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAElE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,3 +1,4 @@
1
+ import DatabaseCommonInteractionPropsUtil from "../../../Types/BaseDatabase/DatabaseCommonInteractionPropsUtil";
1
2
  import NotAuthorizedException from "../../../Types/Exception/NotAuthorizedException";
2
3
  import AIRunType from "../../../Types/AI/AIRunType";
3
4
  import Text from "../../../Types/Text";
@@ -51,6 +52,12 @@ export function getAIRunPrivacyRaw(props) {
51
52
  * /ai-run nor /code-fix-run grants today. That is a separate product
52
53
  * decision and must not ride in as a side effect of this filter.
53
54
  */
55
+ /*
56
+ * No credentials at all is an expired session, not someone else's data:
57
+ * 401 so the client refreshes. The countBy overrides reach this before the
58
+ * permission layer's own login check does.
59
+ */
60
+ DatabaseCommonInteractionPropsUtil.assertCredentialsPresent(props);
54
61
  if (!props.userId) {
55
62
  throw new NotAuthorizedException("AI runs are personal and can only be accessed by the user who created them.");
56
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AIRunPrivacyFilter.js","sourceRoot":"","sources":["../../../../../Server/Utils/AI/AIRunPrivacyFilter.ts"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,MAAM,iDAAiD,CAAC;AACrF,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,IAAI,MAAM,qBAAqB,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAqC;IAErC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,sBAAsB,CAC9B,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAW,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACpE,MAAM,UAAU,GAAW,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAEtE,OAAO,GAAG,CACR,CAAC,KAAa,EAAU,EAAE;QACxB,OAAO,IAAI,KAAK,OAAO,UAAU,2BAA2B,SAAS,GAAG,CAAC;IAC3E,CAAC,EACD;QACE,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,OAAO;QAC/B,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;KACrC,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,KAAqC;IAErC,MAAM,SAAS,GACb,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE5B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,OAAO,EAAE,SAAS,EAAuB,CAAC;IACrD,CAAC;IAEA,KAAa,CAAC,OAAO,GAAG,wBAAwB,CAC9C,KAAa,CAAC,OAAO,EACtB,SAAS,CACV,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"AIRunPrivacyFilter.js","sourceRoot":"","sources":["../../../../../Server/Utils/AI/AIRunPrivacyFilter.ts"],"names":[],"mappings":"AACA,OAAO,kCAAkC,MAAM,gEAAgE,CAAC;AAEhH,OAAO,sBAAsB,MAAM,iDAAiD,CAAC;AACrF,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,IAAI,MAAM,qBAAqB,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAqC;IAErC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH;;;;OAIG;IACH,kCAAkC,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAEnE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,sBAAsB,CAC9B,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAW,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACpE,MAAM,UAAU,GAAW,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAEtE,OAAO,GAAG,CACR,CAAC,KAAa,EAAU,EAAE;QACxB,OAAO,IAAI,KAAK,OAAO,UAAU,2BAA2B,SAAS,GAAG,CAAC;IAC3E,CAAC,EACD;QACE,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,OAAO;QAC/B,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;KACrC,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAa,EACb,KAAqC;IAErC,MAAM,SAAS,GACb,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAE5B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,OAAO,EAAE,SAAS,EAAuB,CAAC;IACrD,CAAC;IAEA,KAAa,CAAC,OAAO,GAAG,wBAAwB,CAC9C,KAAa,CAAC,OAAO,EACtB,SAAS,CACV,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,39 @@
1
+ import UserMiddleware from "../Middleware/UserAuthorization";
2
+ import JSONWebToken from "./JsonWebToken";
3
+ import logger from "./Logger";
4
+ import Response from "./Response";
5
+ import NotAuthorizedException from "../../Types/Exception/NotAuthorizedException";
6
+ export const NOT_A_MASTER_ADMIN_MESSAGE = "Unauthorized: Only master admins can access the admin dashboard.";
7
+ /*
8
+ * Gate for the Admin Dashboard's index page (the HTML shell, not its APIs).
9
+ *
10
+ * It refuses only a caller it can positively identify as NOT a master admin.
11
+ * A missing access token, or one that no longer decodes, is served the shell:
12
+ * the access-token cookie expires with the JWT inside it, so an admin who
13
+ * reloads a tab left open past the token lifetime arrives here with no token
14
+ * at all, and answering that with a 422 JSON page meant the app never loaded
15
+ * and so never got to refresh the session. The shell holds nothing the public
16
+ * static bundle does not; once it loads, the SPA sends a signed-out visitor to
17
+ * the login page, and every admin API it calls refreshes an expired session
18
+ * (or answers 401) on its own.
19
+ */
20
+ export const ensureMasterAdminPageAccess = async (data) => {
21
+ const accessToken = UserMiddleware.getAccessTokenFromExpressRequest(data.req);
22
+ if (!accessToken) {
23
+ return {};
24
+ }
25
+ let authData;
26
+ try {
27
+ authData = JSONWebToken.decode(accessToken);
28
+ }
29
+ catch (error) {
30
+ // Expired or unreadable: let the app load and refresh it.
31
+ logger.debug(error, { service: data.service });
32
+ return {};
33
+ }
34
+ if (!authData.isMasterAdmin) {
35
+ Response.sendErrorResponse(data.req, data.res, new NotAuthorizedException(NOT_A_MASTER_ADMIN_MESSAGE));
36
+ }
37
+ return {};
38
+ };
39
+ //# sourceMappingURL=MasterAdminPageAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MasterAdminPageAccess.js","sourceRoot":"","sources":["../../../../Server/Utils/MasterAdminPageAccess.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAE7D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,sBAAsB,MAAM,8CAA8C,CAAC;AAIlF,MAAM,CAAC,MAAM,0BAA0B,GACrC,kEAAkE,CAAC;AAErE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAIZ,KAAK,EAAE,IAIlC,EAAuB,EAAE;IACxB,MAAM,WAAW,GACf,cAAc,CAAC,gCAAgC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE5D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,QAA0B,CAAC;IAE/B,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0DAA0D;QAC1D,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC5B,QAAQ,CAAC,iBAAiB,CACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,GAAG,EACR,IAAI,sBAAsB,CAAC,0BAA0B,CAAC,CACvD,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC"}