@oneuptime/common 13.0.8 → 14.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/Models/AnalyticsModels/AuditLog.ts +23 -15
  2. package/Models/DatabaseModels/GlobalConfig.ts +24 -0
  3. package/Models/DatabaseModels/Index.ts +4 -0
  4. package/Models/DatabaseModels/Monitor.ts +3 -2
  5. package/Models/DatabaseModels/MonitorTemplate.ts +2 -1
  6. package/Models/DatabaseModels/ServiceLevelObjectiveFeed.ts +2 -0
  7. package/Models/DatabaseModels/ServiceLevelObjectiveLabelRule.ts +522 -0
  8. package/Models/DatabaseModels/ServiceLevelObjectiveMonitorRule.ts +38 -4
  9. package/Models/DatabaseModels/ServiceLevelObjectiveOwnerRule.ts +603 -0
  10. package/Scripts/generate-service-worker.js +65 -4
  11. package/Server/API/BaseAPI.ts +26 -5
  12. package/Server/API/GlobalConfigAPI.ts +228 -462
  13. package/Server/API/ProjectOIDC.ts +25 -16
  14. package/Server/API/ProjectSSO.ts +24 -16
  15. package/Server/API/StatusPageAPI.ts +100 -42
  16. package/Server/API/TeamMemberAPI.ts +10 -1
  17. package/Server/Enterprise/EnterpriseEdition.ts +649 -0
  18. package/Server/Enterprise/EnterpriseFeature.ts +48 -0
  19. package/Server/Enterprise/EnterpriseLicenseSnapshot.ts +192 -0
  20. package/Server/Enterprise/EnterpriseServerModule.ts +233 -0
  21. package/Server/EnvironmentConfig.ts +147 -2
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1793900000000-AddEnterpriseEditionFirstSeenAt.ts +25 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1794100000000-AddSloLabelAndOwnerRules.ts +248 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1794200000000-AddSloMonitorRuleMonitorType.ts +19 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
  26. package/Server/Middleware/UserAuthorization.ts +38 -16
  27. package/Server/Services/AuditLogService.ts +84 -1079
  28. package/Server/Services/DatabaseService.ts +10 -0
  29. package/Server/Services/EnterpriseLicenseService.ts +38 -0
  30. package/Server/Services/GlobalConfigService.ts +80 -1
  31. package/Server/Services/Index.ts +4 -0
  32. package/Server/Services/MonitorProbeService.ts +116 -20
  33. package/Server/Services/MonitorService.ts +59 -6
  34. package/Server/Services/MonitorStatusTimelineService.ts +284 -0
  35. package/Server/Services/MonitorTemplateService.ts +26 -0
  36. package/Server/Services/ProjectService.ts +284 -0
  37. package/Server/Services/RumSessionPinService.ts +25 -6
  38. package/Server/Services/ServiceLevelObjectiveLabelRuleEngineService.ts +385 -0
  39. package/Server/Services/ServiceLevelObjectiveLabelRuleService.ts +51 -0
  40. package/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.ts +92 -16
  41. package/Server/Services/ServiceLevelObjectiveMonitorRuleService.ts +36 -1
  42. package/Server/Services/ServiceLevelObjectiveOwnerRuleEngineService.ts +521 -0
  43. package/Server/Services/ServiceLevelObjectiveOwnerRuleService.ts +51 -0
  44. package/Server/Services/ServiceLevelObjectiveService.ts +28 -0
  45. package/Server/Services/StatusPagePrivateUserService.ts +7 -3
  46. package/Server/Services/StatusPageService.ts +78 -1
  47. package/Server/Services/TeamMemberService.ts +11 -0
  48. package/Server/Services/TeamService.ts +10 -0
  49. package/Server/Services/UserService.ts +10 -17
  50. package/Server/Types/Database/Permissions/CreatePermission.ts +15 -0
  51. package/Server/Types/Database/Permissions/EditionPermission.ts +208 -18
  52. package/Server/Types/Database/Permissions/TablePermission.ts +10 -3
  53. package/Server/Types/Database/Permissions/UpdatePermission.ts +29 -0
  54. package/Server/Types/Markdown.ts +41 -0
  55. package/Server/Types/Workflow/Components/Telegram/SendMessageToChat.ts +27 -1
  56. package/Server/Utils/AI/Toolbox/SloTools.ts +1 -0
  57. package/Server/Utils/CommunityEditionSsoReport.ts +361 -0
  58. package/Server/Utils/EditionEnforcement.ts +233 -0
  59. package/Server/Utils/FrontendEnvironment.ts +41 -2
  60. package/Server/Utils/InstanceHealth/RedisHealth.ts +12 -277
  61. package/Server/Utils/Monitor/AffectedResourceList.ts +148 -0
  62. package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +1 -1
  63. package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +10 -1
  64. package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +1 -1
  65. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +720 -465
  66. package/Server/Utils/Monitor/MonitoringIntervalValidator.ts +116 -0
  67. package/Server/Utils/Monitor/RootCauseList.ts +139 -0
  68. package/Server/Utils/Rules/RuleRun/RuleRunRegistry.ts +28 -0
  69. package/Server/Utils/Slo/SloRulePatternValidator.ts +42 -0
  70. package/Server/Utils/Workspace/Slack/Slack.ts +423 -10
  71. package/Tests/App/Accounts/LoginPasskey.test.tsx +18 -0
  72. package/Tests/App/Accounts/LoginSsoEdition.test.tsx +616 -0
  73. package/Tests/App/AdminDashboard/AdminAuthenticationSsoEdition.test.tsx +217 -0
  74. package/Tests/App/AdminDashboard/AdminEnterprisePluginPage.test.tsx +357 -0
  75. package/Tests/App/AdminDashboard/EnterpriseLicensesShell.test.tsx +214 -0
  76. package/Tests/App/AdminDashboard/GlobalSSOEnterpriseShells.test.tsx +271 -0
  77. package/Tests/App/AdminDashboard/HealthShells.test.tsx +659 -0
  78. package/Tests/App/Dashboard/AuditLogsAndComplianceShells.test.tsx +572 -0
  79. package/Tests/App/Dashboard/EnterpriseFeatureUpgrade.test.tsx +547 -0
  80. package/Tests/App/Dashboard/EnterprisePluginPage.test.tsx +667 -0
  81. package/Tests/App/Dashboard/FeedFilterSortIntegration.test.tsx +1632 -0
  82. package/Tests/App/Dashboard/FeedOptionsLocales.test.ts +250 -0
  83. package/Tests/App/Dashboard/FeedOrdering.test.ts +279 -9
  84. package/Tests/App/Dashboard/IdentityEnterpriseShells.test.tsx +319 -0
  85. package/Tests/App/Dashboard/InvestigationFeedRefresh.test.tsx +60 -1
  86. package/Tests/App/Dashboard/InvestigationPanel.test.tsx +594 -3
  87. package/Tests/App/Dashboard/OnboardingSsoEmptyState.test.tsx +185 -0
  88. package/Tests/App/Dashboard/ProductOrientation.test.tsx +646 -0
  89. package/Tests/App/Dashboard/ResourceFeed.test.tsx +612 -2
  90. package/Tests/App/Dashboard/ResourceFeedPageWiring.test.ts +30 -0
  91. package/Tests/App/Dashboard/ResourceFeedPagesFilterSort.test.tsx +1202 -0
  92. package/Tests/App/Dashboard/ScheduledMaintenanceFeedRefresh.test.tsx +52 -1
  93. package/Tests/App/Dashboard/SecurityEventConnectionDiagnostics.test.tsx +45 -9
  94. package/Tests/App/Dashboard/SecurityEventDetailPanel.test.tsx +399 -0
  95. package/Tests/App/Dashboard/SecurityEventListRow.test.tsx +214 -0
  96. package/Tests/App/Dashboard/SecurityEventsEmptyState.test.tsx +1 -83
  97. package/Tests/App/Dashboard/SecurityEventsNavTabs.test.tsx +248 -0
  98. package/Tests/App/Dashboard/SecurityEventsViewer.test.tsx +1203 -0
  99. package/Tests/App/Dashboard/SloFeed.test.tsx +106 -1
  100. package/Tests/App/Dashboard/SloMonitorRuleCriteria.test.tsx +566 -0
  101. package/Tests/App/Dashboard/SloNavigationWiring.test.tsx +6 -4
  102. package/Tests/App/Dashboard/SloNoticeBanner.test.tsx +186 -0
  103. package/Tests/App/Dashboard/SloOverviewKpiStrip.test.tsx +388 -44
  104. package/Tests/App/Dashboard/SloOverviewLayout.test.tsx +613 -0
  105. package/Tests/App/Dashboard/UserEmailCallSites.test.tsx +11 -91
  106. package/Tests/App/StatusPage/StatusPageSsoEmptyState.test.tsx +319 -0
  107. package/Tests/Helpers/RefreshAwareApiScan.ts +757 -0
  108. package/Tests/Helpers/TenantScopedRequestScan.ts +515 -0
  109. package/Tests/Models/DatabaseModels/ResourceFeedModels.test.ts +0 -8
  110. package/Tests/Models/DatabaseModels/SloLabelAndOwnerRuleModels.test.ts +404 -0
  111. package/Tests/Models/DatabaseModels/SloOverhaulModels.test.ts +17 -1
  112. package/Tests/Models/DatabaseModels/StaticRuleCriteriaInheritance.test.ts +4 -2
  113. package/Tests/Scripts/GenerateServiceWorker.test.ts +931 -0
  114. package/Tests/Server/API/BaseAPICreateItemDoesNotMutateModel.test.ts +130 -0
  115. package/Tests/Server/API/GlobalConfigLicense.test.ts +742 -497
  116. package/Tests/Server/API/OnCallReadinessAPI.test.ts +35 -909
  117. package/Tests/Server/API/SsoProviderListingsEdition.test.ts +432 -0
  118. package/Tests/Server/API/TeamMemberLeaveScimLockEdition.test.ts +252 -0
  119. package/Tests/Server/Enterprise/EnterpriseEdition.test.ts +824 -0
  120. package/Tests/Server/Enterprise/EnterpriseFeatureActive.test.ts +643 -0
  121. package/Tests/Server/Enterprise/EnterpriseLicenseSnapshot.test.ts +294 -0
  122. package/Tests/Server/Enterprise/EnterpriseModelFeatureMap.test.ts +93 -0
  123. package/Tests/Server/Enterprise/EnterpriseOnlyModulesLiveInEe.test.ts +582 -0
  124. package/Tests/Server/Enterprise/EnterpriseServerModule.test.ts +247 -0
  125. package/Tests/Server/Enterprise/FakeEnterpriseModule.ts +502 -0
  126. package/Tests/Server/Enterprise/TestBillingFlag.ts +70 -0
  127. package/Tests/Server/EnvironmentConfigEnterpriseEdition.test.ts +314 -0
  128. package/Tests/Server/Infrastructure/ContainerBootConfiguration.test.ts +289 -0
  129. package/Tests/Server/Infrastructure/E2EClickHouseFixtureAccess.test.ts +5 -1
  130. package/Tests/Server/Infrastructure/Postgres/AddConfigurableRuleCriteriaMigration.test.ts +3 -0
  131. package/Tests/Server/Infrastructure/Postgres/AddSloLabelAndOwnerRulesMigration.test.ts +407 -0
  132. package/Tests/Server/Infrastructure/Postgres/AddSloMonitorRuleMonitorTypeMigration.test.ts +171 -0
  133. package/Tests/Server/Infrastructure/Postgres/SloProductOverhaulMigration.test.ts +88 -4
  134. package/Tests/Server/Middleware/UserAuthorization.test.ts +37 -2
  135. package/Tests/Server/Middleware/UserAuthorizationEditionEnforcement.test.ts +516 -0
  136. package/Tests/Server/Services/AuditLogService.test.ts +460 -990
  137. package/Tests/Server/Services/CreateAndReadResponsesKeepIds.test.ts +263 -0
  138. package/Tests/Server/Services/DatabaseServiceRuleCriteriaValidation.test.ts +104 -0
  139. package/Tests/Server/Services/EnterpriseLicenseServiceKeyGeneration.test.ts +151 -0
  140. package/Tests/Server/Services/GlobalConfigServiceLicenseColumns.test.ts +357 -0
  141. package/Tests/Server/Services/MonitorDestinationInfoIPv6.test.ts +101 -0
  142. package/Tests/Server/Services/MonitorProbeServiceIntervalScheduling.test.ts +333 -0
  143. package/Tests/Server/Services/MonitorStatusTimelineDailyAggregates.test.ts +303 -0
  144. package/Tests/Server/Services/ProjectServiceAuditLogLicense.test.ts +701 -0
  145. package/Tests/Server/Services/ProjectServiceAuditLogSettingsCache.test.ts +31 -35
  146. package/Tests/Server/Services/RuleRun/LabelRuleEnginesGroupBRun.test.ts +48 -1
  147. package/Tests/Server/Services/RuleRun/OwnerRuleEnginesGroupBRun.test.ts +30 -0
  148. package/Tests/Server/Services/ScimPushGroupsTeamLocksEdition.test.ts +431 -0
  149. package/Tests/Server/Services/ServiceLevelObjectiveLabelAndOwnerRuleEngines.test.ts +1170 -0
  150. package/Tests/Server/Services/ServiceLevelObjectiveLabelAndOwnerRuleServices.test.ts +172 -0
  151. package/Tests/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.test.ts +323 -0
  152. package/Tests/Server/Services/ServiceLevelObjectiveMonitorRuleService.test.ts +115 -0
  153. package/Tests/Server/Services/ServiceLevelObjectiveMonitorRuleTriggers.test.ts +21 -2
  154. package/Tests/Server/Services/ServiceLevelObjectiveMonitorTypePostgres.test.ts +480 -0
  155. package/Tests/Server/Services/ServiceLevelObjectiveService.test.ts +162 -0
  156. package/Tests/Server/Services/SsoRequirementReadMasking.test.ts +419 -0
  157. package/Tests/Server/Services/SsoRequirementWriteGuard.test.ts +769 -0
  158. package/Tests/Server/Services/StaticRuleCriteriaRuntimeCoverage.test.ts +45 -6
  159. package/Tests/Server/Services/StatusPagePrivateUserInvitationPolicy.test.ts +94 -0
  160. package/Tests/Server/Services/UserAuthenticationService.test.ts +35 -0
  161. package/Tests/Server/Services/UserServiceSeatLimit.test.ts +94 -56
  162. package/Tests/Server/Types/Database/FeedEventTypeFilterQuery.test.ts +745 -0
  163. package/Tests/Server/Types/Database/Permissions/EditionPermission.test.ts +1823 -0
  164. package/Tests/Server/Types/Markdown.test.ts +183 -1
  165. package/Tests/Server/Types/Workflow/Components/ApiComponentSsrf.test.ts +49 -0
  166. package/Tests/Server/Types/Workflow/Components/TelegramSendMessageToChat.test.ts +331 -0
  167. package/Tests/Server/Utils/AI/SloTools.test.ts +10 -0
  168. package/Tests/Server/Utils/CommunityEditionSsoReport.test.ts +565 -0
  169. package/Tests/Server/Utils/EditionEnforcement.test.ts +303 -0
  170. package/Tests/Server/Utils/FrontendEnvironment.test.ts +367 -0
  171. package/Tests/Server/Utils/InstanceHealth/RedisHealth.test.ts +38 -418
  172. package/Tests/Server/Utils/Monitor/AffectedResourceList.test.ts +518 -0
  173. package/Tests/Server/Utils/Monitor/Criteria/EvaluateOverTime.test.ts +24 -4
  174. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteriaAnomalyUnits.test.ts +1 -1
  175. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +1339 -96
  176. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorBreachingSamples.test.ts +1101 -0
  177. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorMetricUnits.test.ts +106 -80
  178. package/Tests/Server/Utils/Monitor/MonitoringIntervalValidator.test.ts +188 -0
  179. package/Tests/Server/Utils/Monitor/RootCauseList.test.ts +252 -0
  180. package/Tests/Server/Utils/Rules/RuleRun/RuleRunPermission.test.ts +154 -0
  181. package/Tests/Server/Utils/SSRFProtection.test.ts +111 -0
  182. package/Tests/Server/Utils/Slo/SloRulePatternValidator.test.ts +67 -0
  183. package/Tests/Server/Utils/VM/VMRunnerSsrf.test.ts +213 -0
  184. package/Tests/Server/Utils/Workspace/Slack/SlackMarkdownSectionSplit.test.ts +1209 -0
  185. package/Tests/Types/API/HostnameFromAuthority.test.ts +20 -10
  186. package/Tests/Types/API/HostnameIPv6.test.ts +149 -0
  187. package/Tests/Types/API/Route.test.ts +56 -0
  188. package/Tests/Types/API/URLSchemeLikePath.test.ts +304 -0
  189. package/Tests/Types/Database/CanonicalModelInstance.test.ts +190 -0
  190. package/Tests/UI/Components/EditionLabelLapseCopy.ts +104 -0
  191. package/Tests/UI/Components/EditionLabelLicenseManagerWiring.test.tsx +254 -0
  192. package/Tests/UI/Components/EditionLabelLicenseRefresh.test.tsx +84 -178
  193. package/Tests/UI/Components/EditionLabelLicenseStatus.test.tsx +1586 -0
  194. package/Tests/UI/Components/EditionLabelLicenseWritesGuard.test.tsx +157 -0
  195. package/Tests/UI/Components/FeedOptions.test.ts +1404 -0
  196. package/Tests/UI/Components/FeedOptionsButton.test.tsx +2603 -0
  197. package/Tests/UI/Components/Graphs/DayUptimeGraph.test.tsx +49 -2
  198. package/Tests/UI/Components/Icon.test.tsx +26 -0
  199. package/Tests/UI/Components/MarkdownConverters.test.ts +684 -0
  200. package/Tests/UI/Components/ModelListEmptyState.test.tsx +289 -0
  201. package/Tests/UI/Components/RuleCriteria/RuleCriteriaModelTable.test.tsx +3 -3
  202. package/Tests/UI/Components/TelemetryViewer/TelemetryViewerEmptyContent.test.tsx +131 -0
  203. package/Tests/UI/Components/useFeedItemsViewKey.test.tsx +1017 -0
  204. package/Tests/UI/Components/useFeedOptions.test.tsx +1107 -0
  205. package/Tests/UI/EsbuildEnterpriseAlias.test.ts +1127 -0
  206. package/Tests/Utils/HostAddressUtil.test.ts +138 -0
  207. package/Tests/Utils/LabelRuleImportExport.test.ts +102 -0
  208. package/Tests/Utils/Monitor/MonitorDestinationUtil.test.ts +313 -0
  209. package/Tests/Utils/Monitor/MonitoringIntervalUtil.test.ts +304 -0
  210. package/Tests/Utils/Slo/SloDuration.test.ts +115 -24
  211. package/Tests/Utils/Slo/SloHealth.test.ts +93 -10
  212. package/Tests/Utils/Slo/SloMonitorRuleCriteria.test.ts +109 -0
  213. package/Tests/Utils/Slo/SloOverviewText.test.ts +64 -0
  214. package/Tests/Utils/StatusPage/UptimeDailyAggregateUtil.test.ts +248 -0
  215. package/Types/API/Hostname.ts +63 -16
  216. package/Types/API/Route.ts +19 -2
  217. package/Types/API/URL.ts +26 -2
  218. package/Types/Database/AccessControl/ColumnAccessControl.ts +19 -7
  219. package/Types/Database/AccessControl/ColumnBillingAccessControl.ts +19 -7
  220. package/Types/Database/AccessControl/OwnerOnlyColumn.ts +15 -6
  221. package/Types/Database/CanonicalModelInstance.ts +102 -0
  222. package/Types/Database/TableColumn.ts +20 -6
  223. package/Types/EnterpriseLicense/EnterpriseLicensePeriods.ts +29 -0
  224. package/Types/IP/IPv6.ts +6 -1
  225. package/Types/Monitor/MetricMonitor/MetricCriteriaContext.ts +6 -5
  226. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +9 -0
  227. package/Types/Monitor/MonitorStep.ts +6 -1
  228. package/Types/Monitor/ProxmoxAlertTemplates.ts +1 -1
  229. package/Types/Permission.ts +90 -0
  230. package/Types/Rules/RuleCriteriaFieldRegistry.ts +11 -0
  231. package/Types/Rules/RuleRun.ts +4 -0
  232. package/Types/StatusPage/UptimeDailyAggregate.ts +110 -0
  233. package/UI/Components/EditionLabel/EditionLabel.tsx +796 -1195
  234. package/UI/Components/EditionLabel/LicenseManager.ts +119 -0
  235. package/UI/Components/Feed/FeedOptions.ts +427 -0
  236. package/UI/Components/Feed/FeedOptionsButton.tsx +692 -0
  237. package/UI/Components/Feed/useFeedItems.ts +28 -9
  238. package/UI/Components/Feed/useFeedOptions.ts +225 -0
  239. package/UI/Components/Graphs/DayUptimeGraph.tsx +123 -15
  240. package/UI/Components/Icon/Icon.tsx +1 -1
  241. package/UI/Components/Markdown.tsx/MarkdownConverters.ts +0 -0
  242. package/UI/Components/ModelList/ModelList.tsx +11 -1
  243. package/UI/Components/MonitorGraphs/Uptime.tsx +69 -0
  244. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +28 -12
  245. package/UI/esbuild-enterprise.js +263 -0
  246. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +7 -2
  247. package/Utils/HostAddressUtil.ts +94 -0
  248. package/Utils/LabelRuleImportExport.ts +27 -9
  249. package/Utils/Monitor/MetricValueFormatter.ts +2 -2
  250. package/Utils/Monitor/MonitorDestinationUtil.ts +157 -0
  251. package/Utils/Monitor/MonitoringIntervalUtil.ts +436 -0
  252. package/Utils/Rules/MonitorTypeRuleCriteria.ts +31 -0
  253. package/Utils/Slo/SloDuration.ts +22 -6
  254. package/Utils/Slo/SloHealth.ts +8 -7
  255. package/Utils/Slo/SloMonitorRuleCriteria.ts +33 -1
  256. package/Utils/Slo/SloOverviewText.ts +33 -0
  257. package/Utils/Slo/SloProjection.ts +4 -3
  258. package/Utils/StatusPage/UptimeDailyAggregateUtil.ts +192 -0
  259. package/build/dist/Models/AnalyticsModels/AuditLog.js +23 -15
  260. package/build/dist/Models/AnalyticsModels/AuditLog.js.map +1 -1
  261. package/build/dist/Models/DatabaseModels/GlobalConfig.js +25 -0
  262. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  263. package/build/dist/Models/DatabaseModels/Index.js +4 -0
  264. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  265. package/build/dist/Models/DatabaseModels/Monitor.js +2 -2
  266. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  267. package/build/dist/Models/DatabaseModels/MonitorTemplate.js +2 -1
  268. package/build/dist/Models/DatabaseModels/MonitorTemplate.js.map +1 -1
  269. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveFeed.js +2 -0
  270. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveFeed.js.map +1 -1
  271. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveLabelRule.js +530 -0
  272. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveLabelRule.js.map +1 -0
  273. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveMonitorRule.js +39 -4
  274. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveMonitorRule.js.map +1 -1
  275. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerRule.js +612 -0
  276. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerRule.js.map +1 -0
  277. package/build/dist/Server/API/BaseAPI.js +26 -5
  278. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  279. package/build/dist/Server/API/GlobalConfigAPI.js +148 -344
  280. package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
  281. package/build/dist/Server/API/ProjectOIDC.js +24 -16
  282. package/build/dist/Server/API/ProjectOIDC.js.map +1 -1
  283. package/build/dist/Server/API/ProjectSSO.js +24 -16
  284. package/build/dist/Server/API/ProjectSSO.js.map +1 -1
  285. package/build/dist/Server/API/StatusPageAPI.js +93 -43
  286. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  287. package/build/dist/Server/API/TeamMemberAPI.js +8 -1
  288. package/build/dist/Server/API/TeamMemberAPI.js.map +1 -1
  289. package/build/dist/Server/Enterprise/EnterpriseEdition.js +466 -0
  290. package/build/dist/Server/Enterprise/EnterpriseEdition.js.map +1 -0
  291. package/build/dist/Server/Enterprise/EnterpriseFeature.js +39 -0
  292. package/build/dist/Server/Enterprise/EnterpriseFeature.js.map +1 -0
  293. package/build/dist/Server/Enterprise/EnterpriseLicenseSnapshot.js +70 -0
  294. package/build/dist/Server/Enterprise/EnterpriseLicenseSnapshot.js.map +1 -0
  295. package/build/dist/Server/Enterprise/EnterpriseServerModule.js +84 -0
  296. package/build/dist/Server/Enterprise/EnterpriseServerModule.js.map +1 -0
  297. package/build/dist/Server/EnvironmentConfig.js +84 -2
  298. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  299. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793900000000-AddEnterpriseEditionFirstSeenAt.js +18 -0
  300. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793900000000-AddEnterpriseEditionFirstSeenAt.js.map +1 -0
  301. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1794100000000-AddSloLabelAndOwnerRules.js +93 -0
  302. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1794100000000-AddSloLabelAndOwnerRules.js.map +1 -0
  303. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1794200000000-AddSloMonitorRuleMonitorType.js +12 -0
  304. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1794200000000-AddSloMonitorRuleMonitorType.js.map +1 -0
  305. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
  306. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  307. package/build/dist/Server/Middleware/UserAuthorization.js +30 -11
  308. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  309. package/build/dist/Server/Services/AuditLogService.js +71 -740
  310. package/build/dist/Server/Services/AuditLogService.js.map +1 -1
  311. package/build/dist/Server/Services/DatabaseService.js +7 -0
  312. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  313. package/build/dist/Server/Services/EnterpriseLicenseService.js +34 -0
  314. package/build/dist/Server/Services/EnterpriseLicenseService.js.map +1 -1
  315. package/build/dist/Server/Services/GlobalConfigService.js +63 -0
  316. package/build/dist/Server/Services/GlobalConfigService.js.map +1 -1
  317. package/build/dist/Server/Services/Index.js +4 -0
  318. package/build/dist/Server/Services/Index.js.map +1 -1
  319. package/build/dist/Server/Services/MonitorProbeService.js +90 -17
  320. package/build/dist/Server/Services/MonitorProbeService.js.map +1 -1
  321. package/build/dist/Server/Services/MonitorService.js +48 -6
  322. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  323. package/build/dist/Server/Services/MonitorStatusTimelineService.js +242 -0
  324. package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
  325. package/build/dist/Server/Services/MonitorTemplateService.js +16 -0
  326. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  327. package/build/dist/Server/Services/ProjectService.js +214 -0
  328. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  329. package/build/dist/Server/Services/RumSessionPinService.js +24 -6
  330. package/build/dist/Server/Services/RumSessionPinService.js.map +1 -1
  331. package/build/dist/Server/Services/ServiceLevelObjectiveLabelRuleEngineService.js +295 -0
  332. package/build/dist/Server/Services/ServiceLevelObjectiveLabelRuleEngineService.js.map +1 -0
  333. package/build/dist/Server/Services/ServiceLevelObjectiveLabelRuleService.js +56 -0
  334. package/build/dist/Server/Services/ServiceLevelObjectiveLabelRuleService.js.map +1 -0
  335. package/build/dist/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.js +59 -14
  336. package/build/dist/Server/Services/ServiceLevelObjectiveMonitorRuleEngineService.js.map +1 -1
  337. package/build/dist/Server/Services/ServiceLevelObjectiveMonitorRuleService.js +22 -1
  338. package/build/dist/Server/Services/ServiceLevelObjectiveMonitorRuleService.js.map +1 -1
  339. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerRuleEngineService.js +400 -0
  340. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerRuleEngineService.js.map +1 -0
  341. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerRuleService.js +56 -0
  342. package/build/dist/Server/Services/ServiceLevelObjectiveOwnerRuleService.js.map +1 -0
  343. package/build/dist/Server/Services/ServiceLevelObjectiveService.js +21 -0
  344. package/build/dist/Server/Services/ServiceLevelObjectiveService.js.map +1 -1
  345. package/build/dist/Server/Services/StatusPagePrivateUserService.js +7 -3
  346. package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
  347. package/build/dist/Server/Services/StatusPageService.js +71 -0
  348. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  349. package/build/dist/Server/Services/TeamMemberService.js +10 -0
  350. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  351. package/build/dist/Server/Services/TeamService.js +9 -0
  352. package/build/dist/Server/Services/TeamService.js.map +1 -1
  353. package/build/dist/Server/Services/UserService.js +10 -16
  354. package/build/dist/Server/Services/UserService.js.map +1 -1
  355. package/build/dist/Server/Types/Database/Permissions/CreatePermission.js +10 -0
  356. package/build/dist/Server/Types/Database/Permissions/CreatePermission.js.map +1 -1
  357. package/build/dist/Server/Types/Database/Permissions/EditionPermission.js +154 -14
  358. package/build/dist/Server/Types/Database/Permissions/EditionPermission.js.map +1 -1
  359. package/build/dist/Server/Types/Database/Permissions/TablePermission.js +10 -3
  360. package/build/dist/Server/Types/Database/Permissions/TablePermission.js.map +1 -1
  361. package/build/dist/Server/Types/Database/Permissions/UpdatePermission.js +17 -0
  362. package/build/dist/Server/Types/Database/Permissions/UpdatePermission.js.map +1 -1
  363. package/build/dist/Server/Types/Markdown.js +31 -0
  364. package/build/dist/Server/Types/Markdown.js.map +1 -1
  365. package/build/dist/Server/Types/Workflow/Components/Telegram/SendMessageToChat.js +20 -1
  366. package/build/dist/Server/Types/Workflow/Components/Telegram/SendMessageToChat.js.map +1 -1
  367. package/build/dist/Server/Utils/AI/Toolbox/SloTools.js +1 -0
  368. package/build/dist/Server/Utils/AI/Toolbox/SloTools.js.map +1 -1
  369. package/build/dist/Server/Utils/CommunityEditionSsoReport.js +223 -0
  370. package/build/dist/Server/Utils/CommunityEditionSsoReport.js.map +1 -0
  371. package/build/dist/Server/Utils/EditionEnforcement.js +187 -0
  372. package/build/dist/Server/Utils/EditionEnforcement.js.map +1 -0
  373. package/build/dist/Server/Utils/FrontendEnvironment.js +31 -2
  374. package/build/dist/Server/Utils/FrontendEnvironment.js.map +1 -1
  375. package/build/dist/Server/Utils/InstanceHealth/RedisHealth.js +6 -193
  376. package/build/dist/Server/Utils/InstanceHealth/RedisHealth.js.map +1 -1
  377. package/build/dist/Server/Utils/Monitor/AffectedResourceList.js +67 -0
  378. package/build/dist/Server/Utils/Monitor/AffectedResourceList.js.map +1 -0
  379. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +1 -1
  380. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +8 -1
  381. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
  382. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +1 -1
  383. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +585 -367
  384. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  385. package/build/dist/Server/Utils/Monitor/MonitoringIntervalValidator.js +88 -0
  386. package/build/dist/Server/Utils/Monitor/MonitoringIntervalValidator.js.map +1 -0
  387. package/build/dist/Server/Utils/Monitor/RootCauseList.js +101 -0
  388. package/build/dist/Server/Utils/Monitor/RootCauseList.js.map +1 -0
  389. package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js +28 -0
  390. package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js.map +1 -1
  391. package/build/dist/Server/Utils/Slo/SloRulePatternValidator.js +28 -0
  392. package/build/dist/Server/Utils/Slo/SloRulePatternValidator.js.map +1 -0
  393. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +331 -11
  394. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  395. package/build/dist/Types/API/Hostname.js +59 -11
  396. package/build/dist/Types/API/Hostname.js.map +1 -1
  397. package/build/dist/Types/API/Route.js +18 -2
  398. package/build/dist/Types/API/Route.js.map +1 -1
  399. package/build/dist/Types/API/URL.js +23 -2
  400. package/build/dist/Types/API/URL.js.map +1 -1
  401. package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js +19 -7
  402. package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js.map +1 -1
  403. package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js +19 -7
  404. package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js.map +1 -1
  405. package/build/dist/Types/Database/AccessControl/OwnerOnlyColumn.js +13 -6
  406. package/build/dist/Types/Database/AccessControl/OwnerOnlyColumn.js.map +1 -1
  407. package/build/dist/Types/Database/CanonicalModelInstance.js +88 -0
  408. package/build/dist/Types/Database/CanonicalModelInstance.js.map +1 -0
  409. package/build/dist/Types/Database/TableColumn.js +19 -6
  410. package/build/dist/Types/Database/TableColumn.js.map +1 -1
  411. package/build/dist/Types/EnterpriseLicense/EnterpriseLicensePeriods.js +28 -0
  412. package/build/dist/Types/EnterpriseLicense/EnterpriseLicensePeriods.js.map +1 -0
  413. package/build/dist/Types/IP/IPv6.js +6 -1
  414. package/build/dist/Types/IP/IPv6.js.map +1 -1
  415. package/build/dist/Types/Monitor/MonitorStep.js +5 -0
  416. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  417. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js +1 -1
  418. package/build/dist/Types/Permission.js +84 -0
  419. package/build/dist/Types/Permission.js.map +1 -1
  420. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js +11 -0
  421. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js.map +1 -1
  422. package/build/dist/Types/Rules/RuleRun.js +4 -0
  423. package/build/dist/Types/Rules/RuleRun.js.map +1 -1
  424. package/build/dist/Types/StatusPage/UptimeDailyAggregate.js +32 -0
  425. package/build/dist/Types/StatusPage/UptimeDailyAggregate.js.map +1 -0
  426. package/build/dist/UI/Components/EditionLabel/EditionLabel.js +414 -585
  427. package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
  428. package/build/dist/UI/Components/EditionLabel/LicenseManager.js +2 -0
  429. package/build/dist/UI/Components/EditionLabel/LicenseManager.js.map +1 -0
  430. package/build/dist/UI/Components/Feed/FeedOptions.js +235 -0
  431. package/build/dist/UI/Components/Feed/FeedOptions.js.map +1 -0
  432. package/build/dist/UI/Components/Feed/FeedOptionsButton.js +346 -0
  433. package/build/dist/UI/Components/Feed/FeedOptionsButton.js.map +1 -0
  434. package/build/dist/UI/Components/Feed/useFeedItems.js +17 -7
  435. package/build/dist/UI/Components/Feed/useFeedItems.js.map +1 -1
  436. package/build/dist/UI/Components/Feed/useFeedOptions.js +130 -0
  437. package/build/dist/UI/Components/Feed/useFeedOptions.js.map +1 -0
  438. package/build/dist/UI/Components/Graphs/DayUptimeGraph.js +90 -17
  439. package/build/dist/UI/Components/Graphs/DayUptimeGraph.js.map +1 -1
  440. package/build/dist/UI/Components/Icon/Icon.js +1 -1
  441. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  442. package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js +0 -0
  443. package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js.map +1 -1
  444. package/build/dist/UI/Components/ModelList/ModelList.js +4 -1
  445. package/build/dist/UI/Components/ModelList/ModelList.js.map +1 -1
  446. package/build/dist/UI/Components/MonitorGraphs/Uptime.js +42 -1
  447. package/build/dist/UI/Components/MonitorGraphs/Uptime.js.map +1 -1
  448. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +2 -2
  449. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  450. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +6 -2
  451. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
  452. package/build/dist/Utils/HostAddressUtil.js +80 -0
  453. package/build/dist/Utils/HostAddressUtil.js.map +1 -0
  454. package/build/dist/Utils/LabelRuleImportExport.js +22 -6
  455. package/build/dist/Utils/LabelRuleImportExport.js.map +1 -1
  456. package/build/dist/Utils/Monitor/MetricValueFormatter.js +2 -2
  457. package/build/dist/Utils/Monitor/MonitorDestinationUtil.js +127 -0
  458. package/build/dist/Utils/Monitor/MonitorDestinationUtil.js.map +1 -0
  459. package/build/dist/Utils/Monitor/MonitoringIntervalUtil.js +374 -0
  460. package/build/dist/Utils/Monitor/MonitoringIntervalUtil.js.map +1 -0
  461. package/build/dist/Utils/Rules/MonitorTypeRuleCriteria.js +18 -0
  462. package/build/dist/Utils/Rules/MonitorTypeRuleCriteria.js.map +1 -0
  463. package/build/dist/Utils/Slo/SloDuration.js +13 -5
  464. package/build/dist/Utils/Slo/SloDuration.js.map +1 -1
  465. package/build/dist/Utils/Slo/SloHealth.js +8 -7
  466. package/build/dist/Utils/Slo/SloHealth.js.map +1 -1
  467. package/build/dist/Utils/Slo/SloMonitorRuleCriteria.js +16 -1
  468. package/build/dist/Utils/Slo/SloMonitorRuleCriteria.js.map +1 -1
  469. package/build/dist/Utils/Slo/SloOverviewText.js +16 -0
  470. package/build/dist/Utils/Slo/SloOverviewText.js.map +1 -1
  471. package/build/dist/Utils/Slo/SloProjection.js.map +1 -1
  472. package/build/dist/Utils/StatusPage/UptimeDailyAggregateUtil.js +148 -0
  473. package/build/dist/Utils/StatusPage/UptimeDailyAggregateUtil.js.map +1 -0
  474. package/jest.config.json +3 -1
  475. package/package.json +1 -1
  476. package/test-setup.sh +103 -34
  477. package/tsconfig.json +13 -0
  478. package/Server/API/EnterpriseLicenseAPI.ts +0 -925
  479. package/Server/API/TeamComplianceAPI.ts +0 -158
  480. package/Server/Middleware/SCIMAuthorization.ts +0 -141
  481. package/Server/Services/TeamComplianceService.ts +0 -733
  482. package/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.ts +0 -186
  483. package/Server/Utils/InstanceHealth/PostgresHealth.ts +0 -286
  484. package/Tests/App/AdminDashboard/EnterpriseLicenseInstanceActivity.test.tsx +0 -451
  485. package/Tests/App/Dashboard/AuditLogsTable.test.tsx +0 -598
  486. package/Tests/App/Dashboard/SecurityEventsExplorer.test.tsx +0 -761
  487. package/Tests/App/Dashboard/SecurityEventsSideMenu.test.tsx +0 -247
  488. package/Tests/App/Dashboard/SecurityEventsTableColumns.test.tsx +0 -382
  489. package/Tests/App/Dashboard/SecurityEventsVolumeChart.test.tsx +0 -321
  490. package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +0 -1851
  491. package/Tests/Server/Middleware/SCIMAuthorization.test.ts +0 -525
  492. package/Tests/Server/Services/TeamComplianceServiceBehaviour.test.ts +0 -1845
  493. package/Tests/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.test.ts +0 -495
  494. package/Tests/Server/Utils/InstanceHealth/PostgresHealth.test.ts +0 -337
  495. package/Tests/Utils/EnterpriseLicenseSeats.test.ts +0 -576
  496. package/Tests/Utils/EnterpriseLicenseSync.test.ts +0 -568
  497. package/Utils/EnterpriseLicense/EnterpriseLicenseSeats.ts +0 -287
  498. package/Utils/EnterpriseLicense/EnterpriseLicenseSync.ts +0 -244
  499. package/build/dist/Server/API/EnterpriseLicenseAPI.js +0 -646
  500. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +0 -1
  501. package/build/dist/Server/API/TeamComplianceAPI.js +0 -111
  502. package/build/dist/Server/API/TeamComplianceAPI.js.map +0 -1
  503. package/build/dist/Server/Middleware/SCIMAuthorization.js +0 -124
  504. package/build/dist/Server/Middleware/SCIMAuthorization.js.map +0 -1
  505. package/build/dist/Server/Services/TeamComplianceService.js +0 -537
  506. package/build/dist/Server/Services/TeamComplianceService.js.map +0 -1
  507. package/build/dist/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.js +0 -145
  508. package/build/dist/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.js.map +0 -1
  509. package/build/dist/Server/Utils/InstanceHealth/PostgresHealth.js +0 -194
  510. package/build/dist/Server/Utils/InstanceHealth/PostgresHealth.js.map +0 -1
  511. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js +0 -168
  512. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js.map +0 -1
  513. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSync.js +0 -174
  514. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSync.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TeamMemberAPI.js","sourceRoot":"","sources":["../../../../Server/API/TeamMemberAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TeamMemberAPI.js","sourceRoot":"","sources":["../../../../Server/API/TeamMemberAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,466 @@
