@oneuptime/common 13.0.8 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/AnalyticsModels/AuditLog.ts +23 -15
- package/Models/DatabaseModels/GlobalConfig.ts +24 -0
- package/Models/DatabaseModels/Monitor.ts +3 -2
- package/Models/DatabaseModels/MonitorTemplate.ts +2 -1
- package/Scripts/generate-service-worker.js +65 -4
- package/Server/API/BaseAPI.ts +26 -5
- package/Server/API/GlobalConfigAPI.ts +228 -462
- package/Server/API/ProjectOIDC.ts +25 -16
- package/Server/API/ProjectSSO.ts +24 -16
- package/Server/API/StatusPageAPI.ts +100 -42
- package/Server/API/TeamMemberAPI.ts +10 -1
- package/Server/Enterprise/EnterpriseEdition.ts +649 -0
- package/Server/Enterprise/EnterpriseFeature.ts +48 -0
- package/Server/Enterprise/EnterpriseLicenseSnapshot.ts +192 -0
- package/Server/Enterprise/EnterpriseServerModule.ts +233 -0
- package/Server/EnvironmentConfig.ts +147 -2
- package/Server/Infrastructure/Postgres/SchemaMigrations/1793900000000-AddEnterpriseEditionFirstSeenAt.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Middleware/UserAuthorization.ts +38 -16
- package/Server/Services/AuditLogService.ts +84 -1079
- package/Server/Services/EnterpriseLicenseService.ts +38 -0
- package/Server/Services/GlobalConfigService.ts +80 -1
- package/Server/Services/MonitorProbeService.ts +116 -20
- package/Server/Services/MonitorService.ts +56 -4
- package/Server/Services/MonitorStatusTimelineService.ts +284 -0
- package/Server/Services/MonitorTemplateService.ts +26 -0
- package/Server/Services/ProjectService.ts +284 -0
- package/Server/Services/RumSessionPinService.ts +25 -6
- package/Server/Services/StatusPagePrivateUserService.ts +7 -3
- package/Server/Services/StatusPageService.ts +78 -1
- package/Server/Services/TeamMemberService.ts +11 -0
- package/Server/Services/TeamService.ts +10 -0
- package/Server/Services/UserService.ts +10 -17
- package/Server/Types/Database/Permissions/CreatePermission.ts +15 -0
- package/Server/Types/Database/Permissions/EditionPermission.ts +208 -18
- package/Server/Types/Database/Permissions/TablePermission.ts +10 -3
- package/Server/Types/Database/Permissions/UpdatePermission.ts +29 -0
- package/Server/Types/Markdown.ts +41 -0
- package/Server/Utils/CommunityEditionSsoReport.ts +361 -0
- package/Server/Utils/EditionEnforcement.ts +233 -0
- package/Server/Utils/FrontendEnvironment.ts +41 -2
- package/Server/Utils/InstanceHealth/RedisHealth.ts +12 -277
- package/Server/Utils/Monitor/AffectedResourceList.ts +190 -0
- package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +10 -1
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +543 -333
- package/Server/Utils/Monitor/MonitoringIntervalValidator.ts +116 -0
- package/Server/Utils/Workspace/Slack/Slack.ts +423 -10
- package/Tests/App/Accounts/LoginPasskey.test.tsx +18 -0
- package/Tests/App/Accounts/LoginSsoEdition.test.tsx +616 -0
- package/Tests/App/AdminDashboard/AdminAuthenticationSsoEdition.test.tsx +217 -0
- package/Tests/App/AdminDashboard/AdminEnterprisePluginPage.test.tsx +357 -0
- package/Tests/App/AdminDashboard/EnterpriseLicensesShell.test.tsx +214 -0
- package/Tests/App/AdminDashboard/GlobalSSOEnterpriseShells.test.tsx +271 -0
- package/Tests/App/AdminDashboard/HealthShells.test.tsx +659 -0
- package/Tests/App/Dashboard/AuditLogsAndComplianceShells.test.tsx +572 -0
- package/Tests/App/Dashboard/EnterpriseFeatureUpgrade.test.tsx +547 -0
- package/Tests/App/Dashboard/EnterprisePluginPage.test.tsx +667 -0
- package/Tests/App/Dashboard/IdentityEnterpriseShells.test.tsx +319 -0
- package/Tests/App/Dashboard/OnboardingSsoEmptyState.test.tsx +185 -0
- package/Tests/App/Dashboard/SecurityEventConnectionDiagnostics.test.tsx +45 -9
- package/Tests/App/Dashboard/SecurityEventDetailPanel.test.tsx +399 -0
- package/Tests/App/Dashboard/SecurityEventListRow.test.tsx +214 -0
- package/Tests/App/Dashboard/SecurityEventsEmptyState.test.tsx +1 -83
- package/Tests/App/Dashboard/SecurityEventsNavTabs.test.tsx +248 -0
- package/Tests/App/Dashboard/SecurityEventsViewer.test.tsx +1203 -0
- package/Tests/App/Dashboard/UserEmailCallSites.test.tsx +11 -91
- package/Tests/App/StatusPage/StatusPageSsoEmptyState.test.tsx +319 -0
- package/Tests/Helpers/RefreshAwareApiScan.ts +757 -0
- package/Tests/Helpers/TenantScopedRequestScan.ts +515 -0
- package/Tests/Scripts/GenerateServiceWorker.test.ts +931 -0
- package/Tests/Server/API/BaseAPICreateItemDoesNotMutateModel.test.ts +130 -0
- package/Tests/Server/API/GlobalConfigLicense.test.ts +742 -497
- package/Tests/Server/API/OnCallReadinessAPI.test.ts +35 -909
- package/Tests/Server/API/SsoProviderListingsEdition.test.ts +432 -0
- package/Tests/Server/API/TeamMemberLeaveScimLockEdition.test.ts +252 -0
- package/Tests/Server/Enterprise/EnterpriseEdition.test.ts +824 -0
- package/Tests/Server/Enterprise/EnterpriseFeatureActive.test.ts +643 -0
- package/Tests/Server/Enterprise/EnterpriseLicenseSnapshot.test.ts +294 -0
- package/Tests/Server/Enterprise/EnterpriseModelFeatureMap.test.ts +93 -0
- package/Tests/Server/Enterprise/EnterpriseOnlyModulesLiveInEe.test.ts +582 -0
- package/Tests/Server/Enterprise/EnterpriseServerModule.test.ts +247 -0
- package/Tests/Server/Enterprise/FakeEnterpriseModule.ts +502 -0
- package/Tests/Server/Enterprise/TestBillingFlag.ts +70 -0
- package/Tests/Server/EnvironmentConfigEnterpriseEdition.test.ts +314 -0
- package/Tests/Server/Infrastructure/ContainerBootConfiguration.test.ts +289 -0
- package/Tests/Server/Infrastructure/E2EClickHouseFixtureAccess.test.ts +5 -1
- package/Tests/Server/Middleware/UserAuthorization.test.ts +37 -2
- package/Tests/Server/Middleware/UserAuthorizationEditionEnforcement.test.ts +516 -0
- package/Tests/Server/Services/AuditLogService.test.ts +460 -990
- package/Tests/Server/Services/CreateAndReadResponsesKeepIds.test.ts +263 -0
- package/Tests/Server/Services/EnterpriseLicenseServiceKeyGeneration.test.ts +151 -0
- package/Tests/Server/Services/GlobalConfigServiceLicenseColumns.test.ts +357 -0
- package/Tests/Server/Services/MonitorDestinationInfoIPv6.test.ts +101 -0
- package/Tests/Server/Services/MonitorProbeServiceIntervalScheduling.test.ts +333 -0
- package/Tests/Server/Services/MonitorStatusTimelineDailyAggregates.test.ts +303 -0
- package/Tests/Server/Services/ProjectServiceAuditLogLicense.test.ts +701 -0
- package/Tests/Server/Services/ProjectServiceAuditLogSettingsCache.test.ts +31 -35
- package/Tests/Server/Services/ScimPushGroupsTeamLocksEdition.test.ts +431 -0
- package/Tests/Server/Services/SsoRequirementReadMasking.test.ts +419 -0
- package/Tests/Server/Services/SsoRequirementWriteGuard.test.ts +769 -0
- package/Tests/Server/Services/StatusPagePrivateUserInvitationPolicy.test.ts +94 -0
- package/Tests/Server/Services/UserAuthenticationService.test.ts +35 -0
- package/Tests/Server/Services/UserServiceSeatLimit.test.ts +94 -56
- package/Tests/Server/Types/Database/Permissions/EditionPermission.test.ts +1823 -0
- package/Tests/Server/Types/Markdown.test.ts +181 -0
- package/Tests/Server/Utils/CommunityEditionSsoReport.test.ts +565 -0
- package/Tests/Server/Utils/EditionEnforcement.test.ts +303 -0
- package/Tests/Server/Utils/FrontendEnvironment.test.ts +367 -0
- package/Tests/Server/Utils/InstanceHealth/RedisHealth.test.ts +38 -418
- package/Tests/Server/Utils/Monitor/AffectedResourceList.test.ts +518 -0
- package/Tests/Server/Utils/Monitor/Criteria/EvaluateOverTime.test.ts +24 -4
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +934 -96
- package/Tests/Server/Utils/Monitor/MonitoringIntervalValidator.test.ts +188 -0
- package/Tests/Server/Utils/Workspace/Slack/SlackMarkdownSectionSplit.test.ts +1209 -0
- package/Tests/Types/API/HostnameFromAuthority.test.ts +20 -10
- package/Tests/Types/API/HostnameIPv6.test.ts +149 -0
- package/Tests/Types/Database/CanonicalModelInstance.test.ts +190 -0
- package/Tests/UI/Components/EditionLabelLapseCopy.ts +104 -0
- package/Tests/UI/Components/EditionLabelLicenseManagerWiring.test.tsx +254 -0
- package/Tests/UI/Components/EditionLabelLicenseRefresh.test.tsx +84 -178
- package/Tests/UI/Components/EditionLabelLicenseStatus.test.tsx +1586 -0
- package/Tests/UI/Components/EditionLabelLicenseWritesGuard.test.tsx +157 -0
- package/Tests/UI/Components/Graphs/DayUptimeGraph.test.tsx +49 -2
- package/Tests/UI/Components/MarkdownConverters.test.ts +684 -0
- package/Tests/UI/Components/ModelListEmptyState.test.tsx +289 -0
- package/Tests/UI/Components/TelemetryViewer/TelemetryViewerEmptyContent.test.tsx +131 -0
- package/Tests/UI/EsbuildEnterpriseAlias.test.ts +1127 -0
- package/Tests/Utils/HostAddressUtil.test.ts +138 -0
- package/Tests/Utils/Monitor/MonitorDestinationUtil.test.ts +313 -0
- package/Tests/Utils/Monitor/MonitoringIntervalUtil.test.ts +304 -0
- package/Tests/Utils/StatusPage/UptimeDailyAggregateUtil.test.ts +248 -0
- package/Types/API/Hostname.ts +63 -16
- package/Types/Database/AccessControl/ColumnAccessControl.ts +19 -7
- package/Types/Database/AccessControl/ColumnBillingAccessControl.ts +19 -7
- package/Types/Database/AccessControl/OwnerOnlyColumn.ts +15 -6
- package/Types/Database/CanonicalModelInstance.ts +102 -0
- package/Types/Database/TableColumn.ts +20 -6
- package/Types/EnterpriseLicense/EnterpriseLicensePeriods.ts +29 -0
- package/Types/IP/IPv6.ts +6 -1
- package/Types/Monitor/MonitorStep.ts +6 -1
- package/Types/Monitor/ProxmoxAlertTemplates.ts +1 -1
- package/Types/StatusPage/UptimeDailyAggregate.ts +110 -0
- package/UI/Components/EditionLabel/EditionLabel.tsx +796 -1195
- package/UI/Components/EditionLabel/LicenseManager.ts +119 -0
- package/UI/Components/Graphs/DayUptimeGraph.tsx +123 -15
- package/UI/Components/Markdown.tsx/MarkdownConverters.ts +0 -0
- package/UI/Components/ModelList/ModelList.tsx +11 -1
- package/UI/Components/MonitorGraphs/Uptime.tsx +69 -0
- package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +28 -12
- package/UI/esbuild-enterprise.js +263 -0
- package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +7 -2
- package/Utils/HostAddressUtil.ts +94 -0
- package/Utils/Monitor/MonitorDestinationUtil.ts +157 -0
- package/Utils/Monitor/MonitoringIntervalUtil.ts +436 -0
- package/Utils/StatusPage/UptimeDailyAggregateUtil.ts +192 -0
- package/build/dist/Models/AnalyticsModels/AuditLog.js +23 -15
- package/build/dist/Models/AnalyticsModels/AuditLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalConfig.js +25 -0
- package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +2 -2
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorTemplate.js +2 -1
- package/build/dist/Models/DatabaseModels/MonitorTemplate.js.map +1 -1
- package/build/dist/Server/API/BaseAPI.js +26 -5
- package/build/dist/Server/API/BaseAPI.js.map +1 -1
- package/build/dist/Server/API/GlobalConfigAPI.js +148 -344
- package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
- package/build/dist/Server/API/ProjectOIDC.js +24 -16
- package/build/dist/Server/API/ProjectOIDC.js.map +1 -1
- package/build/dist/Server/API/ProjectSSO.js +24 -16
- package/build/dist/Server/API/ProjectSSO.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +93 -43
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/API/TeamMemberAPI.js +8 -1
- package/build/dist/Server/API/TeamMemberAPI.js.map +1 -1
- package/build/dist/Server/Enterprise/EnterpriseEdition.js +466 -0
- package/build/dist/Server/Enterprise/EnterpriseEdition.js.map +1 -0
- package/build/dist/Server/Enterprise/EnterpriseFeature.js +39 -0
- package/build/dist/Server/Enterprise/EnterpriseFeature.js.map +1 -0
- package/build/dist/Server/Enterprise/EnterpriseLicenseSnapshot.js +70 -0
- package/build/dist/Server/Enterprise/EnterpriseLicenseSnapshot.js.map +1 -0
- package/build/dist/Server/Enterprise/EnterpriseServerModule.js +84 -0
- package/build/dist/Server/Enterprise/EnterpriseServerModule.js.map +1 -0
- package/build/dist/Server/EnvironmentConfig.js +84 -2
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793900000000-AddEnterpriseEditionFirstSeenAt.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1793900000000-AddEnterpriseEditionFirstSeenAt.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/UserAuthorization.js +30 -11
- package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
- package/build/dist/Server/Services/AuditLogService.js +71 -740
- package/build/dist/Server/Services/AuditLogService.js.map +1 -1
- package/build/dist/Server/Services/EnterpriseLicenseService.js +34 -0
- package/build/dist/Server/Services/EnterpriseLicenseService.js.map +1 -1
- package/build/dist/Server/Services/GlobalConfigService.js +63 -0
- package/build/dist/Server/Services/GlobalConfigService.js.map +1 -1
- package/build/dist/Server/Services/MonitorProbeService.js +90 -17
- package/build/dist/Server/Services/MonitorProbeService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +45 -4
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorStatusTimelineService.js +242 -0
- package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorTemplateService.js +16 -0
- package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +214 -0
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/RumSessionPinService.js +24 -6
- package/build/dist/Server/Services/RumSessionPinService.js.map +1 -1
- package/build/dist/Server/Services/StatusPagePrivateUserService.js +7 -3
- package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +71 -0
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/TeamMemberService.js +10 -0
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/TeamService.js +9 -0
- package/build/dist/Server/Services/TeamService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +10 -16
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/CreatePermission.js +10 -0
- package/build/dist/Server/Types/Database/Permissions/CreatePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/EditionPermission.js +154 -14
- package/build/dist/Server/Types/Database/Permissions/EditionPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/TablePermission.js +10 -3
- package/build/dist/Server/Types/Database/Permissions/TablePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/UpdatePermission.js +17 -0
- package/build/dist/Server/Types/Database/Permissions/UpdatePermission.js.map +1 -1
- package/build/dist/Server/Types/Markdown.js +31 -0
- package/build/dist/Server/Types/Markdown.js.map +1 -1
- package/build/dist/Server/Utils/CommunityEditionSsoReport.js +223 -0
- package/build/dist/Server/Utils/CommunityEditionSsoReport.js.map +1 -0
- package/build/dist/Server/Utils/EditionEnforcement.js +187 -0
- package/build/dist/Server/Utils/EditionEnforcement.js.map +1 -0
- package/build/dist/Server/Utils/FrontendEnvironment.js +31 -2
- package/build/dist/Server/Utils/FrontendEnvironment.js.map +1 -1
- package/build/dist/Server/Utils/InstanceHealth/RedisHealth.js +6 -193
- package/build/dist/Server/Utils/InstanceHealth/RedisHealth.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/AffectedResourceList.js +96 -0
- package/build/dist/Server/Utils/Monitor/AffectedResourceList.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +8 -1
- package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +449 -261
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitoringIntervalValidator.js +88 -0
- package/build/dist/Server/Utils/Monitor/MonitoringIntervalValidator.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +331 -11
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Types/API/Hostname.js +59 -11
- package/build/dist/Types/API/Hostname.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js +19 -7
- package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js +19 -7
- package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/OwnerOnlyColumn.js +13 -6
- package/build/dist/Types/Database/AccessControl/OwnerOnlyColumn.js.map +1 -1
- package/build/dist/Types/Database/CanonicalModelInstance.js +88 -0
- package/build/dist/Types/Database/CanonicalModelInstance.js.map +1 -0
- package/build/dist/Types/Database/TableColumn.js +19 -6
- package/build/dist/Types/Database/TableColumn.js.map +1 -1
- package/build/dist/Types/EnterpriseLicense/EnterpriseLicensePeriods.js +28 -0
- package/build/dist/Types/EnterpriseLicense/EnterpriseLicensePeriods.js.map +1 -0
- package/build/dist/Types/IP/IPv6.js +6 -1
- package/build/dist/Types/IP/IPv6.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +5 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js +1 -1
- package/build/dist/Types/StatusPage/UptimeDailyAggregate.js +32 -0
- package/build/dist/Types/StatusPage/UptimeDailyAggregate.js.map +1 -0
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js +414 -585
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
- package/build/dist/UI/Components/EditionLabel/LicenseManager.js +2 -0
- package/build/dist/UI/Components/EditionLabel/LicenseManager.js.map +1 -0
- package/build/dist/UI/Components/Graphs/DayUptimeGraph.js +90 -17
- package/build/dist/UI/Components/Graphs/DayUptimeGraph.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js +0 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js.map +1 -1
- package/build/dist/UI/Components/ModelList/ModelList.js +4 -1
- package/build/dist/UI/Components/ModelList/ModelList.js.map +1 -1
- package/build/dist/UI/Components/MonitorGraphs/Uptime.js +42 -1
- package/build/dist/UI/Components/MonitorGraphs/Uptime.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +2 -2
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +6 -2
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
- package/build/dist/Utils/HostAddressUtil.js +80 -0
- package/build/dist/Utils/HostAddressUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/MonitorDestinationUtil.js +127 -0
- package/build/dist/Utils/Monitor/MonitorDestinationUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/MonitoringIntervalUtil.js +374 -0
- package/build/dist/Utils/Monitor/MonitoringIntervalUtil.js.map +1 -0
- package/build/dist/Utils/StatusPage/UptimeDailyAggregateUtil.js +148 -0
- package/build/dist/Utils/StatusPage/UptimeDailyAggregateUtil.js.map +1 -0
- package/jest.config.json +3 -1
- package/package.json +1 -1
- package/test-setup.sh +103 -34
- package/tsconfig.json +13 -0
- package/Server/API/EnterpriseLicenseAPI.ts +0 -925
- package/Server/API/TeamComplianceAPI.ts +0 -158
- package/Server/Middleware/SCIMAuthorization.ts +0 -141
- package/Server/Services/TeamComplianceService.ts +0 -733
- package/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.ts +0 -186
- package/Server/Utils/InstanceHealth/PostgresHealth.ts +0 -286
- package/Tests/App/AdminDashboard/EnterpriseLicenseInstanceActivity.test.tsx +0 -451
- package/Tests/App/Dashboard/AuditLogsTable.test.tsx +0 -598
- package/Tests/App/Dashboard/SecurityEventsExplorer.test.tsx +0 -761
- package/Tests/App/Dashboard/SecurityEventsSideMenu.test.tsx +0 -247
- package/Tests/App/Dashboard/SecurityEventsTableColumns.test.tsx +0 -382
- package/Tests/App/Dashboard/SecurityEventsVolumeChart.test.tsx +0 -321
- package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +0 -1851
- package/Tests/Server/Middleware/SCIMAuthorization.test.ts +0 -525
- package/Tests/Server/Services/TeamComplianceServiceBehaviour.test.ts +0 -1845
- package/Tests/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.test.ts +0 -495
- package/Tests/Server/Utils/InstanceHealth/PostgresHealth.test.ts +0 -337
- package/Tests/Utils/EnterpriseLicenseSeats.test.ts +0 -576
- package/Tests/Utils/EnterpriseLicenseSync.test.ts +0 -568
- package/Utils/EnterpriseLicense/EnterpriseLicenseSeats.ts +0 -287
- package/Utils/EnterpriseLicense/EnterpriseLicenseSync.ts +0 -244
- package/build/dist/Server/API/EnterpriseLicenseAPI.js +0 -646
- package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +0 -1
- package/build/dist/Server/API/TeamComplianceAPI.js +0 -111
- package/build/dist/Server/API/TeamComplianceAPI.js.map +0 -1
- package/build/dist/Server/Middleware/SCIMAuthorization.js +0 -124
- package/build/dist/Server/Middleware/SCIMAuthorization.js.map +0 -1
- package/build/dist/Server/Services/TeamComplianceService.js +0 -537
- package/build/dist/Server/Services/TeamComplianceService.js.map +0 -1
- package/build/dist/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.js +0 -145
- package/build/dist/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.js.map +0 -1
- package/build/dist/Server/Utils/InstanceHealth/PostgresHealth.js +0 -194
- package/build/dist/Server/Utils/InstanceHealth/PostgresHealth.js.map +0 -1
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js +0 -168
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js.map +0 -1
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSync.js +0 -174
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSync.js.map +0 -1
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
ExpressResponse,
|
|
7
7
|
NextFunction,
|
|
8
8
|
} from "../Utils/Express";
|
|
9
|
+
import EditionEnforcement from "../Utils/EditionEnforcement";
|
|
9
10
|
import Response from "../Utils/Response";
|
|
10
11
|
import BaseAPI from "./BaseAPI";
|
|
11
12
|
import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
@@ -40,22 +41,30 @@ export default class ProjectOidcAPI extends BaseAPI<
|
|
|
40
41
|
);
|
|
41
42
|
}
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
44
|
+
/*
|
|
45
|
+
* Only list providers a user can actually sign in with: the
|
|
46
|
+
* Community Edition serves no OIDC login routes, so it lists none
|
|
47
|
+
* rather than send the user to a 404.
|
|
48
|
+
*/
|
|
49
|
+
const oidc: Array<ProjectOIDC> =
|
|
50
|
+
EditionEnforcement.areSsoRoutesServed()
|
|
51
|
+
? await this.service.findBy({
|
|
52
|
+
query: {
|
|
53
|
+
projectId: projectId,
|
|
54
|
+
isEnabled: true,
|
|
55
|
+
},
|
|
56
|
+
limit: LIMIT_PER_PROJECT,
|
|
57
|
+
skip: 0,
|
|
58
|
+
select: {
|
|
59
|
+
name: true,
|
|
60
|
+
description: true,
|
|
61
|
+
_id: true,
|
|
62
|
+
},
|
|
63
|
+
props: {
|
|
64
|
+
isRoot: true,
|
|
65
|
+
},
|
|
66
|
+
})
|
|
67
|
+
: [];
|
|
59
68
|
|
|
60
69
|
return Response.sendEntityArrayResponse(
|
|
61
70
|
req,
|
package/Server/API/ProjectSSO.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
ExpressResponse,
|
|
7
7
|
NextFunction,
|
|
8
8
|
} from "../Utils/Express";
|
|
9
|
+
import EditionEnforcement from "../Utils/EditionEnforcement";
|
|
9
10
|
import Response from "../Utils/Response";
|
|
10
11
|
import BaseAPI from "./BaseAPI";
|
|
11
12
|
import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
@@ -40,22 +41,29 @@ export default class ProjectSsoAPI extends BaseAPI<
|
|
|
40
41
|
);
|
|
41
42
|
}
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
44
|
+
/*
|
|
45
|
+
* Only list providers a user can actually sign in with: the
|
|
46
|
+
* Community Edition serves no SAML login routes, so it lists none
|
|
47
|
+
* rather than send the user to a 404.
|
|
48
|
+
*/
|
|
49
|
+
const sso: Array<ProjectSSO> = EditionEnforcement.areSsoRoutesServed()
|
|
50
|
+
? await this.service.findBy({
|
|
51
|
+
query: {
|
|
52
|
+
projectId: projectId,
|
|
53
|
+
isEnabled: true,
|
|
54
|
+
},
|
|
55
|
+
limit: LIMIT_PER_PROJECT,
|
|
56
|
+
skip: 0,
|
|
57
|
+
select: {
|
|
58
|
+
name: true,
|
|
59
|
+
description: true,
|
|
60
|
+
_id: true,
|
|
61
|
+
},
|
|
62
|
+
props: {
|
|
63
|
+
isRoot: true,
|
|
64
|
+
},
|
|
65
|
+
})
|
|
66
|
+
: [];
|
|
59
67
|
|
|
60
68
|
return Response.sendEntityArrayResponse(
|
|
61
69
|
req,
|
|
@@ -28,6 +28,8 @@ import StatusPageResourceService from "../Services/StatusPageResourceService";
|
|
|
28
28
|
import StatusPageService, {
|
|
29
29
|
Service as StatusPageServiceType,
|
|
30
30
|
} from "../Services/StatusPageService";
|
|
31
|
+
import { UptimeDailyAggregate } from "../../Types/StatusPage/UptimeDailyAggregate";
|
|
32
|
+
import UptimeDailyAggregateUtil from "../../Utils/StatusPage/UptimeDailyAggregateUtil";
|
|
31
33
|
import StatusPageSsoService from "../Services/StatusPageSsoService";
|
|
32
34
|
import StatusPageOidcService from "../Services/StatusPageOidcService";
|
|
33
35
|
import StatusPageSubscriberService from "../Services/StatusPageSubscriberService";
|
|
@@ -40,6 +42,7 @@ import {
|
|
|
40
42
|
ExpressResponse,
|
|
41
43
|
NextFunction,
|
|
42
44
|
} from "../Utils/Express";
|
|
45
|
+
import EditionEnforcement from "../Utils/EditionEnforcement";
|
|
43
46
|
import logger, { getLogAttributesFromRequest } from "../Utils/Logger";
|
|
44
47
|
import {
|
|
45
48
|
SEARCH_ENGINE_INDEXING_FLAG_NAME,
|
|
@@ -1044,16 +1047,24 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
1044
1047
|
select.footerHTML = true;
|
|
1045
1048
|
}
|
|
1046
1049
|
|
|
1050
|
+
/*
|
|
1051
|
+
* The status page app offers SSO sign-in when this is non-zero.
|
|
1052
|
+
* While SSO is not active - the Community Edition serves no status
|
|
1053
|
+
* page SSO routes, and on a lapsed Enterprise license they refuse -
|
|
1054
|
+
* it reports none rather than send visitors into a dead end.
|
|
1055
|
+
*/
|
|
1047
1056
|
const hasEnabledSSO: PositiveNumber =
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
+
EditionEnforcement.areSsoRoutesServed()
|
|
1058
|
+
? await StatusPageSsoService.countBy({
|
|
1059
|
+
query: {
|
|
1060
|
+
isEnabled: true,
|
|
1061
|
+
statusPageId: objectId,
|
|
1062
|
+
},
|
|
1063
|
+
props: {
|
|
1064
|
+
isRoot: true,
|
|
1065
|
+
},
|
|
1066
|
+
})
|
|
1067
|
+
: new PositiveNumber(0);
|
|
1057
1068
|
|
|
1058
1069
|
const item: StatusPage | null = await this.service.findOneById({
|
|
1059
1070
|
id: objectId,
|
|
@@ -1081,6 +1092,19 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
1081
1092
|
delete item.footerHTML;
|
|
1082
1093
|
}
|
|
1083
1094
|
|
|
1095
|
+
/*
|
|
1096
|
+
* The status page app forces SSO sign-in from this flag. Report
|
|
1097
|
+
* the EFFECTIVE requirement: while SSO is not active (the
|
|
1098
|
+
* Community Edition, or a lapsed Enterprise license) it is not
|
|
1099
|
+
* enforced and password sign-in works, so the page must not send
|
|
1100
|
+
* visitors into an SSO flow that does not exist or refuses. The
|
|
1101
|
+
* stored value is untouched and applies again as soon as SSO is
|
|
1102
|
+
* active.
|
|
1103
|
+
*/
|
|
1104
|
+
if (!EditionEnforcement.isSsoEnforced()) {
|
|
1105
|
+
item.requireSsoForLogin = false;
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1084
1108
|
const footerLinks: Array<StatusPageFooterLink> =
|
|
1085
1109
|
await StatusPageFooterLinkService.findBy({
|
|
1086
1110
|
query: {
|
|
@@ -1239,23 +1263,30 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
1239
1263
|
req.params["statusPageId"] as string,
|
|
1240
1264
|
);
|
|
1241
1265
|
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1266
|
+
/*
|
|
1267
|
+
* Only list providers a visitor can actually sign in with: the
|
|
1268
|
+
* Community Edition serves no status page SSO login routes.
|
|
1269
|
+
*/
|
|
1270
|
+
const sso: Array<StatusPageSSO> =
|
|
1271
|
+
EditionEnforcement.areSsoRoutesServed()
|
|
1272
|
+
? await StatusPageSsoService.findBy({
|
|
1273
|
+
query: {
|
|
1274
|
+
statusPageId: objectId,
|
|
1275
|
+
isEnabled: true,
|
|
1276
|
+
},
|
|
1277
|
+
select: {
|
|
1278
|
+
signOnURL: true,
|
|
1279
|
+
name: true,
|
|
1280
|
+
description: true,
|
|
1281
|
+
_id: true,
|
|
1282
|
+
},
|
|
1283
|
+
limit: LIMIT_PER_PROJECT,
|
|
1284
|
+
skip: 0,
|
|
1285
|
+
props: {
|
|
1286
|
+
isRoot: true,
|
|
1287
|
+
},
|
|
1288
|
+
})
|
|
1289
|
+
: [];
|
|
1259
1290
|
|
|
1260
1291
|
return Response.sendEntityArrayResponse(
|
|
1261
1292
|
req,
|
|
@@ -1279,23 +1310,29 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
1279
1310
|
req.params["statusPageId"] as string,
|
|
1280
1311
|
);
|
|
1281
1312
|
|
|
1313
|
+
/*
|
|
1314
|
+
* Only list providers a visitor can actually sign in with: the
|
|
1315
|
+
* Community Edition serves no status page OIDC login routes.
|
|
1316
|
+
*/
|
|
1282
1317
|
const oidc: Array<StatusPageOIDC> =
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1318
|
+
EditionEnforcement.areSsoRoutesServed()
|
|
1319
|
+
? await StatusPageOidcService.findBy({
|
|
1320
|
+
query: {
|
|
1321
|
+
statusPageId: objectId,
|
|
1322
|
+
isEnabled: true,
|
|
1323
|
+
},
|
|
1324
|
+
select: {
|
|
1325
|
+
name: true,
|
|
1326
|
+
description: true,
|
|
1327
|
+
_id: true,
|
|
1328
|
+
},
|
|
1329
|
+
limit: LIMIT_PER_PROJECT,
|
|
1330
|
+
skip: 0,
|
|
1331
|
+
props: {
|
|
1332
|
+
isRoot: true,
|
|
1333
|
+
},
|
|
1334
|
+
})
|
|
1335
|
+
: [];
|
|
1299
1336
|
|
|
1300
1337
|
return Response.sendEntityArrayResponse(
|
|
1301
1338
|
req,
|
|
@@ -4399,6 +4436,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
4399
4436
|
statusPageResources: StatusPageResource[];
|
|
4400
4437
|
monitorStatuses: MonitorStatus[];
|
|
4401
4438
|
monitorStatusTimelines: MonitorStatusTimeline[];
|
|
4439
|
+
uptimeDailyAggregate: UptimeDailyAggregate;
|
|
4402
4440
|
monitorGroupCurrentStatuses: Dictionary<ObjectID>;
|
|
4403
4441
|
statusPageGroups: StatusPageGroup[];
|
|
4404
4442
|
statusPage: StatusPage;
|
|
@@ -4678,6 +4716,22 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
4678
4716
|
endDate: endDateForMonitorTimeline,
|
|
4679
4717
|
});
|
|
4680
4718
|
|
|
4719
|
+
/*
|
|
4720
|
+
* What the uptime bars are actually painted from.
|
|
4721
|
+
*
|
|
4722
|
+
* `monitorStatusTimelines` above stays in the response - it is documented
|
|
4723
|
+
* public API and the E2E helpers read it for current status - but it must
|
|
4724
|
+
* NOT drive the bars. It is capped at LIMIT_MAX across every monitor on
|
|
4725
|
+
* the page and sorted newest-first, so on a page with churny monitors it
|
|
4726
|
+
* returns a few recent days and silently drops the rest.
|
|
4727
|
+
*/
|
|
4728
|
+
const uptimeDailyAggregate: UptimeDailyAggregate =
|
|
4729
|
+
await StatusPageService.getUptimeDailyAggregateForStatusPage({
|
|
4730
|
+
monitorIds: monitorsOnStatusPageForTimeline,
|
|
4731
|
+
startDate: startDateForMonitorTimeline,
|
|
4732
|
+
endDate: endDateForMonitorTimeline,
|
|
4733
|
+
});
|
|
4734
|
+
|
|
4681
4735
|
// return everything.
|
|
4682
4736
|
|
|
4683
4737
|
return {
|
|
@@ -4686,6 +4740,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
4686
4740
|
monitorGroupCurrentStatuses,
|
|
4687
4741
|
statusPageGroups: groups,
|
|
4688
4742
|
monitorStatusTimelines,
|
|
4743
|
+
uptimeDailyAggregate,
|
|
4689
4744
|
statusPage,
|
|
4690
4745
|
monitorsOnStatusPage,
|
|
4691
4746
|
monitorsInGroup,
|
|
@@ -4719,6 +4774,7 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
4719
4774
|
statusPage,
|
|
4720
4775
|
monitorsOnStatusPage,
|
|
4721
4776
|
monitorStatusTimelines,
|
|
4777
|
+
uptimeDailyAggregate,
|
|
4722
4778
|
statusPageGroups,
|
|
4723
4779
|
monitorsInGroup,
|
|
4724
4780
|
startDateForMonitorTimeline: startDate,
|
|
@@ -5519,6 +5575,8 @@ export default class StatusPageAPI extends BaseAPI<
|
|
|
5519
5575
|
monitorStatusTimelines,
|
|
5520
5576
|
MonitorStatusTimeline,
|
|
5521
5577
|
),
|
|
5578
|
+
uptimeDailyAggregate:
|
|
5579
|
+
UptimeDailyAggregateUtil.toJSON(uptimeDailyAggregate),
|
|
5522
5580
|
resourceGroups: BaseModel.toJSONArray(statusPageGroups, StatusPageGroup),
|
|
5523
5581
|
monitorStatuses: BaseModel.toJSONArray(monitorStatuses, MonitorStatus),
|
|
5524
5582
|
statusPageResources: BaseModel.toJSONArray(
|
|
@@ -5,6 +5,7 @@ import TeamMemberService, {
|
|
|
5
5
|
TeamMemberService as TeamMemberServiceType,
|
|
6
6
|
} from "../Services/TeamMemberService";
|
|
7
7
|
import UserService from "../Services/UserService";
|
|
8
|
+
import EditionEnforcement from "../Utils/EditionEnforcement";
|
|
8
9
|
import {
|
|
9
10
|
ExpressRequest,
|
|
10
11
|
ExpressResponse,
|
|
@@ -221,7 +222,15 @@ export default class TeamMemberAPI extends BaseAPI<
|
|
|
221
222
|
);
|
|
222
223
|
}
|
|
223
224
|
|
|
224
|
-
|
|
225
|
+
/*
|
|
226
|
+
* While SCIM Push Groups owns the project's teams only the identity
|
|
227
|
+
* provider may remove members. Not on the Community Edition, which
|
|
228
|
+
* has no SCIM endpoint: a leftover setting would trap the member.
|
|
229
|
+
*/
|
|
230
|
+
if (
|
|
231
|
+
teamMember.projectId &&
|
|
232
|
+
EditionEnforcement.areScimTeamLocksEnforced()
|
|
233
|
+
) {
|
|
225
234
|
const scimCount: number = (
|
|
226
235
|
await ProjectSCIMService.countBy({
|
|
227
236
|
query: {
|