@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
|
@@ -3,19 +3,27 @@ import Response from "../Utils/Response";
|
|
|
3
3
|
import BaseAPI from "./BaseAPI";
|
|
4
4
|
import GlobalConfig from "../../Models/DatabaseModels/GlobalConfig";
|
|
5
5
|
import ObjectID from "../../Types/ObjectID";
|
|
6
|
-
import
|
|
7
|
-
import API from "../../Utils/API";
|
|
8
|
-
import HTTPErrorResponse from "../../Types/API/HTTPErrorResponse";
|
|
9
|
-
import { AppVersion, DisableUpdateCheck, EnterpriseLicenseValidationUrl, Host, } from "../EnvironmentConfig";
|
|
6
|
+
import { AppVersion, DisableUpdateCheck } from "../EnvironmentConfig";
|
|
10
7
|
import VersionUtil from "../../Utils/VersionUtil";
|
|
11
8
|
import UserMiddleware from "../Middleware/UserAuthorization";
|
|
12
9
|
import NotAuthenticatedException from "../../Types/Exception/NotAuthenticatedException";
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
|
|
10
|
+
import EnterpriseEdition from "../Enterprise/EnterpriseEdition";
|
|
11
|
+
import { EnterpriseLicenseSnapshotUtil, } from "../Enterprise/EnterpriseLicenseSnapshot";
|
|
12
|
+
// Everything buildLicenseResponse reads off the GlobalConfig row.
|
|
13
|
+
export const LICENSE_RESPONSE_CONFIG_SELECT = {
|
|
14
|
+
enterpriseLicenseKey: true,
|
|
15
|
+
enterpriseLicenseToken: true,
|
|
16
|
+
enterpriseLicenseCurrentUserCount: true,
|
|
17
|
+
enterpriseLicenseUserCountUpdatedAt: true,
|
|
18
|
+
enterpriseLicenseInstances: true,
|
|
19
|
+
instanceId: true,
|
|
20
|
+
latestReleaseVersion: true,
|
|
21
|
+
latestReleasePublishedAt: true,
|
|
22
|
+
latestReleaseCheckedAt: true,
|
|
23
|
+
};
|
|
16
24
|
export default class GlobalConfigAPI extends BaseAPI {
|
|
17
25
|
constructor() {
|
|
18
|
-
var _a, _b
|
|
26
|
+
var _a, _b;
|
|
19
27
|
super(GlobalConfig, GlobalConfigService);
|
|
20
28
|
this.router.get(`${(_a = new this.entityType().getCrudApiPath()) === null || _a === void 0 ? void 0 : _a.toString()}/vars`, async (req, res, next) => {
|
|
21
29
|
try {
|
|
@@ -36,8 +44,21 @@ export default class GlobalConfigAPI extends BaseAPI {
|
|
|
36
44
|
next(err);
|
|
37
45
|
}
|
|
38
46
|
});
|
|
47
|
+
/*
|
|
48
|
+
* The license state of this installation, for the edition pill and the
|
|
49
|
+
* license dialog.
|
|
50
|
+
*
|
|
51
|
+
* This route stays in core so the Community Edition can still serve the
|
|
52
|
+
* version and update-check half of the dialog. The license half comes
|
|
53
|
+
* from the Enterprise license client through EnterpriseEdition; activating
|
|
54
|
+
* and refreshing a license (the POSTs on this path) are served by the
|
|
55
|
+
* Enterprise module itself (ee/Server/License).
|
|
56
|
+
*
|
|
57
|
+
* This route also serves the login page (before sign-in), so it cannot
|
|
58
|
+
* require authentication outright. Anybody but a master admin gets only
|
|
59
|
+
* what the edition pill shows - see buildLicenseResponse.
|
|
60
|
+
*/
|
|
39
61
|
this.router.get(`${(_b = new this.entityType().getCrudApiPath()) === null || _b === void 0 ? void 0 : _b.toString()}/license`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
|
|
40
|
-
var _a;
|
|
41
62
|
try {
|
|
42
63
|
/*
|
|
43
64
|
* This route also serves the login page, so a caller with no session
|
|
@@ -50,161 +71,34 @@ export default class GlobalConfigAPI extends BaseAPI {
|
|
|
50
71
|
UserMiddleware.isAnonymousRequest(req)) {
|
|
51
72
|
throw new NotAuthenticatedException(UserMiddleware.AUTHENTICATION_REQUIRED_MESSAGE);
|
|
52
73
|
}
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
enterpriseLicenseKey: true,
|
|
59
|
-
enterpriseLicenseToken: true,
|
|
60
|
-
enterpriseLicenseIsEvaluation: true,
|
|
61
|
-
enterpriseLicenseUserLimit: true,
|
|
62
|
-
enterpriseLicenseCurrentUserCount: true,
|
|
63
|
-
enterpriseLicenseUserCountUpdatedAt: true,
|
|
64
|
-
enterpriseLicenseInstances: true,
|
|
65
|
-
instanceId: true,
|
|
66
|
-
latestReleaseVersion: true,
|
|
67
|
-
latestReleasePublishedAt: true,
|
|
68
|
-
latestReleaseCheckedAt: true,
|
|
69
|
-
},
|
|
70
|
-
props: {
|
|
71
|
-
isRoot: true,
|
|
72
|
-
},
|
|
73
|
-
});
|
|
74
|
-
/*
|
|
75
|
-
* This route also serves the login page (before sign-in), so it
|
|
76
|
-
* cannot require authentication outright. Anonymous callers only
|
|
77
|
-
* get enough to render the edition pill — the license key, token
|
|
78
|
-
* and instance topology require a signed-in user.
|
|
79
|
-
*/
|
|
80
|
-
const isAuthenticatedUser = Boolean((_a = req.userAuthorization) === null || _a === void 0 ? void 0 : _a.userId);
|
|
81
|
-
const licenseValid = Boolean((config === null || config === void 0 ? void 0 : config.enterpriseLicenseToken) &&
|
|
82
|
-
(config === null || config === void 0 ? void 0 : config.enterpriseLicenseExpiresAt) &&
|
|
83
|
-
config.enterpriseLicenseExpiresAt.getTime() > Date.now());
|
|
74
|
+
const audience = GlobalConfigAPI.getLicenseResponseAudience(req);
|
|
75
|
+
const isEnterpriseEditionLoaded = EnterpriseEdition.isLoaded();
|
|
76
|
+
const snapshot = isEnterpriseEditionLoaded
|
|
77
|
+
? await EnterpriseEdition.getLicenseSnapshot()
|
|
78
|
+
: null;
|
|
84
79
|
/*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* callers: it is derived from the live User table, and an anonymous
|
|
88
|
-
* visitor on the login page has no business being told how close this
|
|
89
|
-
* server is to refusing new accounts.
|
|
80
|
+
* Only a master admin's response carries anything read from the row
|
|
81
|
+
* or derived from the live User table, so nobody else costs a read.
|
|
90
82
|
*/
|
|
91
|
-
const
|
|
92
|
-
? await
|
|
93
|
-
|
|
94
|
-
|
|
83
|
+
const config = audience === "master-admin"
|
|
84
|
+
? await GlobalConfigService.findOneById({
|
|
85
|
+
id: ObjectID.getZeroObjectID(),
|
|
86
|
+
select: LICENSE_RESPONSE_CONFIG_SELECT,
|
|
87
|
+
props: {
|
|
88
|
+
isRoot: true,
|
|
89
|
+
},
|
|
95
90
|
})
|
|
96
91
|
: null;
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
* edition modal shows the evaluation notice to anyone who opens it.
|
|
108
|
-
*/
|
|
109
|
-
isEvaluationLicense: Boolean(config === null || config === void 0 ? void 0 : config.enterpriseLicenseIsEvaluation), userLimit: typeof (config === null || config === void 0 ? void 0 : config.enterpriseLicenseUserLimit) === "number"
|
|
110
|
-
? config.enterpriseLicenseUserLimit
|
|
111
|
-
: null, currentUserCount: typeof (config === null || config === void 0 ? void 0 : config.enterpriseLicenseCurrentUserCount) === "number"
|
|
112
|
-
? config.enterpriseLicenseCurrentUserCount
|
|
113
|
-
: null, userCountUpdatedAt: (config === null || config === void 0 ? void 0 : config.enterpriseLicenseUserCountUpdatedAt)
|
|
114
|
-
? config.enterpriseLicenseUserCountUpdatedAt.toISOString()
|
|
115
|
-
: null, instances: isAuthenticatedUser &&
|
|
116
|
-
Array.isArray(config === null || config === void 0 ? void 0 : config.enterpriseLicenseInstances)
|
|
117
|
-
? config.enterpriseLicenseInstances
|
|
118
|
-
: [], instanceId: isAuthenticatedUser && (config === null || config === void 0 ? void 0 : config.instanceId)
|
|
119
|
-
? config.instanceId.toString()
|
|
120
|
-
: null,
|
|
121
|
-
/*
|
|
122
|
-
* Which build this installation runs, and whether a newer one has
|
|
123
|
-
* been released, are gated the same way as the instance topology:
|
|
124
|
-
* telling an anonymous visitor on the login page that this server
|
|
125
|
-
* is behind on patches advertises an unpatched target.
|
|
126
|
-
*/
|
|
127
|
-
currentVersion: isAuthenticatedUser ? AppVersion : null, latestVersion: isAuthenticatedUser
|
|
128
|
-
? (config === null || config === void 0 ? void 0 : config.latestReleaseVersion) || null
|
|
129
|
-
: null, latestVersionPublishedAt: isAuthenticatedUser && (config === null || config === void 0 ? void 0 : config.latestReleasePublishedAt)
|
|
130
|
-
? config.latestReleasePublishedAt.toISOString()
|
|
131
|
-
: null, latestVersionCheckedAt: isAuthenticatedUser && (config === null || config === void 0 ? void 0 : config.latestReleaseCheckedAt)
|
|
132
|
-
? config.latestReleaseCheckedAt.toISOString()
|
|
133
|
-
: null, isUpdateAvailable: isAuthenticatedUser
|
|
134
|
-
? VersionUtil.isUpdateAvailable({
|
|
135
|
-
currentVersion: AppVersion,
|
|
136
|
-
latestVersion: config === null || config === void 0 ? void 0 : config.latestReleaseVersion,
|
|
137
|
-
})
|
|
138
|
-
: false,
|
|
139
|
-
/*
|
|
140
|
-
* Lets the modal say "update checks are off" instead of "has not
|
|
141
|
-
* checked yet", which would be a promise the installation is never
|
|
142
|
-
* going to keep.
|
|
143
|
-
*/
|
|
144
|
-
isUpdateCheckDisabled: isAuthenticatedUser
|
|
145
|
-
? DisableUpdateCheck
|
|
146
|
-
: false }, GlobalConfigAPI.getSeatUsageResponseFields(seatUsage));
|
|
147
|
-
return Response.sendJsonObjectResponse(req, res, responseBody);
|
|
148
|
-
}
|
|
149
|
-
catch (err) {
|
|
150
|
-
next(err);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
/*
|
|
154
|
-
* Activating (or replacing) the license key for the whole installation.
|
|
155
|
-
*
|
|
156
|
-
* Master admin only. This writes the terms that bound how many users the
|
|
157
|
-
* installation may have, so anyone who can reach it can change the seat
|
|
158
|
-
* limit UserService now enforces. It used to run on
|
|
159
|
-
* UserMiddleware.getUserMiddleware, which lets anonymous callers through
|
|
160
|
-
* (it has to — the GET above serves the signed-out login page), so the
|
|
161
|
-
* route was in practice unauthenticated.
|
|
162
|
-
*/
|
|
163
|
-
this.router.post(`${(_c = new this.entityType().getCrudApiPath()) === null || _c === void 0 ? void 0 : _c.toString()}/license`, MasterAdminAuthorization.isAuthorizedMasterAdminMiddleware, async (req, res, next) => {
|
|
164
|
-
var _a;
|
|
165
|
-
try {
|
|
166
|
-
const licenseKey = ((_a = req.body["licenseKey"]) === null || _a === void 0 ? void 0 : _a.trim()) || "";
|
|
167
|
-
if (!licenseKey) {
|
|
168
|
-
throw new BadDataException("License key is required");
|
|
169
|
-
}
|
|
170
|
-
const responseBody = await this.validateAndStoreLicenseKey(licenseKey);
|
|
171
|
-
return Response.sendJsonObjectResponse(req, res, responseBody);
|
|
172
|
-
}
|
|
173
|
-
catch (err) {
|
|
174
|
-
next(err);
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
/*
|
|
178
|
-
* Re-fetch the license this installation already holds.
|
|
179
|
-
*
|
|
180
|
-
* The seat limit and the expiry live on oneuptime.com and can change on
|
|
181
|
-
* any day — a customer buys ten more seats at noon. The daily report job
|
|
182
|
-
* picks that up eventually; this is the button an administrator presses
|
|
183
|
-
* when "eventually" is not good enough, and it is the only way to apply a
|
|
184
|
-
* change without re-typing the key.
|
|
185
|
-
*
|
|
186
|
-
* Deliberately takes no license key: it uses the stored one. A refresh
|
|
187
|
-
* that accepted a key would be an activation with a friendlier name, and
|
|
188
|
-
* would let a mistyped key replace a working license by accident.
|
|
189
|
-
*/
|
|
190
|
-
this.router.post(`${(_d = new this.entityType().getCrudApiPath()) === null || _d === void 0 ? void 0 : _d.toString()}/license/refresh`, MasterAdminAuthorization.isAuthorizedMasterAdminMiddleware, async (req, res, next) => {
|
|
191
|
-
var _a;
|
|
192
|
-
try {
|
|
193
|
-
const config = await GlobalConfigService.findOneById({
|
|
194
|
-
id: ObjectID.getZeroObjectID(),
|
|
195
|
-
select: {
|
|
196
|
-
enterpriseLicenseKey: true,
|
|
197
|
-
},
|
|
198
|
-
props: {
|
|
199
|
-
isRoot: true,
|
|
200
|
-
},
|
|
201
|
-
});
|
|
202
|
-
const licenseKey = ((_a = config === null || config === void 0 ? void 0 : config.enterpriseLicenseKey) === null || _a === void 0 ? void 0 : _a.trim()) || "";
|
|
203
|
-
if (!licenseKey) {
|
|
204
|
-
throw new BadDataException("This installation does not have an enterprise license key yet. Enter a license key to activate it first.");
|
|
205
|
-
}
|
|
206
|
-
const responseBody = await this.validateAndStoreLicenseKey(licenseKey);
|
|
207
|
-
return Response.sendJsonObjectResponse(req, res, responseBody);
|
|
92
|
+
const seatUsage = audience === "master-admin" && isEnterpriseEditionLoaded
|
|
93
|
+
? await EnterpriseEdition.getSeatUsage()
|
|
94
|
+
: null;
|
|
95
|
+
return Response.sendJsonObjectResponse(req, res, GlobalConfigAPI.buildLicenseResponse({
|
|
96
|
+
audience,
|
|
97
|
+
isEnterpriseEditionLoaded,
|
|
98
|
+
snapshot,
|
|
99
|
+
config,
|
|
100
|
+
seatUsage,
|
|
101
|
+
}));
|
|
208
102
|
}
|
|
209
103
|
catch (err) {
|
|
210
104
|
next(err);
|
|
@@ -212,199 +106,99 @@ export default class GlobalConfigAPI extends BaseAPI {
|
|
|
212
106
|
});
|
|
213
107
|
}
|
|
214
108
|
/*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
109
|
+
* A master admin is recognised from the verified access token that
|
|
110
|
+
* UserMiddleware.getUserMiddleware decoded. Anything else - no token, an
|
|
111
|
+
* API key, a status-page user, a signed-in project member - is "public".
|
|
112
|
+
*/
|
|
113
|
+
static getLicenseResponseAudience(req) {
|
|
114
|
+
var _a;
|
|
115
|
+
return ((_a = req.userAuthorization) === null || _a === void 0 ? void 0 : _a.isMasterAdmin) === true
|
|
116
|
+
? "master-admin"
|
|
117
|
+
: "public";
|
|
118
|
+
}
|
|
119
|
+
/*
|
|
120
|
+
* The body of GET /global-config/license, and of the Enterprise license
|
|
121
|
+
* client's activation and refresh responses, so the three can never
|
|
122
|
+
* disagree on a field.
|
|
217
123
|
*
|
|
218
|
-
*
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
* to be dropped on the floor by the daily report job before.
|
|
124
|
+
* licenseValid is true for a valid license AND one in its grace period:
|
|
125
|
+
* grace means nothing has changed yet, and the dialog must not tell an
|
|
126
|
+
* administrator the license is gone while everything still works.
|
|
222
127
|
*/
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
url: EnterpriseLicenseValidationUrl,
|
|
246
|
-
data: {
|
|
247
|
-
licenseKey,
|
|
248
|
-
instanceId: instanceId.toString(),
|
|
249
|
-
host: Host,
|
|
250
|
-
/*
|
|
251
|
-
* Sent here as well as from the daily report job so the version
|
|
252
|
-
* lands on the license server the moment the key is validated,
|
|
253
|
-
* rather than up to 24 hours later.
|
|
254
|
-
*/
|
|
255
|
-
version: AppVersion,
|
|
256
|
-
},
|
|
257
|
-
});
|
|
258
|
-
if (!validationResponse.isSuccess()) {
|
|
259
|
-
const errorMessage = validationResponse instanceof HTTPErrorResponse
|
|
260
|
-
? validationResponse.message || "Failed to validate license key."
|
|
261
|
-
: "Failed to validate license key.";
|
|
262
|
-
throw new BadDataException(errorMessage);
|
|
263
|
-
}
|
|
264
|
-
const payload = validationResponse.data;
|
|
265
|
-
const companyNameRaw = ((_a = payload["companyName"]) === null || _a === void 0 ? void 0 : _a.trim()) || "";
|
|
266
|
-
const expiresAtRaw = payload["expiresAt"] || "";
|
|
267
|
-
const licenseKeyRaw = ((_b = payload["licenseKey"]) === null || _b === void 0 ? void 0 : _b.trim()) || licenseKey;
|
|
268
|
-
const licenseToken = payload["token"] || "";
|
|
269
|
-
let licenseExpiry = undefined;
|
|
270
|
-
if (expiresAtRaw) {
|
|
271
|
-
const parsedDate = new Date(expiresAtRaw);
|
|
272
|
-
if (Number.isNaN(parsedDate.getTime())) {
|
|
273
|
-
throw new BadDataException("License expiration returned from server is invalid.");
|
|
274
|
-
}
|
|
275
|
-
licenseExpiry = parsedDate;
|
|
276
|
-
}
|
|
277
|
-
const userLimitRaw = payload["userLimit"];
|
|
278
|
-
const userLimit = typeof userLimitRaw === "number" && Number.isFinite(userLimitRaw)
|
|
279
|
-
? userLimitRaw
|
|
280
|
-
: null;
|
|
281
|
-
const currentUserCountRaw = payload["currentUserCount"];
|
|
282
|
-
const currentUserCount = typeof currentUserCountRaw === "number" &&
|
|
283
|
-
Number.isFinite(currentUserCountRaw)
|
|
284
|
-
? currentUserCountRaw
|
|
285
|
-
: null;
|
|
286
|
-
const userCountUpdatedAtRaw = payload["userCountUpdatedAt"];
|
|
287
|
-
let userCountUpdatedAt = null;
|
|
288
|
-
if (userCountUpdatedAtRaw) {
|
|
289
|
-
const parsedReportedAt = new Date(userCountUpdatedAtRaw);
|
|
290
|
-
if (!Number.isNaN(parsedReportedAt.getTime())) {
|
|
291
|
-
userCountUpdatedAt = parsedReportedAt;
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
const isEvaluationLicense = payload["isEvaluationLicense"] === true;
|
|
295
|
-
const instances = Array.isArray(payload["instances"])
|
|
296
|
-
? payload["instances"]
|
|
297
|
-
: [];
|
|
298
|
-
const updatePayload = {
|
|
299
|
-
enterpriseCompanyName: companyNameRaw || null,
|
|
300
|
-
enterpriseLicenseKey: licenseKeyRaw || null,
|
|
301
|
-
enterpriseLicenseExpiresAt: licenseExpiry || null,
|
|
302
|
-
enterpriseLicenseToken: licenseToken || null,
|
|
303
|
-
enterpriseLicenseIsEvaluation: isEvaluationLicense,
|
|
304
|
-
enterpriseLicenseUserLimit: userLimit,
|
|
305
|
-
enterpriseLicenseCurrentUserCount: currentUserCount,
|
|
306
|
-
enterpriseLicenseUserCountUpdatedAt: userCountUpdatedAt,
|
|
307
|
-
enterpriseLicenseInstances: instances,
|
|
128
|
+
static buildLicenseResponse(data) {
|
|
129
|
+
const snapshot = data.isEnterpriseEditionLoaded ? data.snapshot : null;
|
|
130
|
+
const publicFields = {
|
|
131
|
+
edition: data.isEnterpriseEditionLoaded ? "enterprise" : "community",
|
|
132
|
+
status: snapshot ? snapshot.status : null,
|
|
133
|
+
verification: snapshot ? snapshot.verification : null,
|
|
134
|
+
graceReason: (snapshot === null || snapshot === void 0 ? void 0 : snapshot.graceReason) || null,
|
|
135
|
+
licenseValid: EnterpriseLicenseSnapshotUtil.isUsable(snapshot),
|
|
136
|
+
companyName: (snapshot === null || snapshot === void 0 ? void 0 : snapshot.companyName) || null,
|
|
137
|
+
expiresAt: GlobalConfigAPI.toIsoString(snapshot === null || snapshot === void 0 ? void 0 : snapshot.expiresAt),
|
|
138
|
+
graceEndsAt: GlobalConfigAPI.toIsoString(snapshot === null || snapshot === void 0 ? void 0 : snapshot.graceEndsAt),
|
|
139
|
+
isEvaluation: Boolean(snapshot === null || snapshot === void 0 ? void 0 : snapshot.isEvaluation),
|
|
140
|
+
// The name older dialogs read; same value as isEvaluation.
|
|
141
|
+
isEvaluationLicense: Boolean(snapshot === null || snapshot === void 0 ? void 0 : snapshot.isEvaluation),
|
|
142
|
+
/*
|
|
143
|
+
* Which enterprise features the license covers: "all", or the
|
|
144
|
+
* EnterpriseFeature values it lists (null on the Community Edition).
|
|
145
|
+
* A valid license that leaves a feature out stops that feature (see
|
|
146
|
+
* EnterpriseEdition.isFeatureActive), which licenseValid alone cannot
|
|
147
|
+
* tell a screen.
|
|
148
|
+
*/
|
|
149
|
+
features: GlobalConfigAPI.toFeaturesResponse(snapshot),
|
|
308
150
|
};
|
|
309
|
-
if (
|
|
310
|
-
|
|
311
|
-
updatePayload.instanceId = instanceId;
|
|
312
|
-
}
|
|
313
|
-
if (existingConfig) {
|
|
314
|
-
await GlobalConfigService.updateOneById({
|
|
315
|
-
id: globalConfigId,
|
|
316
|
-
data: updatePayload,
|
|
317
|
-
props: {
|
|
318
|
-
isRoot: true,
|
|
319
|
-
ignoreHooks: true,
|
|
320
|
-
},
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
else {
|
|
324
|
-
const newConfig = new GlobalConfig();
|
|
325
|
-
newConfig.id = globalConfigId;
|
|
326
|
-
if (companyNameRaw) {
|
|
327
|
-
newConfig.enterpriseCompanyName = companyNameRaw;
|
|
328
|
-
}
|
|
329
|
-
if (licenseKeyRaw) {
|
|
330
|
-
newConfig.enterpriseLicenseKey = licenseKeyRaw;
|
|
331
|
-
}
|
|
332
|
-
if (licenseToken) {
|
|
333
|
-
newConfig.enterpriseLicenseToken = licenseToken;
|
|
334
|
-
}
|
|
335
|
-
newConfig.enterpriseLicenseIsEvaluation = isEvaluationLicense;
|
|
336
|
-
if (licenseExpiry) {
|
|
337
|
-
newConfig.enterpriseLicenseExpiresAt = licenseExpiry;
|
|
338
|
-
}
|
|
339
|
-
if (userLimit !== null) {
|
|
340
|
-
newConfig.enterpriseLicenseUserLimit = userLimit;
|
|
341
|
-
}
|
|
342
|
-
if (currentUserCount !== null) {
|
|
343
|
-
newConfig.enterpriseLicenseCurrentUserCount = currentUserCount;
|
|
344
|
-
}
|
|
345
|
-
if (userCountUpdatedAt) {
|
|
346
|
-
newConfig.enterpriseLicenseUserCountUpdatedAt = userCountUpdatedAt;
|
|
347
|
-
}
|
|
348
|
-
newConfig.enterpriseLicenseInstances = instances;
|
|
349
|
-
newConfig.instanceId = instanceId;
|
|
350
|
-
await GlobalConfigService.create({
|
|
351
|
-
data: newConfig,
|
|
352
|
-
props: {
|
|
353
|
-
isRoot: true,
|
|
354
|
-
ignoreHooks: true,
|
|
355
|
-
},
|
|
356
|
-
});
|
|
151
|
+
if (data.audience !== "master-admin") {
|
|
152
|
+
return publicFields;
|
|
357
153
|
}
|
|
154
|
+
const config = data.config;
|
|
358
155
|
/*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
361
|
-
*
|
|
362
|
-
* seats sees them land.
|
|
156
|
+
* The license columns mean nothing on the Community Edition (a leftover
|
|
157
|
+
* key from an earlier Enterprise image licenses nothing here), so only
|
|
158
|
+
* the version half of the dialog is filled in there.
|
|
363
159
|
*/
|
|
364
|
-
const
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
160
|
+
const licenseConfig = snapshot ? config : null;
|
|
161
|
+
const licenseToken = (licenseConfig === null || licenseConfig === void 0 ? void 0 : licenseConfig.enterpriseLicenseToken) || null;
|
|
162
|
+
const licenseKey = (licenseConfig === null || licenseConfig === void 0 ? void 0 : licenseConfig.enterpriseLicenseKey) || null;
|
|
163
|
+
return Object.assign(Object.assign(Object.assign({}, publicFields), { message: (snapshot === null || snapshot === void 0 ? void 0 : snapshot.message) || null, licenseKey: licenseKey, token: licenseToken,
|
|
164
|
+
/*
|
|
165
|
+
* "offline" when the license was activated by pasting a signed token:
|
|
166
|
+
* such an installation holds no license key and never calls home.
|
|
167
|
+
*/
|
|
168
|
+
activationMode: licenseToken ? (licenseKey ? "online" : "offline") : null,
|
|
169
|
+
// From the signed claims for a verified license, else the stored column.
|
|
170
|
+
userLimit: typeof (snapshot === null || snapshot === void 0 ? void 0 : snapshot.userLimit) === "number" ? snapshot.userLimit : null, currentUserCount: typeof (licenseConfig === null || licenseConfig === void 0 ? void 0 : licenseConfig.enterpriseLicenseCurrentUserCount) === "number"
|
|
171
|
+
? licenseConfig.enterpriseLicenseCurrentUserCount
|
|
172
|
+
: null, userCountUpdatedAt: GlobalConfigAPI.toIsoString(licenseConfig === null || licenseConfig === void 0 ? void 0 : licenseConfig.enterpriseLicenseUserCountUpdatedAt), instances: Array.isArray(licenseConfig === null || licenseConfig === void 0 ? void 0 : licenseConfig.enterpriseLicenseInstances)
|
|
173
|
+
? licenseConfig === null || licenseConfig === void 0 ? void 0 : licenseConfig.enterpriseLicenseInstances
|
|
174
|
+
: [], instanceId: (licenseConfig === null || licenseConfig === void 0 ? void 0 : licenseConfig.instanceId)
|
|
175
|
+
? licenseConfig.instanceId.toString()
|
|
176
|
+
: null,
|
|
177
|
+
/*
|
|
178
|
+
* Which build this installation runs, and whether a newer one has been
|
|
179
|
+
* released. Master admins only: telling anybody else that this server
|
|
180
|
+
* is behind on patches advertises an unpatched target.
|
|
181
|
+
*/
|
|
182
|
+
currentVersion: AppVersion, latestVersion: (config === null || config === void 0 ? void 0 : config.latestReleaseVersion) || null, latestVersionPublishedAt: GlobalConfigAPI.toIsoString(config === null || config === void 0 ? void 0 : config.latestReleasePublishedAt), latestVersionCheckedAt: GlobalConfigAPI.toIsoString(config === null || config === void 0 ? void 0 : config.latestReleaseCheckedAt), isUpdateAvailable: VersionUtil.isUpdateAvailable({
|
|
183
|
+
currentVersion: AppVersion,
|
|
184
|
+
latestVersion: config === null || config === void 0 ? void 0 : config.latestReleaseVersion,
|
|
185
|
+
}),
|
|
186
|
+
/*
|
|
187
|
+
* Lets the dialog say "update checks are off" instead of "has not
|
|
188
|
+
* checked yet", which would be a promise the installation is never
|
|
189
|
+
* going to keep.
|
|
190
|
+
*/
|
|
191
|
+
isUpdateCheckDisabled: DisableUpdateCheck }), GlobalConfigAPI.getSeatUsageResponseFields(snapshot ? data.seatUsage : null));
|
|
373
192
|
}
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
*/
|
|
379
|
-
static async getSeatUsageForResponse(data) {
|
|
380
|
-
const config = new GlobalConfig();
|
|
381
|
-
config.instanceId = data.instanceId;
|
|
382
|
-
config.enterpriseLicenseInstances = data.instances;
|
|
383
|
-
if (data.userLimit !== null) {
|
|
384
|
-
config.enterpriseLicenseUserLimit = data.userLimit;
|
|
193
|
+
// The license's features for a response: "all", a copy of the list, or null.
|
|
194
|
+
static toFeaturesResponse(snapshot) {
|
|
195
|
+
if (!snapshot) {
|
|
196
|
+
return null;
|
|
385
197
|
}
|
|
386
|
-
if (
|
|
387
|
-
|
|
198
|
+
if (snapshot.features === "all") {
|
|
199
|
+
return "all";
|
|
388
200
|
}
|
|
389
|
-
return
|
|
390
|
-
config: config,
|
|
391
|
-
getLocalUserCount: GlobalConfigAPI.getLocalUserCount,
|
|
392
|
-
});
|
|
393
|
-
}
|
|
394
|
-
/*
|
|
395
|
-
* How many users exist on this installation right now. Deliberately the live
|
|
396
|
-
* count rather than the last reported one: the number an administrator is
|
|
397
|
-
* about to act on is the number that decides whether the next invitation
|
|
398
|
-
* goes through.
|
|
399
|
-
*/
|
|
400
|
-
static async getLocalUserCount() {
|
|
401
|
-
const userCount = await UserService.countBy({
|
|
402
|
-
query: {},
|
|
403
|
-
props: {
|
|
404
|
-
isRoot: true,
|
|
405
|
-
},
|
|
406
|
-
});
|
|
407
|
-
return userCount.toNumber();
|
|
201
|
+
return Array.isArray(snapshot.features) ? [...snapshot.features] : [];
|
|
408
202
|
}
|
|
409
203
|
/*
|
|
410
204
|
* The seat-enforcement half of a license response. Always the same keys, so
|
|
@@ -428,5 +222,15 @@ export default class GlobalConfigAPI extends BaseAPI {
|
|
|
428
222
|
canAddMoreUsers: seatUsage.hasSeatForNewUser,
|
|
429
223
|
};
|
|
430
224
|
}
|
|
225
|
+
static toIsoString(value) {
|
|
226
|
+
if (!value) {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
const date = value instanceof Date ? value : new Date(value);
|
|
230
|
+
if (Number.isNaN(date.getTime())) {
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
return date.toISOString();
|
|
234
|
+
}
|
|
431
235
|
}
|
|
432
236
|
//# sourceMappingURL=GlobalConfigAPI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalConfigAPI.js","sourceRoot":"","sources":["../../../../Server/API/GlobalConfigAPI.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GlobalConfigAPI.js","sourceRoot":"","sources":["../../../../Server/API/GlobalConfigAPI.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import ProjectOidcService from "../Services/ProjectOidcService";
|
|
2
|
+
import EditionEnforcement from "../Utils/EditionEnforcement";
|
|
2
3
|
import Response from "../Utils/Response";
|
|
3
4
|
import BaseAPI from "./BaseAPI";
|
|
4
5
|
import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
@@ -18,22 +19,29 @@ export default class ProjectOidcAPI extends BaseAPI {
|
|
|
18
19
|
if (!projectId) {
|
|
19
20
|
return Response.sendErrorResponse(req, res, new BadDataException("Invalid project id."));
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
22
|
+
/*
|
|
23
|
+
* Only list providers a user can actually sign in with: the
|
|
24
|
+
* Community Edition serves no OIDC login routes, so it lists none
|
|
25
|
+
* rather than send the user to a 404.
|
|
26
|
+
*/
|
|
27
|
+
const oidc = EditionEnforcement.areSsoRoutesServed()
|
|
28
|
+
? await this.service.findBy({
|
|
29
|
+
query: {
|
|
30
|
+
projectId: projectId,
|
|
31
|
+
isEnabled: true,
|
|
32
|
+
},
|
|
33
|
+
limit: LIMIT_PER_PROJECT,
|
|
34
|
+
skip: 0,
|
|
35
|
+
select: {
|
|
36
|
+
name: true,
|
|
37
|
+
description: true,
|
|
38
|
+
_id: true,
|
|
39
|
+
},
|
|
40
|
+
props: {
|
|
41
|
+
isRoot: true,
|
|
42
|
+
},
|
|
43
|
+
})
|
|
44
|
+
: [];
|
|
37
45
|
return Response.sendEntityArrayResponse(req, res, oidc, new PositiveNumber(oidc.length), ProjectOIDC);
|
|
38
46
|
}
|
|
39
47
|
catch (err) {
|