1
+ import EnterpriseFeature from "./EnterpriseFeature";
2
+ import { ENTERPRISE_LICENSE_TRIAL_PERIOD_IN_DAYS, EnterpriseLicenseSnapshotUtil, } from "./EnterpriseLicenseSnapshot";
3
+ /*
4
+ * EnvironmentConfig never imports anything under Server/Enterprise, so this
5
+ * import cannot form a cycle. IsBillingEnabled is only ever read inside a
6
+ * function body: the compiled CommonJS reads the live module binding at call
7
+ * time, which is what lets a test pin billing by mocking EnvironmentConfig.
8
+ */
9
+ import { IsBillingEnabled } from "../EnvironmentConfig";
10
+ import logger from "../Utils/Logger";
11
+ import PaymentRequiredException from "../../Types/Exception/PaymentRequiredException";
12
+ /*
13
+ * Which enterprise feature each enterprise configuration model belongs to,
14
+ * keyed by table name. Kept here so the model files themselves stay unchanged;
15
+ * a model marked requiresEnterprise that is missing from this map is caught by
16
+ * the facade's test.
17
+ */
18
+ const ENTERPRISE_FEATURE_BY_TABLE_NAME = new Map([
19
+ ["GlobalSSO", EnterpriseFeature.SSO],
20
+ ["GlobalOIDC", EnterpriseFeature.SSO],
21
+ ["GlobalSSOProject", EnterpriseFeature.SSO],
22
+ ["GlobalOIDCProject", EnterpriseFeature.SSO],
23
+ ["ProjectSSO", EnterpriseFeature.SSO],
24
+ ["ProjectOIDC", EnterpriseFeature.SSO],
25
+ ["StatusPageSSO", EnterpriseFeature.SSO],
26
+ ["StatusPageOIDC", EnterpriseFeature.SSO],
27
+ ["ProjectSCIM", EnterpriseFeature.SCIM],
28
+ ["StatusPageSCIM", EnterpriseFeature.SCIM],
29
+ ["TeamComplianceSetting", EnterpriseFeature.TeamCompliance],
30
+ ]);
31
+ /*
32
+ * The features whose RUNTIME behaviour stops when a self-hosted license
33
+ * lapses (see isFeatureActive), in the order the lapse log names them.
34
+ */
35
+ export const RUNTIME_ENTERPRISE_FEATURES = [
36
+ EnterpriseFeature.SSO,
37
+ EnterpriseFeature.SCIM,
38
+ EnterpriseFeature.AuditLogs,
39
+ ];
40
+ // How the lapse log names each feature.
41
+ const FEATURE_NAMES = new Map([
42
+ [EnterpriseFeature.SSO, "single sign-on (SSO)"],
43
+ [EnterpriseFeature.SCIM, "SCIM provisioning"],
44
+ [EnterpriseFeature.AuditLogs, "audit logging"],
45
+ [EnterpriseFeature.TeamCompliance, "team compliance"],
46
+ [EnterpriseFeature.InstanceHealth, "the OneUptime Health dashboards"],
47
+ ]);
48
+ /*
49
+ * The one place core asks "which edition is this, and what may it do?".
50
+ *
51
+ * Three questions, on purpose:
52
+ *
53
+ * isLoaded() the ee code is present in this process, whatever the
54
+ * license says. Decides which enterprise routers and
55
+ * jobs exist and which edition operators are told they
56
+ * run.
57
+ * isFeatureActive() the ee code is present AND the feature is licensed
58
+ * right now. Governs RUNTIME behaviour: SSO sign-in
59
+ * and "Require SSO for login" enforcement, SCIM
60
+ * provisioning and its team locks, audit-log
61
+ * recording. When a self-hosted license lapses these
62
+ * stop, exactly as on the Community Edition, and they
63
+ * resume without a restart when a license is
64
+ * activated. An UNKNOWN license state counts as
65
+ * active (see isFeatureActive).
66
+ * isFeatureAvailable() the license, failing closed. Governs creating and
67
+ * updating enterprise configuration, the enterprise
68
+ * admin Health dashboards and the query console.
69
+ *
70
+ * "Lapsed" means what isFeatureAvailableSync treats as unavailable with
71
+ * billing off: no license after the trial
72
+ * (ENTERPRISE_LICENSE_TRIAL_PERIOD_IN_DAYS, counted from
73
+ * GlobalConfig.enterpriseEditionFirstSeenAt), a license that expired more
74
+ * than the grace period (ENTERPRISE_LICENSE_GRACE_PERIOD_IN_DAYS, counted
75
+ * from its expiry) ago, an invalid license, or a license whose
76
+ * feature list leaves the feature out. During the trial and the grace period
77
+ * nothing stops. With billing on (OneUptime Cloud) both license questions
78
+ * answer yes whenever ee is loaded: plan tiers gate the features there.
79
+ */
80
+ class EnterpriseEdition {
81
+ static register(enterpriseModule) {
82
+ if (!enterpriseModule) {
83
+ throw new Error("EnterpriseEdition.register needs a module.");
84
+ }
85
+ if (EnterpriseEdition.module) {
86
+ throw new Error("An enterprise module is already registered. The enterprise module is loaded once per process.");
87
+ }
88
+ EnterpriseEdition.module = enterpriseModule;
89
+ }
90
+ static isLoaded() {
91
+ return EnterpriseEdition.module !== null;
92
+ }
93
+ static getModule() {
94
+ return EnterpriseEdition.module;
95
+ }
96
+ /*
97
+ * Test suites only: forget the registered module, the feature states seen so
98
+ * far, the one-time warnings and the listeners, so the next test starts on
99
+ * a fresh Community Edition process.
100
+ */
101
+ static resetForTests() {
102
+ EnterpriseEdition.module = null;
103
+ EnterpriseEdition.lastKnownFeatureState.clear();
104
+ EnterpriseEdition.hasWarnedAboutUnreadLicense = false;
105
+ EnterpriseEdition.hasWarnedAboutUnreadableLicense = false;
106
+ EnterpriseEdition.hasWarnedAboutUnknownTrialStart = false;
107
+ EnterpriseEdition.featureStateListeners = [];
108
+ }
109
+ /*
110
+ * Whether the feature's runtime behaviour runs right now: SSO sign-in and
111
+ * "Require SSO for login" enforcement (SSO), SCIM provisioning and its team
112
+ * locks (SCIM), audit-log recording (AuditLogs). Synchronous, because it is
113
+ * asked on every request that could need it; the license changes at runtime
114
+ * and routers are mounted once, so callers ask per request.
115
+ *
116
+ * no enterprise module false (the Community Edition)
117
+ * billing on true (OneUptime Cloud: plan tiers gate)
118
+ * license state UNKNOWN true: the first snapshot has not loaded yet,
119
+ * reading the cached one threw, or it says no
120
+ * license is installed but not when the trial
121
+ * started (the first-run stamp could not be
122
+ * read or written yet, so whether the trial
123
+ * is over is not known; see
124
+ * EnterpriseLicenseSnapshotUtil.isTrialStartUnknown).
125
+ * An unknown state must never lock anyone out
126
+ * or switch SSO enforcement off. The loader
127
+ * waits (bounded) for the first snapshot
128
+ * before any router is mounted, so the window
129
+ * is small. Warned about once per process.
130
+ * otherwise the license entitles the feature (valid or
131
+ * grace, feature included)
132
+ *
133
+ * A change of answer from a known state is logged once per change (a
134
+ * warning when features stop, info when they resume) and reported to the
135
+ * onFeatureStateChange listeners.
136
+ */
137
+ static isFeatureActive(feature) {
138
+ const enterpriseModule = EnterpriseEdition.module;
139
+ if (!enterpriseModule) {
140
+ return false;
141
+ }
142
+ if (IsBillingEnabled) {
143
+ return true;
144
+ }
145
+ let snapshot = null;
146
+ try {
147
+ snapshot = enterpriseModule.licensing.getCachedSnapshot();
148
+ }
149
+ catch (err) {
150
+ if (!EnterpriseEdition.hasWarnedAboutUnreadableLicense) {
151
+ EnterpriseEdition.hasWarnedAboutUnreadableLicense = true;
152
+ logger.warn("EnterpriseEdition: could not read the cached license snapshot. Until it can be read, SSO, SCIM and audit logging keep running as if licensed. This warning is logged once per process.");
153
+ logger.warn(err);
154
+ }
155
+ return true;
156
+ }
157
+ if (!snapshot) {
158
+ if (!EnterpriseEdition.hasWarnedAboutUnreadLicense) {
159
+ EnterpriseEdition.hasWarnedAboutUnreadLicense = true;
160
+ logger.warn("EnterpriseEdition: the license has not been read yet. Until it is, SSO, SCIM and audit logging keep running as if licensed. This warning is logged once per process.");
161
+ }
162
+ return true;
163
+ }
164
+ if (EnterpriseLicenseSnapshotUtil.isTrialStartUnknown(snapshot)) {
165
+ if (!EnterpriseEdition.hasWarnedAboutUnknownTrialStart) {
166
+ EnterpriseEdition.hasWarnedAboutUnknownTrialStart = true;
167
+ logger.warn(
168
+ /*
169
+ * Reachable both with no license at all and WITH one installed: a
170
+ * license whose expiry was never recorded falls back to this same
171
+ * trial (LicenseToken's classifyUnverifiedWithoutExpiry), so this
172
+ * must not assert that nothing is installed.
173
+ */
174
+ `EnterpriseEdition: there is no license this installation can date, and the start of the ${ENTERPRISE_LICENSE_TRIAL_PERIOD_IN_DAYS}-day trial has not been recorded yet, so it is not known whether the trial is over. Until it is recorded, SSO, SCIM and audit logging keep running as if licensed. This warning is logged once per process.`);
175
+ }
176
+ return true;
177
+ }
178
+ const isActive = EnterpriseLicenseSnapshotUtil.entitles(snapshot, feature);
179
+ if (EnterpriseEdition.getLastKnownFeatureState(feature) !== isActive) {
180
+ EnterpriseEdition.recordFeatureStateChange(snapshot, feature);
181
+ }
182
+ return isActive;
183
+ }
184
+ /*
185
+ * Registers a listener for changes in which features are active (see
186
+ * isFeatureActive). Called synchronously, from inside isFeatureActive, once
187
+ * per change; a listener that throws is logged and never breaks the caller.
188
+ * Returns a function that removes the listener.
189
+ */
190
+ static onFeatureStateChange(listener) {
191
+ EnterpriseEdition.featureStateListeners.push(listener);
192
+ return () => {
193
+ EnterpriseEdition.featureStateListeners =
194
+ EnterpriseEdition.featureStateListeners.filter((registered) => {
195
+ return registered !== listener;
196
+ });
197
+ };
198
+ }
199
+ /*
200
+ * Synchronous availability, for synchronous permission checks. Reads the
201
+ * module's cached snapshot; no snapshot yet, or any error, means false (fail
202
+ * closed: an enterprise configuration write is refused, never allowed by
203
+ * accident).
204
+ */
205
+ static isFeatureAvailableSync(feature) {
206
+ const enterpriseModule = EnterpriseEdition.module;
207
+ if (!enterpriseModule) {
208
+ return false;
209
+ }
210
+ if (IsBillingEnabled) {
211
+ return true;
212
+ }
213
+ let snapshot = null;
214
+ try {
215
+ snapshot = enterpriseModule.licensing.getCachedSnapshot();
216
+ }
217
+ catch (err) {
218
+ logger.warn("EnterpriseEdition: could not read the cached license snapshot; treating the feature as unavailable.");
219
+ logger.warn(err);
220
+ return false;
221
+ }
222
+ return EnterpriseLicenseSnapshotUtil.entitles(snapshot, feature);
223
+ }
224
+ static async isFeatureAvailable(feature) {
225
+ const enterpriseModule = EnterpriseEdition.module;
226
+ if (!enterpriseModule) {
227
+ return false;
228
+ }
229
+ if (IsBillingEnabled) {
230
+ return true;
231
+ }
232
+ const snapshot = await EnterpriseEdition.getLicenseSnapshot();
233
+ return EnterpriseLicenseSnapshotUtil.entitles(snapshot, feature);
234
+ }
235
+ static assertFeatureAvailableSync(feature) {
236
+ if (EnterpriseEdition.isFeatureAvailableSync(feature)) {
237
+ return;
238
+ }
239
+ throw EnterpriseEdition.createUnavailableException();
240
+ }
241
+ static async assertFeatureAvailable(feature) {
242
+ if (await EnterpriseEdition.isFeatureAvailable(feature)) {
243
+ return;
244
+ }
245
+ throw EnterpriseEdition.createUnavailableException();
246
+ }
247
+ /*
248
+ * The license snapshot, or null on the Community Edition. A failed read falls
249
+ * back to the cached snapshot (the provider's last good one), then to null.
250
+ */
251
+ static async getLicenseSnapshot() {
252
+ const enterpriseModule = EnterpriseEdition.module;
253
+ if (!enterpriseModule) {
254
+ return null;
255
+ }
256
+ try {
257
+ return await enterpriseModule.licensing.getSnapshot();
258
+ }
259
+ catch (err) {
260
+ logger.warn("EnterpriseEdition: could not load the license snapshot; falling back to the cached one.");
261
+ logger.warn(err);
262
+ }
263
+ try {
264
+ return enterpriseModule.licensing.getCachedSnapshot();
265
+ }
266
+ catch (err) {
267
+ logger.warn(err);
268
+ return null;
269
+ }
270
+ }
271
+ // Seat usage for display, or null on the Community Edition or on error.
272
+ static async getSeatUsage() {
273
+ const enterpriseModule = EnterpriseEdition.module;
274
+ if (!enterpriseModule) {
275
+ return null;
276
+ }
277
+ try {
278
+ return await enterpriseModule.licensing.getSeatUsage();
279
+ }
280
+ catch (err) {
281
+ logger.warn("EnterpriseEdition: could not compute seat usage.");
282
+ logger.warn(err);
283
+ return null;
284
+ }
285
+ }
286
+ /*
287
+ * Throws when the license has no seat left for one more user. The Community
288
+ * Edition has no seat limit, so this is a no-op there. Errors from the
289
+ * provider propagate: refusing the new user IS the provider's answer.
290
+ */
291
+ static async assertSeatAvailableForNewUser() {
292
+ const enterpriseModule = EnterpriseEdition.module;
293
+ if (!enterpriseModule) {
294
+ return;
295
+ }
296
+ await enterpriseModule.licensing.assertSeatAvailableForNewUser();
297
+ }
298
+ /*
299
+ * The ee audit-log recorder, or null when there is none (CE). Handed out
300
+ * whatever the license says: the recorder itself asks
301
+ * isFeatureActive(AuditLogs) before recording each entry, so recording
302
+ * stops while the license is lapsed and resumes when it is renewed.
303
+ */
304
+ static getAuditLogRecorder() {
305
+ const enterpriseModule = EnterpriseEdition.module;
306
+ if (!enterpriseModule) {
307
+ return null;
308
+ }
309
+ try {
310
+ return enterpriseModule.getAuditLogRecorder();
311
+ }
312
+ catch (err) {
313
+ logger.error("EnterpriseEdition: the enterprise module failed to provide its audit log recorder.");
314
+ logger.error(err);
315
+ return null;
316
+ }
317
+ }
318
+ static getModelFeature(modelType) {
319
+ let tableName = null;
320
+ try {
321
+ tableName = new modelType().tableName;
322
+ }
323
+ catch (err) {
324
+ logger.warn(err);
325
+ return null;
326
+ }
327
+ return EnterpriseEdition.getFeatureForTableName(tableName);
328
+ }
329
+ static getFeatureForTableName(tableName) {
330
+ if (!tableName) {
331
+ return null;
332
+ }
333
+ return ENTERPRISE_FEATURE_BY_TABLE_NAME.get(tableName) || null;
334
+ }
335
+ // Every table name the facade maps to a feature (for guard tests).
336
+ static getMappedTableNames() {
337
+ return Array.from(ENTERPRISE_FEATURE_BY_TABLE_NAME.keys());
338
+ }
339
+ // How the lapse log names a feature.
340
+ static getFeatureName(feature) {
341
+ return FEATURE_NAMES.get(feature) || feature;
342
+ }
343
+ /*
344
+ * The log line for features that stopped, or null when none did. Public so
345
+ * the wording can be tested without driving a lapse.
346
+ */
347
+ static describeStoppedFeatures(stopped, snapshot) {
348
+ if (stopped.length === 0) {
349
+ return null;
350
+ }
351
+ const names = EnterpriseEdition.joinFeatureNames(stopped);
352
+ const verb = stopped.length === 1 ? "has" : "have";
353
+ const isUsable = EnterpriseLicenseSnapshotUtil.isUsable(snapshot);
354
+ const parts = [
355
+ isUsable
356
+ ? `The OneUptime Enterprise license does not include ${names}: ${stopped.length === 1 ? "it" : "they"} ${verb} stopped until a license that includes ${stopped.length === 1 ? "it" : "them"} is activated.`
357
+ : `The OneUptime Enterprise license has lapsed (status: ${snapshot.status}): ${names} ${verb} stopped until a license is activated.`,
358
+ ];
359
+ if (stopped.includes(EnterpriseFeature.SSO)) {
360
+ parts.push('"Require SSO for login" is not enforced meanwhile: users sign in with their password, and users who only ever signed in with SSO can reset their password.');
361
+ }
362
+ if (snapshot.message) {
363
+ parts.push(`License status: ${snapshot.message}`);
364
+ }
365
+ parts.push("A master admin can activate or renew the license from the edition label in the Admin Dashboard header.");
366
+ return parts.join(" ");
367
+ }
368
+ // The log line for features that resumed, or null when none did.
369
+ static describeResumedFeatures(resumed) {
370
+ if (resumed.length === 0) {
371
+ return null;
372
+ }
373
+ return `The OneUptime Enterprise license covers ${EnterpriseEdition.joinFeatureNames(resumed)} again: ${resumed.length === 1 ? "it has" : "they have"} resumed.`;
374
+ }
375
+ static getLastKnownFeatureState(feature) {
376
+ const known = EnterpriseEdition.lastKnownFeatureState.get(feature);
377
+ return known === undefined ? true : known;
378
+ }
379
+ /*
380
+ * Called only when `trigger` changed state. Re-reads every runtime feature
381
+ * from the same snapshot, so a lapse that stops several of them is logged
382
+ * as one line and the others are not reported again on their next check.
383
+ */
384
+ static recordFeatureStateChange(snapshot, trigger) {
385
+ const features = [...RUNTIME_ENTERPRISE_FEATURES];
386
+ if (!features.includes(trigger)) {
387
+ features.push(trigger);
388
+ }
389
+ const stopped = [];
390
+ const resumed = [];
391
+ for (const feature of features) {
392
+ const wasActive = EnterpriseEdition.getLastKnownFeatureState(feature);
393
+ const isActive = EnterpriseLicenseSnapshotUtil.entitles(snapshot, feature);
394
+ EnterpriseEdition.lastKnownFeatureState.set(feature, isActive);
395
+ if (wasActive && !isActive) {
396
+ stopped.push(feature);
397
+ }
398
+ if (!wasActive && isActive) {
399
+ resumed.push(feature);
400
+ }
401
+ }
402
+ try {
403
+ const stoppedMessage = EnterpriseEdition.describeStoppedFeatures(stopped, snapshot);
404
+ if (stoppedMessage) {
405
+ logger.warn(stoppedMessage);
406
+ }
407
+ const resumedMessage = EnterpriseEdition.describeResumedFeatures(resumed);
408
+ if (resumedMessage) {
409
+ logger.info(resumedMessage);
410
+ }
411
+ }
412
+ catch (_a) {
413
+ // Logging must never change the answer isFeatureActive gives.
414
+ }
415
+ const change = {
416
+ stopped,
417
+ resumed,
418
+ snapshot,
419
+ };
420
+ for (const listener of [...EnterpriseEdition.featureStateListeners]) {
421
+ try {
422
+ listener(change);
423
+ }
424
+ catch (err) {
425
+ logger.error("EnterpriseEdition: a listener for enterprise feature state changes failed.");
426
+ logger.error(err);
427
+ }
428
+ }
429
+ }
430
+ static joinFeatureNames(features) {
431
+ const names = features.map((feature) => {
432
+ return EnterpriseEdition.getFeatureName(feature);
433
+ });
434
+ if (names.length <= 1) {
435
+ return names.join("");
436
+ }
437
+ return `${names.slice(0, -1).join(", ")} and ${names[names.length - 1]}`;
438
+ }
439
+ static createUnavailableException() {
440
+ if (!EnterpriseEdition.isLoaded()) {
441
+ return new PaymentRequiredException(EnterpriseEdition.COMMUNITY_EDITION_MESSAGE);
442
+ }
443
+ return new PaymentRequiredException(EnterpriseEdition.LICENSE_REQUIRED_MESSAGE);
444
+ }
445
+ }
446
+ EnterpriseEdition.COMMUNITY_EDITION_MESSAGE = "This is a OneUptime Enterprise Edition feature and is not available in the Community Edition. " +
447
+ "Run the OneUptime Enterprise Edition image to use it. " +
448
+ "See https://oneuptime.com/enterprise/overview for details.";
449
+ EnterpriseEdition.LICENSE_REQUIRED_MESSAGE = "This OneUptime Enterprise feature needs a valid Enterprise license that includes it. " +
450
+ "Enterprise configuration you already have is kept and can still be viewed or deleted, " +
451
+ "but it cannot be created or changed until a master admin adds or renews the license " +
452
+ "from the edition label in the Admin Dashboard header.";
453
+ EnterpriseEdition.module = null;
454
+ /*
455
+ * The last active/stopped answer isFeatureActive gave per feature, from a
456
+ * KNOWN license state. A feature never seen here counts as active: that is
457
+ * how the process starts (an unknown license state is active), so a license
458
+ * that is already lapsed at boot is reported like any other lapse.
459
+ */
460
+ EnterpriseEdition.lastKnownFeatureState = new Map();
461
+ EnterpriseEdition.hasWarnedAboutUnreadLicense = false;
462
+ EnterpriseEdition.hasWarnedAboutUnreadableLicense = false;
463
+ EnterpriseEdition.hasWarnedAboutUnknownTrialStart = false;
464
+ EnterpriseEdition.featureStateListeners = [];
465
+ export default EnterpriseEdition;
466
+ //# sourceMappingURL=EnterpriseEdition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnterpriseEdition.js","sourceRoot":"","sources":["../../../../Server/Enterprise/EnterpriseEdition.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,uCAAuC,EAEvC,6BAA6B,GAE9B,MAAM,6BAA6B,CAAC;AAIrC;;;;;GAKG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,OAAO,wBAAwB,MAAM,gDAAgD,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,gCAAgC,GACpC,IAAI,GAAG,CAA4B;IACjC,CAAC,WAAW,EAAE,iBAAiB,CAAC,GAAG,CAAC;IACpC,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,CAAC;IACrC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,GAAG,CAAC;IAC3C,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,GAAG,CAAC;IAC5C,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,CAAC;IACrC,CAAC,aAAa,EAAE,iBAAiB,CAAC,GAAG,CAAC;IACtC,CAAC,eAAe,EAAE,iBAAiB,CAAC,GAAG,CAAC;IACxC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,GAAG,CAAC;IACzC,CAAC,aAAa,EAAE,iBAAiB,CAAC,IAAI,CAAC;IACvC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,IAAI,CAAC;IAC1C,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,cAAc,CAAC;CAC5D,CAAC,CAAC;AAEL;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAqC;IAC3E,iBAAiB,CAAC,GAAG;IACrB,iBAAiB,CAAC,IAAI;IACtB,iBAAiB,CAAC,SAAS;CAC5B,CAAC;AAEF,wCAAwC;AACxC,MAAM,aAAa,GAA2C,IAAI,GAAG,CAGnE;IACA,CAAC,iBAAiB,CAAC,GAAG,EAAE,sBAAsB,CAAC;IAC/C,CAAC,iBAAiB,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAC7C,CAAC,iBAAiB,CAAC,SAAS,EAAE,eAAe,CAAC;IAC9C,CAAC,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC;IACrD,CAAC,iBAAiB,CAAC,cAAc,EAAE,iCAAiC,CAAC;CACtE,CAAC,CAAC;AAoBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAqB,iBAAiB;IAgC7B,MAAM,CAAC,QAAQ,CAAC,gBAAwC;QAC7D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;QACJ,CAAC;QAED,iBAAiB,CAAC,MAAM,GAAG,gBAAgB,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAC,QAAQ;QACpB,OAAO,iBAAiB,CAAC,MAAM,KAAK,IAAI,CAAC;IAC3C,CAAC;IAEM,MAAM,CAAC,SAAS;QACrB,OAAO,iBAAiB,CAAC,MAAM,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,aAAa;QACzB,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC;QAChC,iBAAiB,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAChD,iBAAiB,CAAC,2BAA2B,GAAG,KAAK,CAAC;QACtD,iBAAiB,CAAC,+BAA+B,GAAG,KAAK,CAAC;QAC1D,iBAAiB,CAAC,+BAA+B,GAAG,KAAK,CAAC;QAC1D,iBAAiB,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,MAAM,CAAC,eAAe,CAAC,OAA0B;QACtD,MAAM,gBAAgB,GACpB,iBAAiB,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,QAAQ,GAAqC,IAAI,CAAC;QAEtD,IAAI,CAAC;YACH,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,EAAE,CAAC;gBACvD,iBAAiB,CAAC,+BAA+B,GAAG,IAAI,CAAC;gBACzD,MAAM,CAAC,IAAI,CACT,wLAAwL,CACzL,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,EAAE,CAAC;gBACnD,iBAAiB,CAAC,2BAA2B,GAAG,IAAI,CAAC;gBACrD,MAAM,CAAC,IAAI,CACT,sKAAsK,CACvK,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,6BAA6B,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,EAAE,CAAC;gBACvD,iBAAiB,CAAC,+BAA+B,GAAG,IAAI,CAAC;gBACzD,MAAM,CAAC,IAAI;gBACT;;;;;mBAKG;gBACH,2FAA2F,uCAAuC,6MAA6M,CAChV,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAY,6BAA6B,CAAC,QAAQ,CAC9D,QAAQ,EACR,OAAO,CACR,CAAC;QAEF,IAAI,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACrE,iBAAiB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,oBAAoB,CAChC,QAAwC;QAExC,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEvD,OAAO,GAAS,EAAE;YAChB,iBAAiB,CAAC,qBAAqB;gBACrC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,CAC5C,CAAC,UAA0C,EAAW,EAAE;oBACtD,OAAO,UAAU,KAAK,QAAQ,CAAC;gBACjC,CAAC,CACF,CAAC;QACN,CAAC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,sBAAsB,CAAC,OAA0B;QAC7D,MAAM,gBAAgB,GACpB,iBAAiB,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,QAAQ,GAAqC,IAAI,CAAC;QAEtD,IAAI,CAAC;YACH,QAAQ,GAAG,gBAAgB,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CACT,qGAAqG,CACtG,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,6BAA6B,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,kBAAkB,CACpC,OAA0B;QAE1B,MAAM,gBAAgB,GACpB,iBAAiB,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GACZ,MAAM,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;QAE/C,OAAO,6BAA6B,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,0BAA0B,CAAC,OAA0B;QACjE,IAAI,iBAAiB,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,CAAC,0BAA0B,EAAE,CAAC;IACvD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,sBAAsB,CACxC,OAA0B;QAE1B,IAAI,MAAM,iBAAiB,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,CAAC,0BAA0B,EAAE,CAAC;IACvD,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,KAAK,CAAC,kBAAkB;QACpC,MAAM,gBAAgB,GACpB,iBAAiB,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,gBAAgB,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CACT,yFAAyF,CAC1F,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACH,OAAO,gBAAgB,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,wEAAwE;IACjE,MAAM,CAAC,KAAK,CAAC,YAAY;QAC9B,MAAM,gBAAgB,GACpB,iBAAiB,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,gBAAgB,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,6BAA6B;QAC/C,MAAM,gBAAgB,GACpB,iBAAiB,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,CAAC,SAAS,CAAC,6BAA6B,EAAE,CAAC;IACnE,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,mBAAmB;QAC/B,MAAM,gBAAgB,GACpB,iBAAiB,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,gBAAgB,CAAC,mBAAmB,EAAE,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CACV,oFAAoF,CACrF,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,eAAe,CAC3B,SAAgC;QAEhC,IAAI,SAAS,GAAkB,IAAI,CAAC;QAEpC,IAAI,CAAC;YACH,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC,SAAS,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,iBAAiB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,sBAAsB,CAClC,SAAoC;QAEpC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,gCAAgC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IACjE,CAAC;IAED,mEAAmE;IAC5D,MAAM,CAAC,mBAAmB;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,qCAAqC;IAC9B,MAAM,CAAC,cAAc,CAAC,OAA0B;QACrD,OAAO,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,uBAAuB,CACnC,OAAiC,EACjC,QAAmC;QAEnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAW,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClE,MAAM,IAAI,GAAW,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,MAAM,QAAQ,GAAY,6BAA6B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE3E,MAAM,KAAK,GAAkB;YAC3B,QAAQ;gBACN,CAAC,CAAC,qDAAqD,KAAK,KAAK,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,0CAA0C,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,gBAAgB;gBAC3M,CAAC,CAAC,wDAAwD,QAAQ,CAAC,MAAM,MAAM,KAAK,IAAI,IAAI,wCAAwC;SACvI,CAAC;QAEF,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CACR,4JAA4J,CAC7J,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,mBAAmB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,CAAC,IAAI,CACR,wGAAwG,CACzG,CAAC;QAEF,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,iEAAiE;IAC1D,MAAM,CAAC,uBAAuB,CACnC,OAAiC;QAEjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,2CAA2C,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,WAAW,CAAC;IACnK,CAAC;IAEO,MAAM,CAAC,wBAAwB,CAAC,OAA0B;QAChE,MAAM,KAAK,GACT,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEvD,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,wBAAwB,CACrC,QAAmC,EACnC,OAA0B;QAE1B,MAAM,QAAQ,GAA6B,CAAC,GAAG,2BAA2B,CAAC,CAAC;QAE5E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,MAAM,OAAO,GAA6B,EAAE,CAAC;QAE7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,SAAS,GACb,iBAAiB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAY,6BAA6B,CAAC,QAAQ,CAC9D,QAAQ,EACR,OAAO,CACR,CAAC;YAEF,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAE/D,IAAI,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YAED,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,cAAc,GAClB,iBAAiB,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAE/D,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9B,CAAC;YAED,MAAM,cAAc,GAClB,iBAAiB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAErD,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;QAED,MAAM,MAAM,GAAiC;YAC3C,OAAO;YACP,OAAO;YACP,QAAQ;SACT,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC;gBACH,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CACV,4EAA4E,CAC7E,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,QAAkC;QAChE,MAAM,KAAK,GAAkB,QAAQ,CAAC,GAAG,CACvC,CAAC,OAA0B,EAAU,EAAE;YACrC,OAAO,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC,CACF,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;IAC3E,CAAC;IAEO,MAAM,CAAC,0BAA0B;QACvC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC;YAClC,OAAO,IAAI,wBAAwB,CACjC,iBAAiB,CAAC,yBAAyB,CAC5C,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,wBAAwB,CACjC,iBAAiB,CAAC,wBAAwB,CAC3C,CAAC;IACJ,CAAC;;AAphBsB,2CAAyB,GAC9C,gGAAgG;IAChG,wDAAwD;IACxD,4DAA4D,CAAC;AAExC,0CAAwB,GAC7C,uFAAuF;IACvF,wFAAwF;IACxF,sFAAsF;IACtF,uDAAuD,CAAC;AAE3C,wBAAM,GAAkC,IAAI,CAAC;AAE5D;;;;;GAKG;AACY,uCAAqB,GAClC,IAAI,GAAG,EAA8B,CAAC;AAEzB,6CAA2B,GAAY,KAAK,CAAC;AAE7C,iDAA+B,GAAY,KAAK,CAAC;AAEjD,iDAA+B,GAAY,KAAK,CAAC;AAEjD,uCAAqB,GAClC,EAAE,CAAC;eA9Bc,iBAAiB"}
@@ -0,0 +1,39 @@
1
+ /*
2
+ * The enterprise capabilities a OneUptime Enterprise license can entitle.
3
+ *
4
+ * The string values are part of the license format: a signed license carries
5
+ * a `features` claim that is either ["*"] (everything) or a subset of these
6
+ * values. Renaming a value therefore silently revokes that feature from every
7
+ * license already issued, so values are append-only.
8
+ */
9
+ var EnterpriseFeature;
10
+ (function (EnterpriseFeature) {
11
+ EnterpriseFeature["SSO"] = "sso";
12
+ EnterpriseFeature["SCIM"] = "scim";
13
+ EnterpriseFeature["TeamCompliance"] = "team-compliance";
14
+ EnterpriseFeature["AuditLogs"] = "audit-logs";
15
+ EnterpriseFeature["InstanceHealth"] = "instance-health";
16
+ })(EnterpriseFeature || (EnterpriseFeature = {}));
17
+ export const ALL_ENTERPRISE_FEATURES = Object.values(EnterpriseFeature);
18
+ /*
19
+ * The license claim value that entitles every feature, including ones added
20
+ * after the license was issued.
21
+ */
22
+ export const ENTERPRISE_FEATURE_WILDCARD = "*";
23
+ /*
24
+ * Narrows an untrusted string (a license claim, a request body) to a feature.
25
+ * Unknown values return null rather than throwing, so a license issued by a
26
+ * newer license server that names a feature this build has never heard of is
27
+ * still readable: the unknown name is simply not granted.
28
+ */
29
+ export const parseEnterpriseFeature = (value) => {
30
+ if (typeof value !== "string") {
31
+ return null;
32
+ }
33
+ const match = ALL_ENTERPRISE_FEATURES.find((feature) => {
34
+ return feature === value;
35
+ });
36
+ return match || null;
37
+ };
38
+ export default EnterpriseFeature;
39
+ //# sourceMappingURL=EnterpriseFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnterpriseFeature.js","sourceRoot":"","sources":["../../../../Server/Enterprise/EnterpriseFeature.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,IAAK,iBAMJ;AAND,WAAK,iBAAiB;IACpB,gCAAW,CAAA;IACX,kCAAa,CAAA;IACb,uDAAkC,CAAA;IAClC,6CAAwB,CAAA;IACxB,uDAAkC,CAAA;AACpC,CAAC,EANI,iBAAiB,KAAjB,iBAAiB,QAMrB;AAED,MAAM,CAAC,MAAM,uBAAuB,GAClC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAW,GAAG,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAEH,CAAC,KAAc,EAA4B,EAAE;IAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAkC,uBAAuB,CAAC,IAAI,CACvE,CAAC,OAA0B,EAAW,EAAE;QACtC,OAAO,OAAO,KAAK,KAAK,CAAC;IAC3B,CAAC,CACF,CAAC;IAEF,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,70 @@
1
+ /*
2
+ * ENTERPRISE_LICENSE_GRACE_PERIOD_IN_DAYS (30): how long an expired license
3
+ * keeps working, counted from its expiry - a verified license's signed
4
+ * expiry, or an unverified legacy license's stored expiry column.
5
+ *
6
+ * ENTERPRISE_LICENSE_TRIAL_PERIOD_IN_DAYS (14): how long an Enterprise install
7
+ * that has no license is on trial, counted from
8
+ * GlobalConfig.enterpriseEditionFirstSeenAt.
9
+ *
10
+ * Until either ends nothing changes; after it, enterprise configuration
11
+ * becomes read-only and SSO, SCIM and audit logging stop
12
+ * (EnterpriseEdition.isFeatureActive) until a license is activated. They are
13
+ * defined in Common/Types so the browser copy derives the same numbers.
14
+ */
15
+ export { ENTERPRISE_LICENSE_GRACE_PERIOD_IN_DAYS, ENTERPRISE_LICENSE_TRIAL_PERIOD_IN_DAYS, } from "../../Types/EnterpriseLicense/EnterpriseLicensePeriods";
16
+ export class EnterpriseLicenseSnapshotUtil {
17
+ /*
18
+ * True when the license currently entitles anything at all. Grace counts:
19
+ * the whole point of grace is that nothing changes until it ends.
20
+ */
21
+ static isUsable(snapshot) {
22
+ if (!snapshot) {
23
+ return false;
24
+ }
25
+ return snapshot.status === "valid" || snapshot.status === "grace";
26
+ }
27
+ static includesFeature(snapshot, feature) {
28
+ if (!snapshot) {
29
+ return false;
30
+ }
31
+ if (snapshot.features === "all") {
32
+ return true;
33
+ }
34
+ if (!Array.isArray(snapshot.features)) {
35
+ return false;
36
+ }
37
+ return snapshot.features.includes(feature);
38
+ }
39
+ // Usable AND entitled: the license half of EnterpriseEdition.isFeatureAvailable.
40
+ static entitles(snapshot, feature) {
41
+ return (EnterpriseLicenseSnapshotUtil.isUsable(snapshot) &&
42
+ EnterpriseLicenseSnapshotUtil.includesFeature(snapshot, feature));
43
+ }
44
+ /*
45
+ * "missing" with no graceEndsAt: no license is installed, and the start of
46
+ * the unlicensed trial (GlobalConfig.enterpriseEditionFirstSeenAt) is not
47
+ * known - the stamp has not been written yet (it failed, or the row does
48
+ * not exist yet), or nothing could be read at all (createMissing). So
49
+ * whether the install is still in its trial is unknown.
50
+ * EnterpriseEdition.isFeatureActive treats it as an unknown license state
51
+ * (active); the configuration checks still fail closed on it.
52
+ */
53
+ static isTrialStartUnknown(snapshot) {
54
+ if (!snapshot) {
55
+ return false;
56
+ }
57
+ return snapshot.status === "missing" && !snapshot.graceEndsAt;
58
+ }
59
+ static createMissing(message) {
60
+ return {
61
+ status: "missing",
62
+ verification: "none",
63
+ userLimit: null,
64
+ isEvaluation: false,
65
+ features: [],
66
+ message: message || "No OneUptime Enterprise license is installed.",
67
+ };
68
+ }
69
+ }
70
+ //# sourceMappingURL=EnterpriseLicenseSnapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnterpriseLicenseSnapshot.js","sourceRoot":"","sources":["../../../../Server/Enterprise/EnterpriseLicenseSnapshot.ts"],"names":[],"mappings":"AAoGA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,uCAAuC,EACvC,uCAAuC,GACxC,MAAM,wDAAwD,CAAC;AAEhE,MAAM,OAAO,6BAA6B;IACxC;;;OAGG;IACI,MAAM,CAAC,QAAQ,CAAC,QAA0C;QAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC;IACpE,CAAC;IAEM,MAAM,CAAC,eAAe,CAC3B,QAA0C,EAC1C,OAA0B;QAE1B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,iFAAiF;IAC1E,MAAM,CAAC,QAAQ,CACpB,QAA0C,EAC1C,OAA0B;QAE1B,OAAO,CACL,6BAA6B,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAChD,6BAA6B,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CACjE,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,mBAAmB,CAC/B,QAA0C;QAE1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IAChE,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,OAAgB;QAC1C,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,MAAM;YACpB,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,OAAO,IAAI,+CAA+C;SACpE,CAAC;IACJ,CAAC;CACF"}