@oneuptime/common 12.0.12 → 12.0.14
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/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +32 -5
- package/Models/DatabaseModels/NetworkDevice.ts +64 -0
- package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +14 -0
- package/Models/DatabaseModels/StatusPage.ts +59 -0
- package/Models/DatabaseModels/StatusPageOidc.ts +2 -0
- package/Models/DatabaseModels/UserCall.ts +94 -3
- package/Models/DatabaseModels/UserEmail.ts +94 -3
- package/Models/DatabaseModels/UserIncomingCallNumber.ts +94 -3
- package/Models/DatabaseModels/UserPush.ts +37 -0
- package/Models/DatabaseModels/UserSMS.ts +94 -3
- package/Models/DatabaseModels/UserWhatsApp.ts +93 -2
- package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +19 -2
- package/Server/API/AIChatAPI.ts +55 -56
- package/Server/API/BaseAPI.ts +79 -14
- package/Server/API/CommonAPI.ts +89 -0
- package/Server/API/MicrosoftTeamsAPI.ts +20 -9
- package/Server/API/SlackAPI.ts +13 -10
- package/Server/API/StatusPageAPI.ts +2197 -2128
- package/Server/API/TelemetryAPI.ts +72 -3
- package/Server/API/UserCallAPI.ts +53 -45
- package/Server/API/UserEmailAPI.ts +53 -44
- package/Server/API/UserIncomingCallNumberAPI.ts +48 -38
- package/Server/API/UserNotificationMethodAdminAPI.ts +481 -0
- package/Server/API/UserPushAPI.ts +126 -2
- package/Server/API/UserSmsAPI.ts +53 -44
- package/Server/API/UserWhatsAppAPI.ts +53 -50
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787142779538-MigrationName.ts +154 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787156982416-MigrationName.ts +17 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787500000000-AddEnableSearchEngineIndexingToStatusPage.ts +30 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787600000000-AddNetworkDeviceReachabilityColumns.ts +47 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787700000000-FixTotpOtpUrlAlgorithm.ts +45 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
- package/Server/Middleware/UserAuthorization.ts +11 -2
- package/Server/Middleware/VerificationCodeRateLimit.ts +586 -0
- package/Server/Services/AnalyticsDatabaseService.ts +169 -0
- package/Server/Services/ApiKeyPermissionService.ts +116 -2
- package/Server/Services/DatabaseService.ts +118 -6
- package/Server/Services/LogAggregationService.ts +39 -0
- package/Server/Services/LogService.ts +21 -0
- package/Server/Services/NetworkSiteService.ts +12 -0
- package/Server/Services/PushNotificationService.ts +127 -12
- package/Server/Services/SpanService.ts +21 -0
- package/Server/Services/TeamMemberService.ts +53 -13
- package/Server/Services/TraceAggregationService.ts +15 -0
- package/Server/Services/UserCallService.ts +55 -24
- package/Server/Services/UserEmailService.ts +83 -17
- package/Server/Services/UserIncomingCallNumberService.ts +49 -85
- package/Server/Services/UserNotificationMethodAdminService.ts +1527 -0
- package/Server/Services/UserNotificationRuleService.ts +26 -0
- package/Server/Services/UserPushService.ts +89 -0
- package/Server/Services/UserSmsService.ts +50 -17
- package/Server/Services/UserWhatsAppService.ts +48 -15
- package/Server/Services/WorkspaceNotificationRuleService.ts +172 -220
- package/Server/Types/AnalyticsDatabase/ModelPermission.ts +9 -0
- package/Server/Types/Database/Permissions/AccessControlPermission.ts +47 -16
- package/Server/Types/Database/QueryHelper.ts +30 -0
- package/Server/Utils/APIKey/AccessPermission.ts +16 -40
- package/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.ts +59 -0
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +144 -0
- package/Server/Utils/ChannelVerification.ts +510 -0
- package/Server/Utils/LogRedaction.ts +576 -0
- package/Server/Utils/Logger.ts +123 -46
- package/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.ts +13 -16
- package/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.ts +94 -23
- package/Server/Utils/Monitor/MonitorAlert.ts +24 -21
- package/Server/Utils/Monitor/MonitorIncident.ts +21 -18
- package/Server/Utils/Monitor/MonitorResource.ts +29 -9
- package/Server/Utils/Monitor/MonitorResourceContext.ts +107 -0
- package/Server/Utils/Monitor/MonitorStepResourceIdentity.ts +442 -0
- package/Server/Utils/Monitor/NetworkInventoryUtil.ts +28 -7
- package/Server/Utils/Monitor/SeriesResourceLabels.ts +3 -3
- package/Server/Utils/Monitor/SeriesResourceLinker.ts +96 -28
- package/Server/Utils/SessionReplay/SessionReplayGateCacheStore.ts +56 -10
- package/Server/Utils/StartServer.ts +30 -9
- package/Server/Utils/StatusPageSearchEngineIndexing.ts +33 -0
- package/Server/Utils/Telemetry/ResourceEntityFilter.ts +441 -0
- package/Server/Utils/TotpAuth.ts +137 -9
- package/Server/Utils/UserRegistrationToken.ts +182 -0
- package/Server/Utils/VerificationCode.ts +134 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +488 -46
- package/Tests/App/Dashboard/AdminNotificationRulesPage.test.tsx +173 -94
- package/Tests/App/Dashboard/AdminUserNotificationMethodsPage.test.tsx +1151 -0
- package/Tests/App/Dashboard/AdminUserOnCallPages.test.tsx +905 -0
- package/Tests/App/Dashboard/DashboardCommandPalette.test.tsx +338 -0
- package/Tests/App/Dashboard/InvestigationPanel.test.tsx +1 -1
- package/Tests/App/Dashboard/MonitorTypePicker.test.tsx +328 -0
- package/Tests/App/StatusPage/StatusPageIndexPageRobotsMeta.test.ts +130 -0
- package/Tests/Models/DatabaseModels/DatabaseBaseModelToJSONObjectCache.test.ts +180 -0
- package/Tests/Models/StatusPageEnableSearchEngineIndexing.test.ts +157 -0
- package/Tests/Models/UserPushCriticalAlertColumn.test.ts +172 -0
- package/Tests/Server/API/AIChatCancelAndFeedback.test.ts +23 -1
- package/Tests/Server/API/AIChatRouteAuthorization.test.ts +785 -0
- package/Tests/Server/API/BaseAPIApiKeyAuth.test.ts +21 -8
- package/Tests/Server/API/BaseAPIGetListParallel.test.ts +519 -0
- package/Tests/Server/API/CommonAPIAuthGuard.test.ts +290 -0
- package/Tests/Server/API/MicrosoftTeamsManifest.test.ts +7 -1
- package/Tests/Server/API/NotificationChannelVerificationAPI.test.ts +543 -0
- package/Tests/Server/API/StatusPageOverviewCache.test.ts +474 -0
- package/Tests/Server/API/StatusPageSeoSearchEngineIndexing.test.ts +189 -0
- package/Tests/Server/API/UserIncomingCallNumberApi.test.ts +108 -18
- package/Tests/Server/API/UserNotificationMethodAdminAPI.test.ts +963 -0
- package/Tests/Server/API/UserPushCriticalAlertsApi.test.ts +114 -0
- package/Tests/Server/API/UserSmsApi.test.ts +107 -14
- package/Tests/Server/API/UserTotpAuthAPI.test.ts +427 -0
- package/Tests/Server/Infrastructure/InMemoryTTLCache.test.ts +158 -0
- package/Tests/Server/Infrastructure/Postgres/DeviceRoleAndDeclaredLinkParentMigration.test.ts +9 -60
- package/Tests/Server/Infrastructure/Postgres/FixTotpOtpUrlAlgorithmMigration.test.ts +315 -0
- package/Tests/Server/Middleware/ProjectAuthorizationApiKeyMiddleware.test.ts +24 -15
- package/Tests/Server/Middleware/UserAuthorization.test.ts +79 -0
- package/Tests/Server/Middleware/VerificationCodeRateLimit.test.ts +775 -0
- package/Tests/Server/Services/AddNetworkDeviceReachabilityColumnsMigration.test.ts +280 -0
- package/Tests/Server/Services/AnalyticsDatabasePaginationStability.test.ts +33 -13
- package/Tests/Server/Services/AnalyticsDatabaseSortKeyBoundary.test.ts +658 -0
- package/Tests/Server/Services/ApiKeyPermissionService.test.ts +347 -0
- package/Tests/Server/Services/CriticalOnCallAlertDelivery.test.ts +458 -0
- package/Tests/Server/Services/CriticalPushAlertPayload.test.ts +301 -0
- package/Tests/Server/Services/DatabaseServiceAtomicIncrement.test.ts +143 -0
- package/Tests/Server/Services/DatabaseServiceUpdateDebugLogging.test.ts +282 -0
- package/Tests/Server/Services/DeliverNotificationForRuleExtraction.test.ts +1 -0
- package/Tests/Server/Services/LogAggregationScanMemory.test.ts +421 -0
- package/Tests/Server/Services/LogAggregationService.test.ts +2 -2
- package/Tests/Server/Services/NetworkSiteService.test.ts +56 -2
- package/Tests/Server/Services/NotificationChannelCodeIssuance.test.ts +401 -0
- package/Tests/Server/Services/PushNotificationDeliveryOptions.test.ts +204 -0
- package/Tests/Server/Services/TeamMemberAutoAcceptInvitation.test.ts +21 -1
- package/Tests/Server/Services/TeamMemberInviteRegistrationToken.test.ts +290 -0
- package/Tests/Server/Services/TelemetryResourceFacetFilters.test.ts +267 -0
- package/Tests/Server/Services/UserNotificationMethodAdminService.test.ts +948 -0
- package/Tests/Server/Services/UserNotificationRuleExecuteItem.test.ts +1 -0
- package/Tests/Server/Services/UserPushCriticalAlertToggle.test.ts +255 -0
- package/Tests/Server/Services/UserTotpAuthEnrolment.test.ts +218 -0
- package/Tests/Server/Services/WorkspaceNotificationRuleTestRuleChannels.test.ts +702 -0
- package/Tests/Server/TestingUtils/AuthenticatorApp.ts +248 -0
- package/Tests/Server/Types/Database/Permissions/AccessControlPermission.test.ts +165 -0
- package/Tests/Server/Types/Database/Permissions/NotificationChannelVerificationColumns.test.ts +135 -0
- package/Tests/Server/Types/Database/Permissions/OnCallScheduleRelationSelect.test.ts +504 -0
- package/Tests/Server/Types/Database/QueryHelperFindWithSameTextAnyOf.test.ts +91 -0
- package/Tests/Server/Types/Workflow/Components/JsonToText.test.ts +384 -0
- package/Tests/Server/Types/Workflow/Components/MergeJson.test.ts +403 -0
- package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +48 -36
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +213 -0
- package/Tests/Server/Utils/Browser.test.ts +162 -0
- package/Tests/Server/Utils/ChannelVerification.test.ts +689 -0
- package/Tests/Server/Utils/Express.test.ts +371 -0
- package/Tests/Server/Utils/LogRedaction.test.ts +415 -0
- package/Tests/Server/Utils/LoggerCredentialLeak.test.ts +245 -0
- package/Tests/Server/Utils/Monitor/Criteria/CustomCodeMonitorCriteria.test.ts +707 -0
- package/Tests/Server/Utils/Monitor/Criteria/DnsMonitorCriteria.test.ts +698 -0
- package/Tests/Server/Utils/Monitor/Criteria/IncomingEmailBodyCriteria.test.ts +243 -0
- package/Tests/Server/Utils/Monitor/Criteria/IncomingRequestBodyCriteria.test.ts +278 -0
- package/Tests/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.test.ts +374 -4
- package/Tests/Server/Utils/Monitor/MonitorAlertResourceLinking.test.ts +160 -20
- package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +13 -8
- package/Tests/Server/Utils/Monitor/MonitorIncidentResourceLinking.test.ts +162 -18
- package/Tests/Server/Utils/Monitor/MonitorResourceContext.test.ts +349 -0
- package/Tests/Server/Utils/Monitor/MonitorResourceIngestedStepSelection.test.ts +455 -0
- package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +690 -0
- package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +7 -2
- package/Tests/Server/Utils/Monitor/NetworkDeviceReachabilityRoundTrip.test.ts +369 -0
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +86 -8
- package/Tests/Server/Utils/Monitor/SeriesResourceLinker.test.ts +92 -18
- package/Tests/Server/Utils/PrivacyFilterUtil.test.ts +64 -0
- package/Tests/Server/Utils/PushNotificationUtilCreators.test.ts +267 -0
- package/Tests/Server/Utils/SessionReplay/SessionReplayGateCacheStore.test.ts +207 -0
- package/Tests/Server/Utils/StartServerBodyVerify.test.ts +335 -0
- package/Tests/Server/Utils/StatusPageSearchEngineIndexing.test.ts +60 -0
- package/Tests/Server/Utils/Telemetry/OneuptimeLabel.test.ts +439 -0
- package/Tests/Server/Utils/Telemetry/ResourceEntityFilter.test.ts +435 -0
- package/Tests/Server/Utils/TotpAuth.test.ts +719 -0
- package/Tests/Server/Utils/UserRegistrationToken.test.ts +322 -0
- package/Tests/Server/Utils/VerificationCode.test.ts +296 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelSend.test.ts +607 -62
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsInstalledTeamIdSpace.test.ts +778 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsTeamInstalls.test.ts +44 -10
- package/Tests/Types/API/HostnameFromAuthority.test.ts +164 -0
- package/Tests/Types/AutoRemediation/AutoRemediationSuggestionStatus.test.ts +192 -0
- package/Tests/Types/Call/CallRequest.test.ts +189 -0
- package/Tests/Types/Dashboard/DashboardSize.test.ts +226 -0
- package/Tests/Types/Database/AccessControl/ColumnAccessControlCache.test.ts +344 -0
- package/Tests/Types/Database/DatabasePropertyFindOperator.test.ts +518 -0
- package/Tests/Types/Database/TableColumnMetadataCache.test.ts +286 -0
- package/Tests/Types/Incident/IncidentSlaStatus.test.ts +191 -0
- package/Tests/Types/Metrics/MetricDashboardMetricType.test.ts +278 -0
- package/Tests/Types/Metrics/MetricPipelineRuleType.test.ts +517 -0
- package/Tests/Types/Monitor/IncomingMonitorDefaultCriteria.test.ts +470 -0
- package/Tests/Types/Monitor/MonitorCriteriaInstance.test.ts +6 -4
- package/Tests/Types/Monitor/MonitorStep.test.ts +100 -0
- package/Tests/Types/Monitor/MonitorTypeKeywords.test.ts +360 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +262 -5
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +1 -1
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +1 -1
- package/Tests/Types/Monitor/ServiceAlertTemplates.test.ts +905 -0
- package/Tests/Types/Service/ServiceLanguage.test.ts +255 -0
- package/Tests/Types/StatusPage/SearchEngineIndexing.test.ts +86 -0
- package/Tests/Types/Telemetry/ResourceEntityFacet.test.ts +254 -0
- package/Tests/Types/TextRandomGeneration.test.ts +211 -0
- package/Tests/UI/Components/Button.test.tsx +175 -1
- package/Tests/UI/Components/CardSelect.test.tsx +1021 -0
- package/Tests/UI/Components/CodeBlockLanguages.test.tsx +236 -0
- package/Tests/UI/Components/CommandPalette/CommandPalette.test.tsx +568 -0
- package/Tests/UI/Components/CommandPalette/CommandPaletteKeyboard.test.tsx +239 -0
- package/Tests/UI/Components/CommandPalette/CommandPaletteProviders.test.tsx +400 -0
- package/Tests/UI/Components/CommandPalette/PaletteFilter.test.ts +234 -0
- package/Tests/UI/Components/CommandPalette/RecentCommands.test.ts +97 -0
- package/Tests/UI/Components/CountModelSideMenuItemGuard.test.tsx +198 -0
- package/Tests/UI/Components/FeedItemSafeMode.test.tsx +1 -1
- package/Tests/UI/Components/Forms/Utils/FormFieldSchemaTypeUtil.test.ts +267 -0
- package/Tests/UI/Components/List.test.tsx +9 -2
- package/Tests/UI/Components/ListLoadingStates.test.tsx +173 -0
- package/Tests/UI/Components/MarkdownLazy.test.tsx +113 -0
- package/Tests/UI/Components/MarkdownMermaidRetry.test.tsx +110 -0
- package/Tests/UI/Components/MasterPage.test.tsx +36 -1
- package/Tests/UI/Components/ModelTable/useCustomFieldColumns.test.tsx +8 -0
- package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +692 -0
- package/Tests/UI/Components/MoreMenuMotion.test.tsx +118 -0
- package/Tests/UI/Components/NavBarCommandKGating.test.tsx +178 -0
- package/Tests/UI/Components/OrderedStatesList.test.tsx +19 -2
- package/Tests/UI/Components/SideOverMotion.test.tsx +109 -0
- package/Tests/UI/Components/Skeleton.test.tsx +71 -0
- package/Tests/UI/Components/TableLoadingStates.test.tsx +279 -0
- package/Tests/UI/Components/Tabs.test.tsx +24 -0
- package/Tests/UI/Components/Toast.test.tsx +130 -7
- package/Tests/UI/Components/ToastStacking.test.tsx +198 -0
- package/Tests/UI/Utils/Dropdown.test.ts +423 -0
- package/Tests/UI/Utils/ModelAPITenantHeader.test.ts +122 -0
- package/Tests/UI/Utils/ModelListCache.test.ts +338 -0
- package/Tests/UI/Utils/ProjectListCacheInvalidation.test.ts +225 -0
- package/Tests/Utils/API.test.ts +16 -2
- package/Tests/Utils/Dashboard/Components/DashboardKubernetesResourceListShared.test.ts +347 -0
- package/Tests/Utils/Dashboard/Components/DashboardListSharedArgs.test.ts +259 -0
- package/Tests/Utils/Dashboard/Components/DashboardMonitorListComponent.test.ts +466 -0
- package/Tests/Utils/Monitor/MonitorMetricType.test.ts +66 -1
- package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +115 -6
- package/Tests/Utils/NetworkDevice/DeviceReachabilityUtil.test.ts +610 -0
- package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +114 -45
- package/Tests/Utils/Rum/UrlScrubberSegments.test.ts +362 -0
- package/Types/API/Hostname.ts +79 -0
- package/Types/Database/AccessControl/ColumnAccessControl.ts +33 -11
- package/Types/Database/AccessControl/ColumnBillingAccessControl.ts +33 -11
- package/Types/Database/DatabaseProperty.ts +38 -0
- package/Types/Database/TableColumn.ts +34 -7
- package/Types/Email/EmailTemplateType.ts +1 -0
- package/Types/Events/Recurring.ts +16 -1
- package/Types/Monitor/MonitorCriteriaInstance.ts +41 -20
- package/Types/Monitor/MonitorStep.ts +13 -1
- package/Types/Monitor/MonitorType.ts +345 -40
- package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +131 -8
- package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +48 -8
- package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +43 -0
- package/Types/Monitor/ServiceAlertTemplates.ts +1352 -0
- package/Types/Permission.ts +35 -0
- package/Types/PushNotification/AndroidNotificationChannel.ts +26 -0
- package/Types/PushNotification/PushNotificationMessage.ts +15 -0
- package/Types/PushNotification/PushNotificationRequest.ts +8 -16
- package/Types/Service/ServiceLanguage.ts +144 -0
- package/Types/StatusPage/SearchEngineIndexing.ts +61 -0
- package/Types/Telemetry/ResourceEntityFacet.ts +211 -0
- package/Types/Text.ts +111 -19
- package/UI/Components/Button/Button.tsx +27 -14
- package/UI/Components/CardSelect/CardSelect.tsx +714 -105
- package/UI/Components/CodeBlock/CodeBlock.tsx +54 -7
- package/UI/Components/CodeBlock/LanguageRegistry.ts +103 -0
- package/UI/Components/CommandPalette/CommandPalette.tsx +790 -0
- package/UI/Components/CommandPalette/PaletteFilter.ts +196 -0
- package/UI/Components/CommandPalette/PaletteRow.tsx +173 -0
- package/UI/Components/CommandPalette/RecentCommands.ts +57 -0
- package/UI/Components/CommandPalette/Types.ts +49 -0
- package/UI/Components/CommandPalette/UseProviderSearch.ts +129 -0
- package/UI/Components/Dropdown/Dropdown.tsx +6 -1
- package/UI/Components/EmptyState/EmptyState.tsx +8 -1
- package/UI/Components/Feed/FeedItem.tsx +1 -1
- package/UI/Components/Footer/Footer.tsx +32 -6
- package/UI/Components/Forms/Fields/FormField.tsx +3 -0
- package/UI/Components/Forms/Types/Field.ts +8 -0
- package/UI/Components/List/List.tsx +37 -5
- package/UI/Components/List/ListSkeleton.tsx +54 -0
- package/UI/Components/Loader/PageLoader.tsx +29 -8
- package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +26 -4
- package/UI/Components/Markdown.tsx/LazyMarkdownViewer.tsx +23 -2
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +71 -26
- package/UI/Components/MasterPage/MasterPage.tsx +24 -11
- package/UI/Components/Modal/Modal.tsx +2 -2
- package/UI/Components/ModelTable/BaseModelTable.tsx +1 -1
- package/UI/Components/ModelTable/useCustomFieldColumns.ts +11 -5
- package/UI/Components/MoreMenu/MoreMenu.tsx +39 -1
- package/UI/Components/Navbar/NavBar.tsx +14 -1
- package/UI/Components/OrderedStatesList/OrderedStatesList.tsx +50 -5
- package/UI/Components/SideMenu/CountModelSideMenuItem.tsx +40 -1
- package/UI/Components/SideOver/SideOver.tsx +37 -2
- package/UI/Components/Skeleton/Skeleton.tsx +53 -0
- package/UI/Components/Table/Table.tsx +74 -44
- package/UI/Components/Table/TableSkeletonRows.tsx +141 -0
- package/UI/Components/Tabs/Tab.tsx +1 -1
- package/UI/Components/Toast/Toast.tsx +118 -53
- package/UI/Components/Toast/ToastInit.tsx +82 -32
- package/UI/Styles/Theme.css +40 -0
- package/UI/Utils/ModelAPI/ModelAPI.ts +20 -10
- package/UI/Utils/ModelListCache.ts +188 -0
- package/UI/Utils/Project.ts +29 -0
- package/Utils/API.ts +6 -1
- package/Utils/Monitor/MonitorMetricType.ts +16 -1
- package/Utils/Monitor/NetworkTopologyUtil.ts +60 -8
- package/Utils/NetworkDevice/DeviceReachabilityUtil.ts +262 -0
- package/Utils/NetworkSite/SiteStatusRollupUtil.ts +41 -24
- package/Utils/Telemetry/CrossSignalScope.ts +75 -4
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +20 -4
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +66 -0
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +14 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPage.js +60 -0
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOidc.js +2 -0
- package/build/dist/Models/DatabaseModels/StatusPageOidc.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserCall.js +101 -3
- package/build/dist/Models/DatabaseModels/UserCall.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserEmail.js +101 -3
- package/build/dist/Models/DatabaseModels/UserEmail.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserIncomingCallNumber.js +101 -3
- package/build/dist/Models/DatabaseModels/UserIncomingCallNumber.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserPush.js +38 -0
- package/build/dist/Models/DatabaseModels/UserPush.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserSMS.js +101 -3
- package/build/dist/Models/DatabaseModels/UserSMS.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserWhatsApp.js +100 -2
- package/build/dist/Models/DatabaseModels/UserWhatsApp.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
- package/build/dist/Server/API/AIChatAPI.js +48 -35
- package/build/dist/Server/API/AIChatAPI.js.map +1 -1
- package/build/dist/Server/API/BaseAPI.js +69 -13
- package/build/dist/Server/API/BaseAPI.js.map +1 -1
- package/build/dist/Server/API/CommonAPI.js +59 -0
- package/build/dist/Server/API/CommonAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +20 -6
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/SlackAPI.js +13 -10
- package/build/dist/Server/API/SlackAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +745 -673
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +34 -3
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/API/UserCallAPI.js +42 -38
- package/build/dist/Server/API/UserCallAPI.js.map +1 -1
- package/build/dist/Server/API/UserEmailAPI.js +42 -38
- package/build/dist/Server/API/UserEmailAPI.js.map +1 -1
- package/build/dist/Server/API/UserIncomingCallNumberAPI.js +37 -32
- package/build/dist/Server/API/UserIncomingCallNumberAPI.js.map +1 -1
- package/build/dist/Server/API/UserNotificationMethodAdminAPI.js +341 -0
- package/build/dist/Server/API/UserNotificationMethodAdminAPI.js.map +1 -0
- package/build/dist/Server/API/UserPushAPI.js +95 -2
- package/build/dist/Server/API/UserPushAPI.js.map +1 -1
- package/build/dist/Server/API/UserSmsAPI.js +42 -38
- package/build/dist/Server/API/UserSmsAPI.js.map +1 -1
- package/build/dist/Server/API/UserWhatsAppAPI.js +42 -40
- package/build/dist/Server/API/UserWhatsAppAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787142779538-MigrationName.js +89 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787142779538-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787156982416-MigrationName.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787156982416-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787500000000-AddEnableSearchEngineIndexingToStatusPage.js +23 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787500000000-AddEnableSearchEngineIndexingToStatusPage.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787600000000-AddNetworkDeviceReachabilityColumns.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787600000000-AddNetworkDeviceReachabilityColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787700000000-FixTotpOtpUrlAlgorithm.js +40 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787700000000-FixTotpOtpUrlAlgorithm.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/UserAuthorization.js +6 -2
- package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
- package/build/dist/Server/Middleware/VerificationCodeRateLimit.js +393 -0
- package/build/dist/Server/Middleware/VerificationCodeRateLimit.js.map +1 -0
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +136 -0
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/ApiKeyPermissionService.js +90 -1
- package/build/dist/Server/Services/ApiKeyPermissionService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +89 -6
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +7 -0
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/LogService.js +16 -0
- package/build/dist/Server/Services/LogService.js.map +1 -1
- package/build/dist/Server/Services/NetworkSiteService.js +12 -0
- package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
- package/build/dist/Server/Services/PushNotificationService.js +69 -30
- package/build/dist/Server/Services/PushNotificationService.js.map +1 -1
- package/build/dist/Server/Services/SpanService.js +16 -0
- package/build/dist/Server/Services/SpanService.js.map +1 -1
- package/build/dist/Server/Services/TeamMemberService.js +43 -7
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js +2 -0
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Services/UserCallService.js +54 -22
- package/build/dist/Server/Services/UserCallService.js.map +1 -1
- package/build/dist/Server/Services/UserEmailService.js +78 -17
- package/build/dist/Server/Services/UserEmailService.js.map +1 -1
- package/build/dist/Server/Services/UserIncomingCallNumberService.js +45 -74
- package/build/dist/Server/Services/UserIncomingCallNumberService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationMethodAdminService.js +1117 -0
- package/build/dist/Server/Services/UserNotificationMethodAdminService.js.map +1 -0
- package/build/dist/Server/Services/UserNotificationRuleService.js +20 -0
- package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/UserPushService.js +77 -0
- package/build/dist/Server/Services/UserPushService.js.map +1 -1
- package/build/dist/Server/Services/UserSmsService.js +50 -17
- package/build/dist/Server/Services/UserSmsService.js.map +1 -1
- package/build/dist/Server/Services/UserWhatsAppService.js +48 -15
- package/build/dist/Server/Services/UserWhatsAppService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +137 -164
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +9 -0
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js +21 -13
- package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js +27 -0
- package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
- package/build/dist/Server/Utils/APIKey/AccessPermission.js +9 -32
- package/build/dist/Server/Utils/APIKey/AccessPermission.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js +46 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +87 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/ChannelVerification.js +348 -0
- package/build/dist/Server/Utils/ChannelVerification.js.map +1 -0
- package/build/dist/Server/Utils/LogRedaction.js +449 -0
- package/build/dist/Server/Utils/LogRedaction.js.map +1 -0
- package/build/dist/Server/Utils/Logger.js +98 -45
- package/build/dist/Server/Utils/Logger.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js +13 -12
- package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js +65 -13
- package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +20 -17
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +17 -14
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +20 -3
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js +95 -0
- package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js +313 -0
- package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +27 -7
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +3 -3
- package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js +67 -26
- package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js.map +1 -1
- package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCacheStore.js +29 -10
- package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCacheStore.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +10 -7
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/StatusPageSearchEngineIndexing.js +24 -0
- package/build/dist/Server/Utils/StatusPageSearchEngineIndexing.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +311 -0
- package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -0
- package/build/dist/Server/Utils/TotpAuth.js +127 -8
- package/build/dist/Server/Utils/TotpAuth.js.map +1 -1
- package/build/dist/Server/Utils/UserRegistrationToken.js +170 -0
- package/build/dist/Server/Utils/UserRegistrationToken.js.map +1 -0
- package/build/dist/Server/Utils/VerificationCode.js +120 -0
- package/build/dist/Server/Utils/VerificationCode.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +366 -37
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/API/Hostname.js +63 -0
- package/build/dist/Types/API/Hostname.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js +20 -6
- package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js.map +1 -1
- package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js +20 -6
- package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js.map +1 -1
- package/build/dist/Types/Database/DatabaseProperty.js +38 -0
- package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
- package/build/dist/Types/Database/TableColumn.js +24 -6
- package/build/dist/Types/Database/TableColumn.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/Events/Recurring.js +13 -1
- package/build/dist/Types/Events/Recurring.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +42 -21
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +9 -1
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +330 -31
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +77 -5
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +18 -6
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
- package/build/dist/Types/Monitor/ServiceAlertTemplates.js +1028 -0
- package/build/dist/Types/Monitor/ServiceAlertTemplates.js.map +1 -0
- package/build/dist/Types/Permission.js +33 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/PushNotification/AndroidNotificationChannel.js +27 -0
- package/build/dist/Types/PushNotification/AndroidNotificationChannel.js.map +1 -0
- package/build/dist/Types/Service/ServiceLanguage.js +96 -0
- package/build/dist/Types/Service/ServiceLanguage.js.map +1 -0
- package/build/dist/Types/StatusPage/SearchEngineIndexing.js +55 -0
- package/build/dist/Types/StatusPage/SearchEngineIndexing.js.map +1 -0
- package/build/dist/Types/Telemetry/ResourceEntityFacet.js +156 -0
- package/build/dist/Types/Telemetry/ResourceEntityFacet.js.map +1 -0
- package/build/dist/Types/Text.js +82 -17
- package/build/dist/Types/Text.js.map +1 -1
- package/build/dist/UI/Components/Button/Button.js +22 -14
- package/build/dist/UI/Components/Button/Button.js.map +1 -1
- package/build/dist/UI/Components/CardSelect/CardSelect.js +360 -40
- package/build/dist/UI/Components/CardSelect/CardSelect.js.map +1 -1
- package/build/dist/UI/Components/CodeBlock/CodeBlock.js +35 -3
- package/build/dist/UI/Components/CodeBlock/CodeBlock.js.map +1 -1
- package/build/dist/UI/Components/CodeBlock/LanguageRegistry.js +57 -0
- package/build/dist/UI/Components/CodeBlock/LanguageRegistry.js.map +1 -0
- package/build/dist/UI/Components/CommandPalette/CommandPalette.js +439 -0
- package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -0
- package/build/dist/UI/Components/CommandPalette/PaletteFilter.js +135 -0
- package/build/dist/UI/Components/CommandPalette/PaletteFilter.js.map +1 -0
- package/build/dist/UI/Components/CommandPalette/PaletteRow.js +83 -0
- package/build/dist/UI/Components/CommandPalette/PaletteRow.js.map +1 -0
- package/build/dist/UI/Components/CommandPalette/RecentCommands.js +47 -0
- package/build/dist/UI/Components/CommandPalette/RecentCommands.js.map +1 -0
- package/build/dist/UI/Components/CommandPalette/Types.js +2 -0
- package/build/dist/UI/Components/CommandPalette/Types.js.map +1 -0
- package/build/dist/UI/Components/CommandPalette/UseProviderSearch.js +88 -0
- package/build/dist/UI/Components/CommandPalette/UseProviderSearch.js.map +1 -0
- package/build/dist/UI/Components/Dropdown/Dropdown.js +6 -1
- package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
- package/build/dist/UI/Components/EmptyState/EmptyState.js +1 -1
- package/build/dist/UI/Components/EmptyState/EmptyState.js.map +1 -1
- package/build/dist/UI/Components/Feed/FeedItem.js +1 -1
- package/build/dist/UI/Components/Feed/FeedItem.js.map +1 -1
- package/build/dist/UI/Components/Footer/Footer.js +7 -4
- package/build/dist/UI/Components/Footer/Footer.js.map +1 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js +1 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
- package/build/dist/UI/Components/List/List.js +19 -5
- package/build/dist/UI/Components/List/List.js.map +1 -1
- package/build/dist/UI/Components/List/ListSkeleton.js +21 -0
- package/build/dist/UI/Components/List/ListSkeleton.js.map +1 -0
- package/build/dist/UI/Components/Loader/PageLoader.js +15 -5
- package/build/dist/UI/Components/Loader/PageLoader.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +16 -3
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/LazyMarkdownViewer.js +13 -1
- package/build/dist/UI/Components/Markdown.tsx/LazyMarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +52 -25
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/MasterPage/MasterPage.js +10 -2
- package/build/dist/UI/Components/MasterPage/MasterPage.js.map +1 -1
- package/build/dist/UI/Components/Modal/Modal.js +2 -2
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js +9 -2
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js +32 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBar.js +5 -1
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js +29 -5
- package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js +23 -1
- package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js.map +1 -1
- package/build/dist/UI/Components/SideOver/SideOver.js +23 -2
- package/build/dist/UI/Components/SideOver/SideOver.js.map +1 -1
- package/build/dist/UI/Components/Skeleton/Skeleton.js +23 -0
- package/build/dist/UI/Components/Skeleton/Skeleton.js.map +1 -0
- package/build/dist/UI/Components/Table/Table.js +35 -24
- package/build/dist/UI/Components/Table/Table.js.map +1 -1
- package/build/dist/UI/Components/Table/TableSkeletonRows.js +52 -0
- package/build/dist/UI/Components/Table/TableSkeletonRows.js.map +1 -0
- package/build/dist/UI/Components/Tabs/Tab.js +1 -1
- package/build/dist/UI/Components/Tabs/Tab.js.map +1 -1
- package/build/dist/UI/Components/Toast/Toast.js +77 -23
- package/build/dist/UI/Components/Toast/Toast.js.map +1 -1
- package/build/dist/UI/Components/Toast/ToastInit.js +37 -15
- package/build/dist/UI/Components/Toast/ToastInit.js.map +1 -1
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +18 -9
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/ModelListCache.js +126 -0
- package/build/dist/UI/Utils/ModelListCache.js.map +1 -0
- package/build/dist/UI/Utils/Project.js +24 -1
- package/build/dist/UI/Utils/Project.js.map +1 -1
- package/build/dist/Utils/API.js +6 -1
- package/build/dist/Utils/API.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js +13 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +34 -7
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js +177 -0
- package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +23 -27
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
- package/build/dist/Utils/Telemetry/CrossSignalScope.js +44 -4
- package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
- package/jest.config.json +1 -1
- package/package.json +2 -3
- package/Server/Utils/Monitor/MonitorClusterContext.ts +0 -182
- package/Tests/__mocks__/otpauth.js +0 -30
- package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js +0 -141
- package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js.map +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Android delivers a notification with the settings of the channel it names,
|
|
3
|
+
* not the settings in the payload - importance, sound and Do Not Disturb
|
|
4
|
+
* bypass are all fixed when the app creates the channel and cannot be raised
|
|
5
|
+
* afterwards. So "ring through silent mode" is expressed by picking a channel,
|
|
6
|
+
* and these ids are the contract for that choice.
|
|
7
|
+
*
|
|
8
|
+
* The app creates channels with exactly these ids in
|
|
9
|
+
* MobileApp/src/notifications/channels.ts. An id sent from here that the app
|
|
10
|
+
* never created does not fail loudly: Android falls back to a default channel
|
|
11
|
+
* and the page arrives with default settings, which for an on-call page means
|
|
12
|
+
* silently. Keep the two lists in step.
|
|
13
|
+
*/
|
|
14
|
+
var AndroidNotificationChannel;
|
|
15
|
+
(function (AndroidNotificationChannel) {
|
|
16
|
+
/*
|
|
17
|
+
* Do Not Disturb bypass, alarm audio stream, MAX importance. Reserved for
|
|
18
|
+
* on-call pages from a device whose owner opted in and granted the app Do
|
|
19
|
+
* Not Disturb access.
|
|
20
|
+
*/
|
|
21
|
+
AndroidNotificationChannel["Critical"] = "oncall_critical";
|
|
22
|
+
AndroidNotificationChannel["High"] = "oncall_high";
|
|
23
|
+
AndroidNotificationChannel["Normal"] = "oncall_normal";
|
|
24
|
+
AndroidNotificationChannel["Low"] = "oncall_low";
|
|
25
|
+
})(AndroidNotificationChannel || (AndroidNotificationChannel = {}));
|
|
26
|
+
export default AndroidNotificationChannel;
|
|
27
|
+
//# sourceMappingURL=AndroidNotificationChannel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AndroidNotificationChannel.js","sourceRoot":"","sources":["../../../../Types/PushNotification/AndroidNotificationChannel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,IAAK,0BAUJ;AAVD,WAAK,0BAA0B;IAC7B;;;;OAIG;IACH,0DAA4B,CAAA;IAC5B,kDAAoB,CAAA;IACpB,sDAAwB,CAAA;IACxB,gDAAkB,CAAA;AACpB,CAAC,EAVI,0BAA0B,KAA1B,0BAA0B,QAU9B;AAED,eAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import TechStack from "./TechStack";
|
|
2
|
+
export const SERVICE_LANGUAGE_DISPLAY_NAMES = {
|
|
3
|
+
java: "Java",
|
|
4
|
+
dotnet: ".NET",
|
|
5
|
+
nodejs: "Node.js",
|
|
6
|
+
python: "Python",
|
|
7
|
+
go: "Go",
|
|
8
|
+
ruby: "Ruby",
|
|
9
|
+
php: "PHP",
|
|
10
|
+
rust: "Rust",
|
|
11
|
+
erlang: "Erlang / Elixir",
|
|
12
|
+
swift: "Swift",
|
|
13
|
+
cpp: "C++",
|
|
14
|
+
webjs: "Browser JS",
|
|
15
|
+
};
|
|
16
|
+
const KNOWN_LANGUAGES = Object.keys(SERVICE_LANGUAGE_DISPLAY_NAMES);
|
|
17
|
+
/*
|
|
18
|
+
* process.runtime.name values seen in the wild → language. Checked as
|
|
19
|
+
* case-insensitive substrings, so "OpenJDK Runtime Environment" → java.
|
|
20
|
+
* Ordered: more specific markers first ("graalvm" before "go").
|
|
21
|
+
*/
|
|
22
|
+
const RUNTIME_NAME_MARKERS = [
|
|
23
|
+
{ marker: "openjdk", lang: "java" },
|
|
24
|
+
{ marker: "graalvm", lang: "java" },
|
|
25
|
+
{ marker: "java", lang: "java" },
|
|
26
|
+
{ marker: "dotnet", lang: "dotnet" },
|
|
27
|
+
{ marker: ".net", lang: "dotnet" },
|
|
28
|
+
{ marker: "node", lang: "nodejs" },
|
|
29
|
+
{ marker: "deno", lang: "nodejs" },
|
|
30
|
+
{ marker: "bun", lang: "nodejs" },
|
|
31
|
+
{ marker: "cpython", lang: "python" },
|
|
32
|
+
{ marker: "pypy", lang: "python" },
|
|
33
|
+
{ marker: "python", lang: "python" },
|
|
34
|
+
{ marker: "beam", lang: "erlang" },
|
|
35
|
+
{ marker: "erlang", lang: "erlang" },
|
|
36
|
+
{ marker: "ruby", lang: "ruby" },
|
|
37
|
+
{ marker: "php", lang: "php" },
|
|
38
|
+
{ marker: "rust", lang: "rust" },
|
|
39
|
+
{ marker: "swift", lang: "swift" },
|
|
40
|
+
{ marker: "go", lang: "go" },
|
|
41
|
+
];
|
|
42
|
+
// Manual tech-stack selections → language (JVM languages map to java).
|
|
43
|
+
const TECH_STACK_LANGUAGES = {
|
|
44
|
+
[TechStack.Java]: "java",
|
|
45
|
+
[TechStack.Kotlin]: "java",
|
|
46
|
+
[TechStack.CSharp]: "dotnet",
|
|
47
|
+
[TechStack.NodeJS]: "nodejs",
|
|
48
|
+
[TechStack.TypeScript]: "nodejs",
|
|
49
|
+
[TechStack.JavaScript]: "nodejs",
|
|
50
|
+
[TechStack.React]: "webjs",
|
|
51
|
+
[TechStack.Python]: "python",
|
|
52
|
+
[TechStack.Go]: "go",
|
|
53
|
+
[TechStack.Ruby]: "ruby",
|
|
54
|
+
[TechStack.PHP]: "php",
|
|
55
|
+
[TechStack.Rust]: "rust",
|
|
56
|
+
[TechStack.Swift]: "swift",
|
|
57
|
+
[TechStack.CPlusPlus]: "cpp",
|
|
58
|
+
};
|
|
59
|
+
/*
|
|
60
|
+
* Best-effort language for a service, in descending order of trust:
|
|
61
|
+
*
|
|
62
|
+
* 1. `telemetry.sdk.language` — stamped by the SDK itself, so it is what the
|
|
63
|
+
* process actually runs on rather than what anyone believes it runs on.
|
|
64
|
+
* 2. `process.runtime.name` — present when runtime instrumentation is on but
|
|
65
|
+
* the SDK attribute did not survive a collector hop.
|
|
66
|
+
* 3. The manually-chosen tech stack — a human's answer, used only when the
|
|
67
|
+
* telemetry has not answered.
|
|
68
|
+
*
|
|
69
|
+
* Returns null when nothing identifies the runtime. Callers must treat that as
|
|
70
|
+
* "unknown", never as a default language: recommending JVM heap monitors to a
|
|
71
|
+
* service that turns out to be Go is worse than recommending nothing.
|
|
72
|
+
*/
|
|
73
|
+
export const detectServiceLanguage = (data) => {
|
|
74
|
+
const sdkLanguage = (data.telemetrySdkLanguage || "")
|
|
75
|
+
.trim()
|
|
76
|
+
.toLowerCase();
|
|
77
|
+
if (sdkLanguage && KNOWN_LANGUAGES.includes(sdkLanguage)) {
|
|
78
|
+
return sdkLanguage;
|
|
79
|
+
}
|
|
80
|
+
const runtimeName = (data.runtimeName || "").trim().toLowerCase();
|
|
81
|
+
if (runtimeName) {
|
|
82
|
+
for (const entry of RUNTIME_NAME_MARKERS) {
|
|
83
|
+
if (runtimeName.includes(entry.marker)) {
|
|
84
|
+
return entry.lang;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
for (const stack of data.techStack || []) {
|
|
89
|
+
const lang = TECH_STACK_LANGUAGES[stack];
|
|
90
|
+
if (lang) {
|
|
91
|
+
return lang;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=ServiceLanguage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceLanguage.js","sourceRoot":"","sources":["../../../../Types/Service/ServiceLanguage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Search engine indexing for status pages.
|
|
3
|
+
*
|
|
4
|
+
* A status page is indexable unless its owner turned indexing off
|
|
5
|
+
* (StatusPage.enableSearchEngineIndexing, which defaults to true). The
|
|
6
|
+
* opt-out is carried to crawlers two ways:
|
|
7
|
+
*
|
|
8
|
+
* - <meta name="robots" content="noindex, nofollow"> in the server-rendered
|
|
9
|
+
* index.ejs, which is in the HTML before the JS bundle loads
|
|
10
|
+
* - an X-Robots-Tag response header, which crawlers also honour on
|
|
11
|
+
* responses that are not HTML (the RSS feed, llms.txt)
|
|
12
|
+
*
|
|
13
|
+
* Both live here rather than in each renderer because the status page is
|
|
14
|
+
* rendered by two servers - the standalone status-page container
|
|
15
|
+
* (App/FeatureSet/StatusPage/Serve.ts) and the combined App container
|
|
16
|
+
* (App/FeatureSet/Frontend/Index.ts) - and the two must not drift.
|
|
17
|
+
*/
|
|
18
|
+
/*
|
|
19
|
+
* nofollow rides along with noindex: a page that is meant to stay out of
|
|
20
|
+
* search results should not be passing crawl signals to the pages it links to
|
|
21
|
+
* either. This is the same directive Atlassian Statuspage and Status.io emit
|
|
22
|
+
* for their equivalent setting.
|
|
23
|
+
*/
|
|
24
|
+
export const NOINDEX_ROBOTS_DIRECTIVE = "noindex, nofollow";
|
|
25
|
+
export const X_ROBOTS_TAG_HEADER_NAME = "X-Robots-Tag";
|
|
26
|
+
/*
|
|
27
|
+
* Name of the flag on the status page /seo API response, and of the variable
|
|
28
|
+
* handed to index.ejs. Kept as a constant so the API, the two renderers and
|
|
29
|
+
* the template cannot disagree about the spelling.
|
|
30
|
+
*/
|
|
31
|
+
export const SEARCH_ENGINE_INDEXING_FLAG_NAME = "enableSearchEngineIndexing";
|
|
32
|
+
/**
|
|
33
|
+
* Reads the indexing flag off an untyped value - a JSON field from the /seo
|
|
34
|
+
* API, or a column that predates the migration.
|
|
35
|
+
*
|
|
36
|
+
* Everything that is not an explicit "off" means indexable. Failing this open
|
|
37
|
+
* is deliberate: the flag reaches the renderers over an internal HTTP call,
|
|
38
|
+
* and a blip on that call must not de-index a page whose owner never asked for
|
|
39
|
+
* that. The opposite failure (one render of a noindex page missing its meta
|
|
40
|
+
* tag) costs nothing permanent, because crawlers re-fetch.
|
|
41
|
+
*/
|
|
42
|
+
export function isSearchEngineIndexingEnabled(value) {
|
|
43
|
+
if (value === false) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
/*
|
|
47
|
+
* JSON round-trips and query strings can turn the boolean into a string.
|
|
48
|
+
* "false" is the only spelling either produces for false.
|
|
49
|
+
*/
|
|
50
|
+
if (value === "false") {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=SearchEngineIndexing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchEngineIndexing.js","sourceRoot":"","sources":["../../../../Types/StatusPage/SearchEngineIndexing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAW,mBAAmB,CAAC;AAEpE,MAAM,CAAC,MAAM,wBAAwB,GAAW,cAAc,CAAC;AAE/D;;;;GAIG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAC3C,4BAA4B,CAAC;AAE/B;;;;;;;;;GASG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAc;IAC1D,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The resource facets of the telemetry explorers (Logs / Traces), split by
|
|
3
|
+
* how a selection has to be turned into a predicate.
|
|
4
|
+
*
|
|
5
|
+
* A signal row names exactly one *primary* entity (`primaryEntityId` +
|
|
6
|
+
* `primaryEntityType`) and, since the entity model shipped, the full
|
|
7
|
+
* membership set it belongs to (`entityKeys`). Which of the two a facet
|
|
8
|
+
* selection has to be matched against depends on the ingestion path:
|
|
9
|
+
*
|
|
10
|
+
* - Agent-ingested resource telemetry (Infrastructure / Docker / Podman /
|
|
11
|
+
* Kubernetes agents) has no `service.name`, so the resource IS the
|
|
12
|
+
* primary entity and `primaryEntityId` holds its Postgres id.
|
|
13
|
+
* - OTLP telemetry that carries a `service.name` is primary-keyed on its
|
|
14
|
+
* Service (`OtelIngestBaseService.selectPrimaryEntity`); the host /
|
|
15
|
+
* cluster it runs on is recorded only in `entityKeys`.
|
|
16
|
+
*
|
|
17
|
+
* The second case is why coalescing every resource facet into one
|
|
18
|
+
* `primaryEntityId IN (...)` list returned nothing for a Kubernetes cluster
|
|
19
|
+
* ingested through an OpenTelemetry Collector: the cluster id was compared
|
|
20
|
+
* against a column that only ever held the Service id. Selections on these
|
|
21
|
+
* facets therefore compile to a per-facet OR of both memberships, and the
|
|
22
|
+
* per-facet groups AND with each other so "cluster X" + "service Y"
|
|
23
|
+
* intersects instead of unioning.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Facets whose values are Service ids — the ids that legitimately live in
|
|
27
|
+
* `primaryEntityId` for OTLP telemetry. `serviceId` is the pre-rename alias
|
|
28
|
+
* kept for stale clients (see ResourceFacetResolver).
|
|
29
|
+
*/
|
|
30
|
+
export const SERVICE_FACET_KEYS = [
|
|
31
|
+
"primaryEntityId",
|
|
32
|
+
"serviceId",
|
|
33
|
+
];
|
|
34
|
+
/**
|
|
35
|
+
* Facets whose values are ids of a NON-Service resource row. These are the
|
|
36
|
+
* ones that need the entity-key treatment; the value is a Postgres id
|
|
37
|
+
* (Host / DockerHost / PodmanHost / KubernetesCluster) which the server
|
|
38
|
+
* resolves to the resource's identifying value and then to its entity key.
|
|
39
|
+
*/
|
|
40
|
+
export const RESOURCE_ENTITY_FACET_KEYS = [
|
|
41
|
+
"hostId",
|
|
42
|
+
"dockerHostId",
|
|
43
|
+
"podmanHostId",
|
|
44
|
+
"kubernetesClusterId",
|
|
45
|
+
];
|
|
46
|
+
const RESOURCE_ENTITY_FACET_KEY_SET = new Set(RESOURCE_ENTITY_FACET_KEYS);
|
|
47
|
+
const SERVICE_FACET_KEY_SET = new Set(SERVICE_FACET_KEYS);
|
|
48
|
+
/**
|
|
49
|
+
* Every facet key that names a resource, in either group. Kept so call
|
|
50
|
+
* sites that only need "is this a resource chip?" (chip rendering, scope
|
|
51
|
+
* hand-off) do not have to consult both sets.
|
|
52
|
+
*/
|
|
53
|
+
export const ALL_RESOURCE_FACET_KEYS = [
|
|
54
|
+
...SERVICE_FACET_KEYS,
|
|
55
|
+
...RESOURCE_ENTITY_FACET_KEYS,
|
|
56
|
+
];
|
|
57
|
+
export function isServiceFacetKey(facetKey) {
|
|
58
|
+
return SERVICE_FACET_KEY_SET.has(facetKey);
|
|
59
|
+
}
|
|
60
|
+
export function isResourceEntityFacetKey(facetKey) {
|
|
61
|
+
return RESOURCE_ENTITY_FACET_KEY_SET.has(facetKey);
|
|
62
|
+
}
|
|
63
|
+
export function isResourceFacetKey(facetKey) {
|
|
64
|
+
return isServiceFacetKey(facetKey) || isResourceEntityFacetKey(facetKey);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Collect the non-Service resource selections out of applied facet filters.
|
|
68
|
+
* Accepts anything entry-iterable so the Logs explorer can pass a
|
|
69
|
+
* `Map<string, Set<string>>` and the Traces explorer a plain record via
|
|
70
|
+
* `Object.entries`.
|
|
71
|
+
*
|
|
72
|
+
* Values are de-duplicated and empty facets are dropped, so an emptied chip
|
|
73
|
+
* group never becomes a `[]` that a reader might read as "match nothing".
|
|
74
|
+
*/
|
|
75
|
+
export function collectResourceEntityFacetSelections(entries) {
|
|
76
|
+
const selections = {};
|
|
77
|
+
for (const [facetKey, values] of entries) {
|
|
78
|
+
if (!isResourceEntityFacetKey(facetKey)) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const unique = new Set(selections[facetKey] || []);
|
|
82
|
+
for (const value of values) {
|
|
83
|
+
if (typeof value === "string" && value.length > 0) {
|
|
84
|
+
unique.add(value);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (unique.size > 0) {
|
|
88
|
+
selections[facetKey] = Array.from(unique);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return selections;
|
|
92
|
+
}
|
|
93
|
+
/** Collect the Service-facet selections, same rules as the helper above. */
|
|
94
|
+
export function collectServiceFacetSelections(entries) {
|
|
95
|
+
const unique = new Set();
|
|
96
|
+
for (const [facetKey, values] of entries) {
|
|
97
|
+
if (!isServiceFacetKey(facetKey)) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
for (const value of values) {
|
|
101
|
+
if (typeof value === "string" && value.length > 0) {
|
|
102
|
+
unique.add(value);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return Array.from(unique);
|
|
107
|
+
}
|
|
108
|
+
/*
|
|
109
|
+
* Ids are ObjectID (UUID) strings. Validating the shape here means a
|
|
110
|
+
* malformed filter is dropped at the edge instead of reaching a lookup or a
|
|
111
|
+
* SQL parameter.
|
|
112
|
+
*/
|
|
113
|
+
const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
114
|
+
/** Upper bound on ids per facet, so a crafted request cannot send an unbounded list. */
|
|
115
|
+
export const MAX_RESOURCE_IDS_PER_FACET = 200;
|
|
116
|
+
/**
|
|
117
|
+
* Parse an untrusted `resourceFilters` value (request body field or a
|
|
118
|
+
* persisted saved-view query) into the canonical selection shape.
|
|
119
|
+
*
|
|
120
|
+
* Deliberately lenient: anything that is not `{ <known facet key>:
|
|
121
|
+
* <uuid>[] }` is dropped rather than turned into a predicate, because a
|
|
122
|
+
* malformed filter must mean "no constraint" — never "match nothing", which
|
|
123
|
+
* would show an empty explorer with no explanation.
|
|
124
|
+
*/
|
|
125
|
+
export function parseResourceEntityFacetSelections(source) {
|
|
126
|
+
const selections = {};
|
|
127
|
+
if (!source || typeof source !== "object" || Array.isArray(source)) {
|
|
128
|
+
return selections;
|
|
129
|
+
}
|
|
130
|
+
const record = source;
|
|
131
|
+
for (const facetKey of Object.keys(record)) {
|
|
132
|
+
if (!isResourceEntityFacetKey(facetKey)) {
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
const raw = record[facetKey];
|
|
136
|
+
if (!Array.isArray(raw)) {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
const ids = Array.from(new Set(raw.filter((value) => {
|
|
140
|
+
return typeof value === "string" && UUID_PATTERN.test(value);
|
|
141
|
+
}))).slice(0, MAX_RESOURCE_IDS_PER_FACET);
|
|
142
|
+
if (ids.length > 0) {
|
|
143
|
+
selections[facetKey] = ids;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return selections;
|
|
147
|
+
}
|
|
148
|
+
export function hasResourceEntityFacetSelections(selections) {
|
|
149
|
+
if (!selections) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
return Object.keys(selections).some((key) => {
|
|
153
|
+
return (selections[key] || []).length > 0;
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=ResourceEntityFacet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceEntityFacet.js","sourceRoot":"","sources":["../../../../Types/Telemetry/ResourceEntityFacet.ts"],"names":[],"mappings":"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"}
|
package/build/dist/Types/Text.js
CHANGED
|
@@ -183,18 +183,86 @@ class Text {
|
|
|
183
183
|
}
|
|
184
184
|
return null;
|
|
185
185
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
186
|
+
/*
|
|
187
|
+
* Cryptographically secure random bytes, or null if this runtime has no
|
|
188
|
+
* CSPRNG at all.
|
|
189
|
+
*
|
|
190
|
+
* `globalThis.crypto` is the Web Crypto API: present in every browser, and a
|
|
191
|
+
* global in Node since 19. It is used here rather than `require("crypto")`
|
|
192
|
+
* because this file is bundled into the dashboard as well as the server, so
|
|
193
|
+
* it cannot reach for a Node built-in.
|
|
194
|
+
*/
|
|
195
|
+
static getSecureRandomBytes(byteCount) {
|
|
196
|
+
const webCrypto = globalThis.crypto || {};
|
|
197
|
+
if (typeof webCrypto.getRandomValues !== "function") {
|
|
198
|
+
return null;
|
|
189
199
|
}
|
|
190
|
-
|
|
191
|
-
|
|
200
|
+
return webCrypto.getRandomValues(new Uint8Array(byteCount));
|
|
201
|
+
}
|
|
202
|
+
/*
|
|
203
|
+
* Draw `length` characters uniformly at random from `characters`.
|
|
204
|
+
*
|
|
205
|
+
* TWO properties here are load-bearing, and this used to have neither:
|
|
206
|
+
*
|
|
207
|
+
* 1. The source is a CSPRNG. Math.random is a fast non-cryptographic PRNG
|
|
208
|
+
* (xorshift128+ in V8) whose entire internal state can be recovered from
|
|
209
|
+
* a handful of observed outputs and then run forwards AND backwards. For
|
|
210
|
+
* a value used as a secret that is worse than a short code: an attacker
|
|
211
|
+
* who sees one generated value predicts the next one exactly, with no
|
|
212
|
+
* guessing at all.
|
|
213
|
+
*
|
|
214
|
+
* 2. The draw is unbiased. `byte % n` is only uniform when n divides 256.
|
|
215
|
+
* Rejection sampling discards the short tail of the byte range instead of
|
|
216
|
+
* folding it, which is what keeps a k-character code at its full
|
|
217
|
+
* k * log2(n) bits of entropy.
|
|
218
|
+
*
|
|
219
|
+
* The Math.random fallback survives ONLY for the case where no CSPRNG exists
|
|
220
|
+
* at all, which is unreachable on any supported runtime. It is there so the
|
|
221
|
+
* non-secret callers - SQL alias suffixes in QueryHelper and friends, which
|
|
222
|
+
* run on every query - cannot be broken by an exotic environment. Secrets
|
|
223
|
+
* must NOT come through here: notification-channel codes go through
|
|
224
|
+
* Common/Server/Utils/VerificationCode.ts, which throws rather than
|
|
225
|
+
* downgrading.
|
|
226
|
+
*/
|
|
227
|
+
static generateRandomString(length, characters) {
|
|
192
228
|
const charactersLength = characters.length;
|
|
193
|
-
|
|
194
|
-
|
|
229
|
+
/*
|
|
230
|
+
* The largest multiple of charactersLength that fits in a byte. Bytes at
|
|
231
|
+
* or above it are thrown away rather than folded - that is the whole of
|
|
232
|
+
* the rejection sampling, and skipping it is what biases the result.
|
|
233
|
+
*/
|
|
234
|
+
const unbiasedCeiling = 256 - (256 % charactersLength);
|
|
235
|
+
let result = "";
|
|
236
|
+
while (result.length < length) {
|
|
237
|
+
const remaining = length - result.length;
|
|
238
|
+
/*
|
|
239
|
+
* Over-draw a little so a rejected byte usually does not cost a second
|
|
240
|
+
* trip into the CSPRNG. With a 10-character alphabet fewer than 3% of
|
|
241
|
+
* bytes are rejected, so one pass almost always finishes the job.
|
|
242
|
+
*/
|
|
243
|
+
const bytes = Text.getSecureRandomBytes(remaining + Math.ceil(remaining / 4) + 4);
|
|
244
|
+
if (!bytes) {
|
|
245
|
+
while (result.length < length) {
|
|
246
|
+
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
247
|
+
}
|
|
248
|
+
return result;
|
|
249
|
+
}
|
|
250
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
251
|
+
if (result.length >= length) {
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
const byte = bytes[i];
|
|
255
|
+
if (byte === undefined || byte >= unbiasedCeiling) {
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
result += characters.charAt(byte % charactersLength);
|
|
259
|
+
}
|
|
195
260
|
}
|
|
196
261
|
return result;
|
|
197
262
|
}
|
|
263
|
+
static generateRandomText(length) {
|
|
264
|
+
return Text.generateRandomString(length || 10, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
|
|
265
|
+
}
|
|
198
266
|
static trimLines(text) {
|
|
199
267
|
return text
|
|
200
268
|
.split("\n")
|
|
@@ -203,17 +271,14 @@ class Text {
|
|
|
203
271
|
})
|
|
204
272
|
.join("\n");
|
|
205
273
|
}
|
|
274
|
+
/*
|
|
275
|
+
* The alphabet used to be the string "12134567890" - eleven characters, with
|
|
276
|
+
* "1" written twice and every digit therefore NOT equally likely. Combined
|
|
277
|
+
* with Math.random that made a six-digit code both biased and predictable.
|
|
278
|
+
* Both halves are fixed in generateRandomString above.
|
|
279
|
+
*/
|
|
206
280
|
static generateRandomNumber(length) {
|
|
207
|
-
|
|
208
|
-
length = 10;
|
|
209
|
-
}
|
|
210
|
-
let result = "";
|
|
211
|
-
const characters = "12134567890";
|
|
212
|
-
const charactersLength = characters.length;
|
|
213
|
-
for (let i = 0; i < length; i++) {
|
|
214
|
-
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
215
|
-
}
|
|
216
|
-
return result;
|
|
281
|
+
return Text.generateRandomString(length || 10, "0123456789");
|
|
217
282
|
}
|
|
218
283
|
static convertNumberToWords(num) {
|
|
219
284
|
const words = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../Types/Text.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../Types/Text.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,21 +36,23 @@ const Button = ({ title, onClick, disabled, id, shortcutKey, type = ButtonType.B
|
|
|
36
36
|
const translatedTitle = translateString(title);
|
|
37
37
|
const translatedTooltip = translateString(tooltip);
|
|
38
38
|
useEffect(() => {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
window.addEventListener(`keydown`, (e) => {
|
|
42
|
-
return handleKeyboard(e);
|
|
43
|
-
});
|
|
39
|
+
if (!shortcutKey) {
|
|
40
|
+
return undefined;
|
|
44
41
|
}
|
|
45
|
-
|
|
42
|
+
/*
|
|
43
|
+
* One stable function for the whole subscription. The previous version
|
|
44
|
+
* passed a fresh arrow function to removeEventListener, which never
|
|
45
|
+
* matches the one that was added — every render leaked a live keydown
|
|
46
|
+
* listener for the lifetime of the page.
|
|
47
|
+
*/
|
|
48
|
+
const onKeyDown = (event) => {
|
|
49
|
+
return handleKeyboard(event);
|
|
50
|
+
};
|
|
51
|
+
window.addEventListener(`keydown`, onKeyDown);
|
|
46
52
|
return () => {
|
|
47
|
-
|
|
48
|
-
window.removeEventListener(`keydown`, (e) => {
|
|
49
|
-
return handleKeyboard(e);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
53
|
+
window.removeEventListener(`keydown`, onKeyDown);
|
|
52
54
|
};
|
|
53
|
-
});
|
|
55
|
+
}, [shortcutKey, onClick]);
|
|
54
56
|
const handleKeyboard = (event) => {
|
|
55
57
|
if (event.target instanceof HTMLBodyElement && event.key && shortcutKey) {
|
|
56
58
|
switch (event.key) {
|
|
@@ -76,13 +78,13 @@ const Button = ({ title, onClick, disabled, id, shortcutKey, type = ButtonType.B
|
|
|
76
78
|
iconClassName += ` m-1`;
|
|
77
79
|
}
|
|
78
80
|
if (buttonStyle === ButtonStyleType.LINK) {
|
|
79
|
-
buttonStyleCssClass = `text-indigo-600 hover:text-indigo-900 space-x-2`;
|
|
81
|
+
buttonStyleCssClass = `text-indigo-600 hover:text-indigo-900 space-x-2 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500 focus-visible:ring-offset-2`;
|
|
80
82
|
if (icon) {
|
|
81
83
|
buttonStyleCssClass += ` flex`;
|
|
82
84
|
}
|
|
83
85
|
}
|
|
84
86
|
if (buttonStyle === ButtonStyleType.SECONDARY_LINK) {
|
|
85
|
-
buttonStyleCssClass = `text-sm text-gray-400 hover:text-gray-500 space-x-2`;
|
|
87
|
+
buttonStyleCssClass = `text-sm text-gray-400 hover:text-gray-500 space-x-2 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500 focus-visible:ring-offset-2`;
|
|
86
88
|
if (icon) {
|
|
87
89
|
buttonStyleCssClass += ` flex`;
|
|
88
90
|
}
|
|
@@ -134,6 +136,12 @@ const Button = ({ title, onClick, disabled, id, shortcutKey, type = ButtonType.B
|
|
|
134
136
|
if (buttonStyle === ButtonStyleType.WARNING_OUTLINE) {
|
|
135
137
|
buttonStyleCssClass = `inline-flex w-full justify-center rounded-md border border-yellow-700 bg-white text-base font-medium text-yellow-700 shadow-sm ${disabled ? "" : "hover:bg-yellow-50"} focus:outline-none focus:ring-2 focus:ring-yellow-500 focus:ring-offset-2 md:mt-0 md:ml-3 md:w-auto md:text-sm`;
|
|
136
138
|
}
|
|
139
|
+
/*
|
|
140
|
+
* The one shared point every variant funnels through: hover/focus colour
|
|
141
|
+
* changes ease in instead of snapping, at the same 150ms the other
|
|
142
|
+
* primitives use.
|
|
143
|
+
*/
|
|
144
|
+
buttonStyleCssClass += ` transition-colors duration-150 ease-out`;
|
|
137
145
|
buttonStyleCssClass += ` ` + buttonSize;
|
|
138
146
|
if (className) {
|
|
139
147
|
buttonStyleCssClass += ` ` + className;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../../../UI/Components/Button/Button.tsx"],"names":[],"mappings":"AACA,OAAO,IAAkB,MAAM,cAAc,CAAC;AAE9C,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,EAAmC,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAGzC,MAAM,CAAN,IAAY,eAkBX;AAlBD,WAAY,eAAe;IACzB,2DAAO,CAAA;IACP,+DAAS,CAAA;IACT,2DAAO,CAAA;IACP,yDAAM,CAAA;IACN,yDAAM,CAAA;IACN,yEAAc,CAAA;IACd,2DAAO,CAAA;IACP,2EAAe,CAAA;IACf,2DAAO,CAAA;IACP,2EAAe,CAAA;IACf,kEAAU,CAAA;IACV,sDAAI,CAAA;IACJ,0EAAc,CAAA;IACd,sDAAI,CAAA;IACJ,sFAAoB,CAAA;IACpB,wFAAqB,CAAA;IACrB,wFAAqB,CAAA;AACvB,CAAC,EAlBW,eAAe,KAAf,eAAe,QAkB1B;AAED,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,kCAAoB,CAAA;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,sCAAwB,CAAA;AAC1B,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAiCD,MAAM,MAAM,GAAsC,CAAC,EACjD,KAAK,EACL,OAAO,EACP,QAAQ,EACR,EAAE,EACF,WAAW,EACX,IAAI,GAAG,UAAU,CAAC,MAAM,EACxB,SAAS,GAAG,KAAK,EACjB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,WAAW,GAAG,eAAe,CAAC,MAAM,EACpC,UAAU,GAAG,UAAU,CAAC,MAAM,EAC9B,UAAU,EACV,SAAS,EACT,OAAO,EACP,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,YAAY,GACG,EAAgB,EAAE;IACjC,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAChD,MAAM,eAAe,GAAuB,eAAe,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,iBAAiB,GAAuB,eAAe,CAAC,OAAO,CAAC,CAAC;IACvE,SAAS,CAAC,GAAG,EAAE;QACb,
|
|
1
|
+
{"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../../../UI/Components/Button/Button.tsx"],"names":[],"mappings":"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"}
|