@oneuptime/common 12.0.2 → 12.0.4
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/CephCluster.ts +14 -0
- package/Models/DatabaseModels/CodeRepository.ts +14 -6
- package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +14 -0
- package/Models/DatabaseModels/DockerHost.ts +14 -0
- package/Models/DatabaseModels/GlobalOidcProject.ts +18 -0
- package/Models/DatabaseModels/GlobalSsoProject.ts +18 -0
- package/Models/DatabaseModels/Index.ts +2 -0
- package/Models/DatabaseModels/IoTFleet.ts +14 -0
- package/Models/DatabaseModels/KubernetesCluster.ts +14 -0
- package/Models/DatabaseModels/LogDropFilter.ts +9 -20
- package/Models/DatabaseModels/NetworkDevice.ts +14 -0
- package/Models/DatabaseModels/NetworkInterface.ts +18 -0
- package/Models/DatabaseModels/Project.ts +16 -2
- package/Models/DatabaseModels/ProxmoxCluster.ts +14 -0
- package/Models/DatabaseModels/Service.ts +30 -0
- package/Models/DatabaseModels/StatusPageMonitorRule.ts +911 -0
- package/Models/DatabaseModels/StatusPagePrivateUser.ts +30 -0
- package/Models/DatabaseModels/StatusPageResource.ts +73 -0
- package/Models/DatabaseModels/TraceDropFilter.ts +9 -20
- package/Models/DatabaseModels/User.ts +30 -0
- package/Server/API/AIAgentDataAPI.ts +31 -0
- package/Server/API/BaseAPI.ts +13 -2
- package/Server/API/DashboardAPI.ts +458 -12
- package/Server/API/GitHubAPI.ts +119 -283
- package/Server/API/UserAPI.ts +263 -1
- package/Server/EnvironmentConfig.ts +38 -4
- package/Server/Infrastructure/GlobalCache.ts +152 -0
- package/Server/Infrastructure/Postgres/DataSourceOptions.ts +16 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.ts +123 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.ts +21 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.ts +68 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.ts +100 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.ts +214 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.ts +69 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
- package/Server/Services/AlertStateTimelineService.ts +20 -0
- package/Server/Services/AnalyticsDatabaseService.ts +72 -1
- package/Server/Services/CephClusterService.ts +26 -86
- package/Server/Services/CloudResourceService.ts +23 -83
- package/Server/Services/CodeRepositoryService.ts +105 -2
- package/Server/Services/DatabaseService.ts +296 -2
- package/Server/Services/DockerHostService.ts +19 -79
- package/Server/Services/DockerSwarmClusterService.ts +27 -88
- package/Server/Services/HostService.ts +46 -99
- package/Server/Services/IncidentStateTimelineService.ts +20 -0
- package/Server/Services/Index.ts +2 -0
- package/Server/Services/IoTFleetService.ts +19 -79
- package/Server/Services/KubernetesClusterService.ts +17 -78
- package/Server/Services/LabelService.ts +57 -10
- package/Server/Services/MetricTypeService.ts +84 -0
- package/Server/Services/MonitorService.ts +89 -14
- package/Server/Services/MonitorStatusTimelineService.ts +29 -0
- package/Server/Services/MonitorTemplateService.ts +65 -0
- package/Server/Services/OpenTelemetryIngestService.ts +230 -26
- package/Server/Services/PodmanHostService.ts +19 -79
- package/Server/Services/ProxmoxClusterService.ts +23 -83
- package/Server/Services/RumApplicationService.ts +19 -80
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +21 -0
- package/Server/Services/ServerlessFunctionService.ts +24 -85
- package/Server/Services/ServiceService.ts +299 -73
- package/Server/Services/StatusPageMonitorRuleEngineService.ts +752 -0
- package/Server/Services/StatusPageMonitorRuleService.ts +471 -0
- package/Server/Services/TelemetryEntityRelationshipService.ts +1 -0
- package/Server/Services/TelemetryEntityService.ts +1 -0
- package/Server/Services/UserService.ts +184 -0
- package/Server/Utils/AI/Toolbox/CodeTools.ts +45 -4
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +13 -0
- package/Server/Utils/CodeRepository/GitHub/GitHub.ts +157 -4
- package/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.ts +130 -0
- package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +170 -39
- package/Server/Utils/Monitor/MonitorResource.ts +63 -36
- package/Server/Utils/Monitor/MonitorStatusTimeline.ts +36 -0
- package/Server/Utils/Monitor/MonitorStepsProjectValidator.ts +148 -127
- package/Server/Utils/Monitor/MonitorStepsReferenceExtractor.ts +434 -0
- package/Server/Utils/PasswordHash.ts +306 -0
- package/Server/Utils/SingleFlight.ts +83 -0
- package/Server/Utils/StatusPage/MonitorRulePatternValidator.ts +46 -0
- package/Server/Utils/Telemetry/EntityRegistry.ts +107 -26
- package/Server/Utils/Telemetry/ResourceHeartbeat.ts +314 -0
- package/Server/Utils/Telemetry/Telemetry.ts +351 -122
- package/Tests/App/Dashboard/OverviewCustomFields.test.tsx +333 -0
- package/Tests/App/Dashboard/UserCustomFields.test.tsx +392 -0
- package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
- package/Tests/Models/DatabaseModels/ColumnTransformerInvariants.test.ts +306 -0
- package/Tests/Models/DatabaseModels/NumberColumnDeserialization.test.ts +333 -0
- package/Tests/Models/DatabaseModels/StatusPageMonitorRuleModel.test.ts +190 -0
- package/Tests/Server/API/AIAgentDataRepositoryToken.test.ts +381 -0
- package/Tests/Server/API/DashboardPublicAttributeValuesAPI.test.ts +943 -0
- package/Tests/Server/API/DashboardPublicMetricsAggregateAPI.test.ts +1296 -0
- package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +26 -0
- package/Tests/Server/API/DashboardPublicTemplatePayloads.test.ts +598 -0
- package/Tests/Server/API/GitHubAppInstallationBindingAPI.test.ts +539 -0
- package/Tests/Server/API/Helpers.ts +6 -1
- package/Tests/Server/API/UserProjectsAPI.test.ts +852 -0
- package/Tests/Server/Infrastructure/GlobalCache.test.ts +354 -0
- package/Tests/Server/Infrastructure/PostgresLockTimeoutOptions.test.ts +181 -0
- package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +215 -0
- package/Tests/Server/Services/AddPerUserPasswordSaltMigration.test.ts +178 -0
- package/Tests/Server/Services/AnalyticsDatabasePaginationStability.test.ts +582 -0
- package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +5 -0
- package/Tests/Server/Services/CodeRepositoryInstallationBinding.test.ts +305 -0
- package/Tests/Server/Services/CodeRepositoryResolutionBinding.test.ts +147 -0
- package/Tests/Server/Services/DatabaseServicePerUserPasswordSalt.test.ts +870 -0
- package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlocked.test.ts +342 -0
- package/Tests/Server/Services/DropFilterSaveValidation.test.ts +245 -0
- package/Tests/Server/Services/HostServiceUpdateLastSeen.test.ts +163 -15
- package/Tests/Server/Services/MetricTypeAttachServices.test.ts +222 -0
- package/Tests/Server/Services/MissingReferenceWriteGuard.test.ts +614 -0
- package/Tests/Server/Services/MonitorStatusTimelineFastPath.test.ts +23 -0
- package/Tests/Server/Services/OpenTelemetryServiceResolutionCache.test.ts +568 -0
- package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +305 -56
- package/Tests/Server/Services/RestoreDroppedUniqueIndexesMigration.test.ts +386 -0
- package/Tests/Server/Services/RestoreServiceLowerNameIndexMigration.test.ts +240 -0
- package/Tests/Server/Services/ServiceUpdateLastSeenSplitGates.test.ts +705 -0
- package/Tests/Server/Services/StatusPageMonitorRuleEngineService.test.ts +1719 -0
- package/Tests/Server/Services/StatusPageMonitorRuleHooks.test.ts +1212 -0
- package/Tests/Server/Services/StatusPageMonitorRuleMonitorCreateHook.test.ts +228 -0
- package/Tests/Server/Services/UserServiceFirstMasterAdminElection.test.ts +885 -0
- package/Tests/Server/Services/WidenHashedStringColumnsForScryptMigration.test.ts +220 -0
- package/Tests/Server/Utils/AI/CodeTools.test.ts +47 -1
- package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +10 -0
- package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +267 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +120 -0
- package/Tests/Server/Utils/CodeRepository/GitHubInstallationBinding.test.ts +292 -0
- package/Tests/Server/Utils/Database/ProjectScopedReferenceValidator.test.ts +260 -13
- package/Tests/Server/Utils/EntityRegistryRowFence.test.ts +302 -0
- package/Tests/Server/Utils/GitHubInstallationOwnershipVerification.test.ts +340 -0
- package/Tests/Server/Utils/GitHubWebhookAndTreeCacheIsolation.test.ts +250 -0
- package/Tests/Server/Utils/MetricTypeIndexConvergence.test.ts +598 -0
- package/Tests/Server/Utils/Monitor/MonitorStatusTimelineUnusableStatus.test.ts +154 -0
- package/Tests/Server/Utils/Monitor/MonitorStepsProjectValidator.test.ts +638 -92
- package/Tests/Server/Utils/Monitor/MonitorStepsReferenceExtractor.test.ts +724 -0
- package/Tests/Server/Utils/PasswordHash.test.ts +555 -0
- package/Tests/Server/Utils/SingleFlight.test.ts +221 -0
- package/Tests/Types/Dashboard/NetworkDashboardTemplate.test.ts +793 -0
- package/Tests/Types/Database/BigIntColumnTransformer.test.ts +147 -0
- package/Tests/Types/Database/ColumnLength.test.ts +7 -1
- package/Tests/Types/Database/DatabasePropertyTransformer.test.ts +140 -0
- package/Tests/Types/Database/NumericColumnValue.test.ts +127 -0
- package/Tests/Types/Decimal.test.ts +37 -0
- package/Tests/Types/HashedStringPerUserSalt.test.ts +476 -0
- package/Tests/Types/Monitor/DockerAlertTemplates.test.ts +293 -0
- package/Tests/Types/Monitor/HostAlertTemplates.test.ts +249 -0
- package/Tests/Types/Monitor/IotAlertTemplates.test.ts +320 -0
- package/Tests/Types/Monitor/PodmanAlertTemplates.test.ts +271 -0
- package/Tests/Types/Monitor/SnmpVersionParsing.test.ts +152 -0
- package/Tests/Types/Port.test.ts +38 -0
- package/Tests/UI/Components/CustomFields/CustomFieldsDetail.test.tsx +696 -0
- package/Tests/UI/Components/LogsHistogram.test.tsx +276 -0
- package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +489 -0
- package/Tests/UI/Components/UseLogsHistogram.test.tsx +500 -0
- package/Tests/UI/Utils/UserProjectsModelAPI.test.ts +714 -0
- package/Tests/Utils/Dashboard/Components/DashboardComponentsUtil.test.ts +120 -0
- package/Tests/Utils/Dashboard/DashboardNetworkMapComponent.test.ts +327 -0
- package/Tests/Utils/TeamMembersByProject.test.ts +655 -0
- package/Types/Dashboard/DashboardComponentType.ts +1 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
- package/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.ts +40 -0
- package/Types/Dashboard/DashboardTemplates.ts +397 -0
- package/Types/Database/BigIntColumnTransformer.ts +74 -0
- package/Types/Database/ColumnLength.ts +9 -1
- package/Types/Database/DatabaseProperty.ts +26 -0
- package/Types/Database/NumericColumnValue.ts +128 -0
- package/Types/Database/TableColumn.ts +11 -0
- package/Types/Database/UnsynchronizedIndex.ts +48 -0
- package/Types/Decimal.ts +16 -4
- package/Types/HashedString.ts +139 -4
- package/Types/Permission.ts +48 -0
- package/Types/Port.ts +16 -4
- package/UI/Components/CustomFields/CustomFieldsDetail.tsx +85 -11
- package/UI/Components/LogsViewer/useLiveLogsRefresh.ts +86 -0
- package/UI/Components/LogsViewer/useLogsHistogram.ts +113 -0
- package/UI/Components/Navbar/NavBar.tsx +12 -2
- package/UI/Components/Navbar/NavBarMenuModal.tsx +19 -7
- package/UI/Utils/ModelAPI/UserProjectsModelAPI.ts +257 -0
- package/Utils/Dashboard/Components/DashboardNetworkMapComponent.ts +136 -0
- package/Utils/Dashboard/Components/Index.ts +7 -0
- package/Utils/TeamMembersByProject.ts +237 -0
- package/build/dist/Models/DatabaseModels/CephCluster.js +16 -1
- package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CodeRepository.js +14 -6
- package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +12 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerHost.js +16 -1
- package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalOidcProject.js +16 -1
- package/build/dist/Models/DatabaseModels/GlobalOidcProject.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalSsoProject.js +16 -1
- package/build/dist/Models/DatabaseModels/GlobalSsoProject.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +2 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IoTFleet.js +16 -1
- package/build/dist/Models/DatabaseModels/IoTFleet.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesCluster.js +16 -1
- package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LogDropFilter.js +9 -20
- package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +16 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkInterface.js +16 -1
- package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +16 -2
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +16 -1
- package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Service.js +28 -1
- package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js +925 -0
- package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js +32 -0
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageResource.js +72 -0
- package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TraceDropFilter.js +9 -20
- package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -1
- package/build/dist/Models/DatabaseModels/User.js +32 -0
- package/build/dist/Models/DatabaseModels/User.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +21 -2
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/API/BaseAPI.js +11 -1
- package/build/dist/Server/API/BaseAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +343 -10
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/GitHubAPI.js +94 -167
- package/build/dist/Server/API/GitHubAPI.js.map +1 -1
- package/build/dist/Server/API/UserAPI.js +187 -2
- package/build/dist/Server/API/UserAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +34 -4
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/GlobalCache.js +120 -0
- package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +5 -3
- package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js +48 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.js +59 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.js +93 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.js +101 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786200000000-RestoreDroppedUniqueIndexes.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.js +66 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786300000000-QuarantineUnboundGitHubInstallations.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AlertStateTimelineService.js +19 -0
- package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +57 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterService.js +26 -76
- package/build/dist/Server/Services/CephClusterService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceService.js +23 -73
- package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
- package/build/dist/Server/Services/CodeRepositoryService.js +90 -2
- package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +246 -2
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostService.js +19 -69
- package/build/dist/Server/Services/DockerHostService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterService.js +27 -78
- package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
- package/build/dist/Server/Services/HostService.js +58 -102
- package/build/dist/Server/Services/HostService.js.map +1 -1
- package/build/dist/Server/Services/IncidentStateTimelineService.js +19 -0
- package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +2 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/IoTFleetService.js +19 -69
- package/build/dist/Server/Services/IoTFleetService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterService.js +17 -68
- package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
- package/build/dist/Server/Services/LabelService.js +42 -7
- package/build/dist/Server/Services/LabelService.js.map +1 -1
- package/build/dist/Server/Services/MetricTypeService.js +74 -0
- package/build/dist/Server/Services/MetricTypeService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +81 -9
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorStatusTimelineService.js +28 -0
- package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorTemplateService.js +60 -0
- package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +155 -25
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostService.js +19 -69
- package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterService.js +23 -73
- package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationService.js +19 -70
- package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +20 -0
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionService.js +24 -75
- package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
- package/build/dist/Server/Services/ServiceService.js +236 -61
- package/build/dist/Server/Services/ServiceService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +603 -0
- package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/StatusPageMonitorRuleService.js +401 -0
- package/build/dist/Server/Services/StatusPageMonitorRuleService.js.map +1 -0
- package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +1 -0
- package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryEntityService.js +1 -0
- package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +165 -0
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js +31 -1
- package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +13 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +126 -4
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.js +136 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubInstallationBinding.js.map +1 -0
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +105 -29
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +56 -32
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +30 -3
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js +110 -98
- package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js +312 -0
- package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js.map +1 -0
- package/build/dist/Server/Utils/PasswordHash.js +237 -0
- package/build/dist/Server/Utils/PasswordHash.js.map +1 -0
- package/build/dist/Server/Utils/SingleFlight.js +76 -0
- package/build/dist/Server/Utils/SingleFlight.js.map +1 -0
- package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js +29 -0
- package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +78 -19
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js +160 -0
- package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/Telemetry.js +279 -104
- package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js +368 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/Database/BigIntColumnTransformer.js +66 -0
- package/build/dist/Types/Database/BigIntColumnTransformer.js.map +1 -0
- package/build/dist/Types/Database/ColumnLength.js +9 -1
- package/build/dist/Types/Database/ColumnLength.js.map +1 -1
- package/build/dist/Types/Database/DatabaseProperty.js +25 -0
- package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
- package/build/dist/Types/Database/NumericColumnValue.js +97 -0
- package/build/dist/Types/Database/NumericColumnValue.js.map +1 -0
- package/build/dist/Types/Database/TableColumn.js.map +1 -1
- package/build/dist/Types/Database/UnsynchronizedIndex.js +46 -0
- package/build/dist/Types/Database/UnsynchronizedIndex.js.map +1 -0
- package/build/dist/Types/Decimal.js +14 -3
- package/build/dist/Types/Decimal.js.map +1 -1
- package/build/dist/Types/HashedString.js +95 -5
- package/build/dist/Types/HashedString.js.map +1 -1
- package/build/dist/Types/Permission.js +42 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Port.js +15 -5
- package/build/dist/Types/Port.js.map +1 -1
- package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +51 -10
- package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js +44 -0
- package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js.map +1 -0
- package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js +75 -0
- package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js.map +1 -0
- package/build/dist/UI/Components/Navbar/NavBar.js +3 -1
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +19 -7
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
- package/build/dist/UI/Utils/ModelAPI/UserProjectsModelAPI.js +156 -0
- package/build/dist/UI/Utils/ModelAPI/UserProjectsModelAPI.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js +114 -0
- package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/TeamMembersByProject.js +145 -0
- package/build/dist/Utils/TeamMembersByProject.js.map +1 -0
- package/package.json +1 -1
|
@@ -102,12 +102,38 @@ export const MaxPostgresConnections = parseInt(process.env["DATABASE_MAX_OPEN_CO
|
|
|
102
102
|
* connection forever and starve the pool.
|
|
103
103
|
*/
|
|
104
104
|
export const PostgresStatementTimeoutMs = parseInt(process.env["DATABASE_STATEMENT_TIMEOUT_MS"] || "30000", 10);
|
|
105
|
+
/*
|
|
106
|
+
* Postgres-side lock timeout (ms). Caps how long a statement will WAIT for a
|
|
107
|
+
* row/table lock before giving up — distinct from statement_timeout, which
|
|
108
|
+
* caps total execution.
|
|
109
|
+
*
|
|
110
|
+
* Without it, contention on a hot row degrades into a strictly-ordered queue:
|
|
111
|
+
* every waiter pins a backend for the sum of everyone ahead of it. That is the
|
|
112
|
+
* row-lock convoy that took production down — 892 connections parked on locks,
|
|
113
|
+
* the tail waiting 3.7 hours — and no amount of database capacity changes it,
|
|
114
|
+
* because the queue itself is the failure. A short lock_timeout converts an
|
|
115
|
+
* unbounded wait into a fast, retryable error.
|
|
116
|
+
*
|
|
117
|
+
* Must stay well below statement_timeout so a lock wait surfaces as
|
|
118
|
+
* `lock_not_available` (55P03) rather than a generic statement timeout — the
|
|
119
|
+
* two want very different handling.
|
|
120
|
+
*/
|
|
121
|
+
export const PostgresLockTimeoutMs = parseInt(process.env["DATABASE_LOCK_TIMEOUT_MS"] || "3000", 10);
|
|
105
122
|
/*
|
|
106
123
|
* Node-postgres client-side query timeout (ms). Belt-and-braces for the
|
|
107
124
|
* server-side statement_timeout — fires even if the connection has gone
|
|
108
125
|
* silent or the server-side timeout doesn't kick in.
|
|
126
|
+
*
|
|
127
|
+
* Deliberately LONGER than statement_timeout. These two used to be equal, and
|
|
128
|
+
* because the client timer starts before the packet even reaches the backend,
|
|
129
|
+
* the client always won by a round trip — so the app never observed Postgres's
|
|
130
|
+
* real SQLSTATE and, worse, the client-side timeout only ABANDONS the query:
|
|
131
|
+
* the backend keeps running and keeps its place in the lock queue. Letting the
|
|
132
|
+
* server win means contention is cancelled server-side instead of accumulating
|
|
133
|
+
* invisibly behind a pooler.
|
|
109
134
|
*/
|
|
110
|
-
export const PostgresQueryTimeoutMs = parseInt(process.env["DATABASE_QUERY_TIMEOUT_MS"] ||
|
|
135
|
+
export const PostgresQueryTimeoutMs = parseInt(process.env["DATABASE_QUERY_TIMEOUT_MS"] ||
|
|
136
|
+
String(PostgresStatementTimeoutMs + 5000), 10);
|
|
111
137
|
/*
|
|
112
138
|
* Postgres-side idle-in-transaction timeout (ms). Kills connections that
|
|
113
139
|
* are stuck holding row locks inside a BEGIN without committing.
|
|
@@ -253,10 +279,14 @@ export const DisableQueueWorkers = process.env["DISABLE_QUEUE_WORKERS"] === "tru
|
|
|
253
279
|
* When "false", this process does NOT run schema or data migrations on boot.
|
|
254
280
|
* Set on runtime pods (app/worker/nginx) when a dedicated one-shot migrate Job
|
|
255
281
|
* (App/Migrate.ts) owns migrations instead, so the fleet's many replicas never
|
|
256
|
-
* run them — which
|
|
257
|
-
*
|
|
282
|
+
* run them — which keeps boot DDL off pooled connections and, since the data
|
|
283
|
+
* migration runner no longer takes an advisory lock, is also what keeps two
|
|
284
|
+
* replicas from running the same migration concurrently.
|
|
285
|
+
*
|
|
258
286
|
* Default true preserves the original self-migrating-on-boot behavior used by
|
|
259
|
-
* docker-compose and any deploy that does not run the migrate Job.
|
|
287
|
+
* docker-compose and any deploy that does not run the migrate Job. Those
|
|
288
|
+
* deployments DO run several unserialized runners, so data migrations must be
|
|
289
|
+
* written to tolerate it (see Workers/Utils/DataMigration.ts).
|
|
260
290
|
*/
|
|
261
291
|
export const RunDatabaseMigrationsOnBoot = process.env["RUN_DATABASE_MIGRATIONS_ON_BOOT"] !== "false";
|
|
262
292
|
export const ClickhouseHost = Hostname.fromString(process.env["CLICKHOUSE_HOST"] || "clickhouse");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentConfig.js","sourceRoot":"","sources":["../../../Server/EnvironmentConfig.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EnvironmentConfig.js","sourceRoot":"","sources":["../../../Server/EnvironmentConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,6 +101,108 @@ export default class GlobalCache {
|
|
|
101
101
|
*/
|
|
102
102
|
await client.set(`${namespace}-${key}`, value, "EX", expiresInSeconds);
|
|
103
103
|
}
|
|
104
|
+
/*
|
|
105
|
+
* Atomic acquire-once fence: SET ... EX ... NX. Returns true ONLY for the
|
|
106
|
+
* caller that created the key; every concurrent caller gets false until it
|
|
107
|
+
* expires.
|
|
108
|
+
*
|
|
109
|
+
* This exists because `getString()` followed by `setString()` is a
|
|
110
|
+
* check-then-act race, and at ingest concurrency that race is not
|
|
111
|
+
* theoretical — it is the whole problem. When N workers resolve the same
|
|
112
|
+
* row in the same instant they ALL read a miss and they ALL proceed, so a
|
|
113
|
+
* fence meant to admit one writer per window admits N. With 100 worker pods
|
|
114
|
+
* that turned a once-a-minute heartbeat into thousands of simultaneous
|
|
115
|
+
* UPDATEs against the same handful of rows, and the resulting row-lock
|
|
116
|
+
* convoy starved the Postgres connection pool (some statements queued for
|
|
117
|
+
* hours). Redis evaluates SET NX atomically, so exactly one caller wins no
|
|
118
|
+
* matter how many arrive together.
|
|
119
|
+
*
|
|
120
|
+
* Fence keys should carry the TTL jitter from `withJitter()` — see there for
|
|
121
|
+
* why synchronized expiry re-creates the herd this is meant to prevent.
|
|
122
|
+
*/
|
|
123
|
+
static async setStringIfNotExists(namespace, key, value, options) {
|
|
124
|
+
var _a;
|
|
125
|
+
const client = Redis.getClient();
|
|
126
|
+
if (!client || !Redis.isConnected()) {
|
|
127
|
+
throw new DatabaseNotConnectedException("Cache is not connected");
|
|
128
|
+
}
|
|
129
|
+
const expiresInSeconds = (_a = options === null || options === void 0 ? void 0 : options.expiresInSeconds) !== null && _a !== void 0 ? _a : OneUptimeDate.getSecondsInDays(30);
|
|
130
|
+
const result = await client.set(`${namespace}-${key}`, value, "EX", expiresInSeconds, "NX");
|
|
131
|
+
/*
|
|
132
|
+
* ioredis resolves to "OK" when the key was created and to null when it
|
|
133
|
+
* already existed. Anything else (a driver/protocol change) is treated as
|
|
134
|
+
* "did not acquire" — losing the fence is safe, winning it wrongly is not.
|
|
135
|
+
*/
|
|
136
|
+
return result === "OK";
|
|
137
|
+
}
|
|
138
|
+
/*
|
|
139
|
+
* Atomic compare-and-claim: claim the window unless the key ALREADY holds
|
|
140
|
+
* `value`. Returns true only for the caller that claimed it.
|
|
141
|
+
*
|
|
142
|
+
* `setStringIfNotExists` is the right primitive for a presence fence and the
|
|
143
|
+
* wrong one for a fingerprint throttle. Plain NX fails whenever the key
|
|
144
|
+
* exists — including when it holds a STALE fingerprint — so a genuinely
|
|
145
|
+
* changed payload (a new service.version after a deploy, a changed host IP)
|
|
146
|
+
* would be suppressed for the whole window and nobody would persist it. This
|
|
147
|
+
* keeps the bust-on-change behaviour that callers depend on while collapsing
|
|
148
|
+
* the GET-then-SET race into one atomic evaluation.
|
|
149
|
+
*
|
|
150
|
+
* The key is passed as KEYS[1] rather than inlined into the script body so
|
|
151
|
+
* the script stays correct on Redis Cluster, which routes by declared keys.
|
|
152
|
+
*/
|
|
153
|
+
static async setStringIfChanged(namespace, key, value, options) {
|
|
154
|
+
var _a;
|
|
155
|
+
const client = Redis.getClient();
|
|
156
|
+
if (!client || !Redis.isConnected()) {
|
|
157
|
+
throw new DatabaseNotConnectedException("Cache is not connected");
|
|
158
|
+
}
|
|
159
|
+
const expiresInSeconds = (_a = options === null || options === void 0 ? void 0 : options.expiresInSeconds) !== null && _a !== void 0 ? _a : OneUptimeDate.getSecondsInDays(30);
|
|
160
|
+
const result = await client.eval("if redis.call('GET', KEYS[1]) == ARGV[1] then return 0 " +
|
|
161
|
+
"else redis.call('SET', KEYS[1], ARGV[1], 'EX', ARGV[2]) return 1 end", 1, `${namespace}-${key}`, value, String(expiresInSeconds));
|
|
162
|
+
return result === 1;
|
|
163
|
+
}
|
|
164
|
+
/*
|
|
165
|
+
* Spread a fence TTL over [ttl, ttl + 25%].
|
|
166
|
+
*
|
|
167
|
+
* A fixed TTL makes every fence for a fleet of rows expire in lockstep once
|
|
168
|
+
* their writes have been aligned by a common event — a deploy, a worker
|
|
169
|
+
* scale-up, a Redis restart. The window then reopens for thousands of rows
|
|
170
|
+
* in the same second and the herd re-forms on a one-minute period. Jitter
|
|
171
|
+
* breaks that alignment permanently: the fences drift apart after the first
|
|
172
|
+
* window and stay apart.
|
|
173
|
+
*
|
|
174
|
+
* The upper bound stays well inside the 15-minute disconnection sweep, so a
|
|
175
|
+
* jittered heartbeat can never make a live resource look disconnected.
|
|
176
|
+
*/
|
|
177
|
+
static withJitter(expiresInSeconds) {
|
|
178
|
+
if (expiresInSeconds <= 0) {
|
|
179
|
+
return expiresInSeconds;
|
|
180
|
+
}
|
|
181
|
+
return Math.ceil(expiresInSeconds * (1 + Math.random() * 0.25));
|
|
182
|
+
}
|
|
183
|
+
/*
|
|
184
|
+
* Atomic compare-and-delete: drop the key only if it still holds `value`.
|
|
185
|
+
* Returns true only when this caller's value was the one removed.
|
|
186
|
+
*
|
|
187
|
+
* This is the release half of a lease taken with `setStringIfNotExists`, and
|
|
188
|
+
* the comparison is what makes the release safe. A plain `deleteKey` is a
|
|
189
|
+
* check-then-act race in disguise: if the holder overruns its TTL the key
|
|
190
|
+
* expires, a second worker legitimately acquires the lease, and the first
|
|
191
|
+
* worker's release then deletes the SECOND worker's lease — handing the same
|
|
192
|
+
* lease to a third. Comparing the holder token collapses that into one
|
|
193
|
+
* atomic evaluation, so a late release is a no-op instead of a double-grant.
|
|
194
|
+
*
|
|
195
|
+
* The key is passed as KEYS[1] rather than inlined into the script body so
|
|
196
|
+
* the script stays correct on Redis Cluster, which routes by declared keys.
|
|
197
|
+
*/
|
|
198
|
+
static async deleteKeyIfValue(namespace, key, value) {
|
|
199
|
+
const client = Redis.getClient();
|
|
200
|
+
if (!client || !Redis.isConnected()) {
|
|
201
|
+
throw new DatabaseNotConnectedException("Cache is not connected");
|
|
202
|
+
}
|
|
203
|
+
const result = await client.eval("if redis.call('GET', KEYS[1]) == ARGV[1] then return redis.call('DEL', KEYS[1]) else return 0 end", 1, `${namespace}-${key}`, value);
|
|
204
|
+
return result === 1;
|
|
205
|
+
}
|
|
104
206
|
static async deleteKey(namespace, key) {
|
|
105
207
|
const client = Redis.getClient();
|
|
106
208
|
if (!client || !Redis.isConnected()) {
|
|
@@ -151,6 +253,24 @@ __decorate([
|
|
|
151
253
|
__metadata("design:paramtypes", [String, String, String, Object]),
|
|
152
254
|
__metadata("design:returntype", Promise)
|
|
153
255
|
], GlobalCache, "setString", null);
|
|
256
|
+
__decorate([
|
|
257
|
+
CaptureSpan(),
|
|
258
|
+
__metadata("design:type", Function),
|
|
259
|
+
__metadata("design:paramtypes", [String, String, String, Object]),
|
|
260
|
+
__metadata("design:returntype", Promise)
|
|
261
|
+
], GlobalCache, "setStringIfNotExists", null);
|
|
262
|
+
__decorate([
|
|
263
|
+
CaptureSpan(),
|
|
264
|
+
__metadata("design:type", Function),
|
|
265
|
+
__metadata("design:paramtypes", [String, String, String, Object]),
|
|
266
|
+
__metadata("design:returntype", Promise)
|
|
267
|
+
], GlobalCache, "setStringIfChanged", null);
|
|
268
|
+
__decorate([
|
|
269
|
+
CaptureSpan(),
|
|
270
|
+
__metadata("design:type", Function),
|
|
271
|
+
__metadata("design:paramtypes", [String, String, String]),
|
|
272
|
+
__metadata("design:returntype", Promise)
|
|
273
|
+
], GlobalCache, "deleteKeyIfValue", null);
|
|
154
274
|
__decorate([
|
|
155
275
|
CaptureSpan(),
|
|
156
276
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalCache.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/GlobalCache.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GlobalCache.js","sourceRoot":"","sources":["../../../../Server/Infrastructure/GlobalCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DatabaseHost, DatabaseName, DatabasePassword, DatabasePort, DatabaseRejectUnauthorized, DatabaseSslCa, DatabaseSslCert, DatabaseSslKey, DatabaseUsername, MaxPostgresConnections, PostgresConnectionAcquireTimeoutMs, PostgresIdleInTransactionTimeoutMs, PostgresIdleSessionTimeoutMs, PostgresIdleTimeoutMs, PostgresKeepAliveInitialDelayMs, PostgresQueryTimeoutMs, PostgresSlowQueryLogThresholdMs, PostgresStatementTimeoutMs, RunDatabaseMigrationsOnBoot, ShouldDatabaseSslEnable, } from "../../../Server/EnvironmentConfig";
|
|
1
|
+
import { DatabaseHost, DatabaseName, DatabasePassword, DatabasePort, DatabaseRejectUnauthorized, DatabaseSslCa, DatabaseSslCert, DatabaseSslKey, DatabaseUsername, MaxPostgresConnections, PostgresConnectionAcquireTimeoutMs, PostgresLockTimeoutMs, PostgresIdleInTransactionTimeoutMs, PostgresIdleSessionTimeoutMs, PostgresIdleTimeoutMs, PostgresKeepAliveInitialDelayMs, PostgresQueryTimeoutMs, PostgresSlowQueryLogThresholdMs, PostgresStatementTimeoutMs, RunDatabaseMigrationsOnBoot, ShouldDatabaseSslEnable, } from "../../../Server/EnvironmentConfig";
|
|
2
2
|
import Migrations from "./SchemaMigrations/Index";
|
|
3
3
|
import DatabaseType from "../../../Types/DatabaseType";
|
|
4
4
|
import Entities from "../../../Models/DatabaseModels/Index";
|
|
@@ -31,13 +31,15 @@ const dataSourceOptions = {
|
|
|
31
31
|
* and client. Pool sizing + timeouts live here because TypeORM's defaults
|
|
32
32
|
* (10 connections, no timeouts) are too small for any non-trivial load.
|
|
33
33
|
*/
|
|
34
|
-
extra: Object.assign({ max: MaxPostgresConnections, idleTimeoutMillis: PostgresIdleTimeoutMs, connectionTimeoutMillis: PostgresConnectionAcquireTimeoutMs, statement_timeout: PostgresStatementTimeoutMs, query_timeout: PostgresQueryTimeoutMs, idle_in_transaction_session_timeout: PostgresIdleInTransactionTimeoutMs,
|
|
34
|
+
extra: Object.assign(Object.assign(Object.assign({ max: MaxPostgresConnections, idleTimeoutMillis: PostgresIdleTimeoutMs, connectionTimeoutMillis: PostgresConnectionAcquireTimeoutMs, statement_timeout: PostgresStatementTimeoutMs, query_timeout: PostgresQueryTimeoutMs, idle_in_transaction_session_timeout: PostgresIdleInTransactionTimeoutMs }, (PostgresLockTimeoutMs > 0 && !RunDatabaseMigrationsOnBoot
|
|
35
|
+
? { lock_timeout: PostgresLockTimeoutMs }
|
|
36
|
+
: {})), {
|
|
35
37
|
/*
|
|
36
38
|
* Detect dead TCP peers (ungraceful client exit / network partition) so
|
|
37
39
|
* orphaned server-side connections get torn down instead of lingering
|
|
38
40
|
* until the OS keepalive default (~2h).
|
|
39
41
|
*/
|
|
40
|
-
keepAlive: true, keepAliveInitialDelayMillis: PostgresKeepAliveInitialDelayMs }, (PostgresIdleSessionTimeoutMs > 0
|
|
42
|
+
keepAlive: true, keepAliveInitialDelayMillis: PostgresKeepAliveInitialDelayMs }), (PostgresIdleSessionTimeoutMs > 0
|
|
41
43
|
? { options: `-c idle_session_timeout=${PostgresIdleSessionTimeoutMs}` }
|
|
42
44
|
: {})),
|
|
43
45
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataSourceOptions.js","sourceRoot":"","sources":["../../../../../Server/Infrastructure/Postgres/DataSourceOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,kCAAkC,EAClC,kCAAkC,EAClC,4BAA4B,EAC5B,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,EACtB,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,QAAQ,MAAM,sCAAsC,CAAC;AAG5D,MAAM,iBAAiB,GAAsB;IAC3C,IAAI,EAAE,YAAY,CAAC,QAAQ;IAC3B,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,YAAY;IACtB,mBAAmB,EAAE,YAAY;IACjC,UAAU,EAAE,UAAU;IACtB;;;OAGG;IACH,aAAa,EAAE,2BAA2B;IAC1C,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,WAAW;IAC5B,GAAG,EAAE,uBAAuB;QAC1B,CAAC,CAAC;YACE,kBAAkB,EAAE,0BAA0B;YAC9C,EAAE,EAAE,aAAa;YACjB,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,eAAe;SACtB;QACH,CAAC,CAAC,KAAK;IACT;;;;OAIG;IACH,KAAK,
|
|
1
|
+
{"version":3,"file":"DataSourceOptions.js","sourceRoot":"","sources":["../../../../../Server/Infrastructure/Postgres/DataSourceOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,kCAAkC,EAClC,qBAAqB,EACrB,kCAAkC,EAClC,4BAA4B,EAC5B,qBAAqB,EACrB,+BAA+B,EAC/B,sBAAsB,EACtB,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,YAAY,MAAM,6BAA6B,CAAC;AACvD,OAAO,QAAQ,MAAM,sCAAsC,CAAC;AAG5D,MAAM,iBAAiB,GAAsB;IAC3C,IAAI,EAAE,YAAY,CAAC,QAAQ;IAC3B,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,YAAY;IACtB,mBAAmB,EAAE,YAAY;IACjC,UAAU,EAAE,UAAU;IACtB;;;OAGG;IACH,aAAa,EAAE,2BAA2B;IAC1C,QAAQ,EAAE,QAAQ;IAClB,eAAe,EAAE,WAAW;IAC5B,GAAG,EAAE,uBAAuB;QAC1B,CAAC,CAAC;YACE,kBAAkB,EAAE,0BAA0B;YAC9C,EAAE,EAAE,aAAa;YACjB,GAAG,EAAE,cAAc;YACnB,IAAI,EAAE,eAAe;SACtB;QACH,CAAC,CAAC,KAAK;IACT;;;;OAIG;IACH,KAAK,8CACH,GAAG,EAAE,sBAAsB,EAC3B,iBAAiB,EAAE,qBAAqB,EACxC,uBAAuB,EAAE,kCAAkC,EAC3D,iBAAiB,EAAE,0BAA0B,EAC7C,aAAa,EAAE,sBAAsB,EACrC,mCAAmC,EAAE,kCAAkC,IAapE,CAAC,qBAAqB,GAAG,CAAC,IAAI,CAAC,2BAA2B;QAC3D,CAAC,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE;QACzC,CAAC,CAAC,EAAE,CAAC;QACP;;;;WAIG;QACH,SAAS,EAAE,IAAI,EACf,2BAA2B,EAAE,+BAA+B,KAQzD,CAAC,4BAA4B,GAAG,CAAC;QAClC,CAAC,CAAC,EAAE,OAAO,EAAE,2BAA2B,4BAA4B,EAAE,EAAE;QACxE,CAAC,CAAC,EAAE,CAAC,CACR;IACD;;;;OAIG;IACH,qBAAqB,EAAE,+BAA+B;IACtD,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export class AddStatusPageMonitorRule1786005052769 {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.name = "AddStatusPageMonitorRule1786005052769";
|
|
4
|
+
}
|
|
5
|
+
async up(queryRunner) {
|
|
6
|
+
await queryRunner.query(`CREATE TABLE "StatusPageMonitorRule" ("_id" uuid NOT NULL DEFAULT uuid_generate_v4(), "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(), "deletedAt" TIMESTAMP WITH TIME ZONE, "version" integer NOT NULL, "projectId" uuid NOT NULL, "statusPageId" uuid NOT NULL, "name" character varying(100) NOT NULL, "description" character varying(500), "isEnabled" boolean NOT NULL DEFAULT true, "monitorNamePattern" character varying(500), "monitorDescriptionPattern" character varying(500), "statusPageGroupId" uuid, "showCurrentStatus" boolean NOT NULL DEFAULT true, "showUptimePercent" boolean NOT NULL DEFAULT true, "uptimePercentPrecision" character varying, "showStatusHistoryChart" boolean NOT NULL DEFAULT true, "createdByUserId" uuid, "deletedByUserId" uuid, CONSTRAINT "PK_f8d44792805d19b9a80921b6aa6" PRIMARY KEY ("_id"))`);
|
|
7
|
+
await queryRunner.query(`CREATE INDEX "IDX_1dfd95ad32f7b687ef4d7ba591" ON "StatusPageMonitorRule" ("projectId") `);
|
|
8
|
+
await queryRunner.query(`CREATE INDEX "IDX_473317deaa55a8305a047e4098" ON "StatusPageMonitorRule" ("statusPageId") `);
|
|
9
|
+
await queryRunner.query(`CREATE INDEX "IDX_61196848685b7e7f5a6a54278b" ON "StatusPageMonitorRule" ("name") `);
|
|
10
|
+
await queryRunner.query(`CREATE INDEX "IDX_71d1869039530178fd5f7e6faa" ON "StatusPageMonitorRule" ("isEnabled") `);
|
|
11
|
+
await queryRunner.query(`CREATE INDEX "IDX_3e6d0bc4d444371aaa13a1c14c" ON "StatusPageMonitorRule" ("statusPageGroupId") `);
|
|
12
|
+
await queryRunner.query(`CREATE TABLE "StatusPageMonitorRuleMonitorLabel" ("statusPageMonitorRuleId" uuid NOT NULL, "labelId" uuid NOT NULL, CONSTRAINT "PK_59234d33b435d8e771cd3728ea4" PRIMARY KEY ("statusPageMonitorRuleId", "labelId"))`);
|
|
13
|
+
await queryRunner.query(`CREATE INDEX "IDX_0eb2b2a3601ea9813b8e162bd3" ON "StatusPageMonitorRuleMonitorLabel" ("statusPageMonitorRuleId") `);
|
|
14
|
+
await queryRunner.query(`CREATE INDEX "IDX_bc08b888a870ecc9167516230a" ON "StatusPageMonitorRuleMonitorLabel" ("labelId") `);
|
|
15
|
+
await queryRunner.query(`ALTER TABLE "StatusPageResource" ADD "statusPageMonitorRuleId" uuid`);
|
|
16
|
+
await queryRunner.query(`CREATE INDEX "IDX_4e1ed45d9506da817dc7811601" ON "StatusPageResource" ("statusPageMonitorRuleId") `);
|
|
17
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRule" ADD CONSTRAINT "FK_1dfd95ad32f7b687ef4d7ba5910" FOREIGN KEY ("projectId") REFERENCES "Project"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
18
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRule" ADD CONSTRAINT "FK_473317deaa55a8305a047e4098b" FOREIGN KEY ("statusPageId") REFERENCES "StatusPage"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
19
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRule" ADD CONSTRAINT "FK_3e6d0bc4d444371aaa13a1c14cc" FOREIGN KEY ("statusPageGroupId") REFERENCES "StatusPageGroup"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
20
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRule" ADD CONSTRAINT "FK_60d22031be1695cbd1405376cbf" FOREIGN KEY ("createdByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
21
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRule" ADD CONSTRAINT "FK_3416ec12899c9dde670d8dea290" FOREIGN KEY ("deletedByUserId") REFERENCES "User"("_id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
|
22
|
+
await queryRunner.query(`ALTER TABLE "StatusPageResource" ADD CONSTRAINT "FK_4e1ed45d9506da817dc78116010" FOREIGN KEY ("statusPageMonitorRuleId") REFERENCES "StatusPageMonitorRule"("_id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
|
23
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRuleMonitorLabel" ADD CONSTRAINT "FK_0eb2b2a3601ea9813b8e162bd3b" FOREIGN KEY ("statusPageMonitorRuleId") REFERENCES "StatusPageMonitorRule"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
24
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRuleMonitorLabel" ADD CONSTRAINT "FK_bc08b888a870ecc9167516230ad" FOREIGN KEY ("labelId") REFERENCES "Label"("_id") ON DELETE CASCADE ON UPDATE CASCADE`);
|
|
25
|
+
}
|
|
26
|
+
async down(queryRunner) {
|
|
27
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRuleMonitorLabel" DROP CONSTRAINT "FK_bc08b888a870ecc9167516230ad"`);
|
|
28
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRuleMonitorLabel" DROP CONSTRAINT "FK_0eb2b2a3601ea9813b8e162bd3b"`);
|
|
29
|
+
await queryRunner.query(`ALTER TABLE "StatusPageResource" DROP CONSTRAINT "FK_4e1ed45d9506da817dc78116010"`);
|
|
30
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRule" DROP CONSTRAINT "FK_3416ec12899c9dde670d8dea290"`);
|
|
31
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRule" DROP CONSTRAINT "FK_60d22031be1695cbd1405376cbf"`);
|
|
32
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRule" DROP CONSTRAINT "FK_3e6d0bc4d444371aaa13a1c14cc"`);
|
|
33
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRule" DROP CONSTRAINT "FK_473317deaa55a8305a047e4098b"`);
|
|
34
|
+
await queryRunner.query(`ALTER TABLE "StatusPageMonitorRule" DROP CONSTRAINT "FK_1dfd95ad32f7b687ef4d7ba5910"`);
|
|
35
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_4e1ed45d9506da817dc7811601"`);
|
|
36
|
+
await queryRunner.query(`ALTER TABLE "StatusPageResource" DROP COLUMN "statusPageMonitorRuleId"`);
|
|
37
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_bc08b888a870ecc9167516230a"`);
|
|
38
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_0eb2b2a3601ea9813b8e162bd3"`);
|
|
39
|
+
await queryRunner.query(`DROP TABLE "StatusPageMonitorRuleMonitorLabel"`);
|
|
40
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_3e6d0bc4d444371aaa13a1c14c"`);
|
|
41
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_71d1869039530178fd5f7e6faa"`);
|
|
42
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_61196848685b7e7f5a6a54278b"`);
|
|
43
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_473317deaa55a8305a047e4098"`);
|
|
44
|
+
await queryRunner.query(`DROP INDEX "public"."IDX_1dfd95ad32f7b687ef4d7ba591"`);
|
|
45
|
+
await queryRunner.query(`DROP TABLE "StatusPageMonitorRule"`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=1786005052769-AddStatusPageMonitorRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1786005052769-AddStatusPageMonitorRule.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export class AddPerUserPasswordSalt1786018109307 {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.name = "AddPerUserPasswordSalt1786018109307";
|
|
4
|
+
}
|
|
5
|
+
async up(queryRunner) {
|
|
6
|
+
await queryRunner.query(`ALTER TABLE "User" ADD "passwordSalt" character varying(100)`);
|
|
7
|
+
await queryRunner.query(`ALTER TABLE "StatusPagePrivateUser" ADD "passwordSalt" character varying(100)`);
|
|
8
|
+
}
|
|
9
|
+
async down(queryRunner) {
|
|
10
|
+
await queryRunner.query(`ALTER TABLE "StatusPagePrivateUser" DROP COLUMN "passwordSalt"`);
|
|
11
|
+
await queryRunner.query(`ALTER TABLE "User" DROP COLUMN "passwordSalt"`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=1786018109307-AddPerUserPasswordSalt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1786018109307-AddPerUserPasswordSalt.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1786018109307-AddPerUserPasswordSalt.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mCAAmC;IAAhD;QACS,SAAI,GAAG,qCAAqC,CAAC;IAiBtD,CAAC;IAfQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,8DAA8D,CAC/D,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CACrB,+EAA+E,CAChF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,gEAAgE,CACjE,CAAC;QACF,MAAM,WAAW,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Widen every HashedString column from varchar(64) to varchar(255).
|
|
3
|
+
*
|
|
4
|
+
* A bare SHA-256 digest is 64 hex characters, which is exactly what the old
|
|
5
|
+
* column held. User passwords are now scrypt hashes that carry the cost
|
|
6
|
+
* parameters they were produced with — `scrypt$N=16384,r=8,p=1$<64 hex>`,
|
|
7
|
+
* about 90 characters — so that raising the cost later needs no migration and
|
|
8
|
+
* no password reset. The other HashedString columns (session refresh tokens,
|
|
9
|
+
* master passwords) still store a bare digest and simply do not use the room;
|
|
10
|
+
* they are widened only because they share ColumnLength.HashedString.
|
|
11
|
+
*
|
|
12
|
+
* WHY THIS FILE IS NOT WHAT `migration:generate` PRODUCED.
|
|
13
|
+
*
|
|
14
|
+
* TypeORM does not express a varchar length change as ALTER COLUMN TYPE. It
|
|
15
|
+
* emits DROP COLUMN followed by ADD COLUMN, which for these six columns means
|
|
16
|
+
* deleting every password, every status page and dashboard master password,
|
|
17
|
+
* and every active session in the instance. The generated `up()` also had to
|
|
18
|
+
* drop and recreate the refresh-token unique constraints and indexes, purely
|
|
19
|
+
* to work around its own DROP.
|
|
20
|
+
*
|
|
21
|
+
* ALTER COLUMN TYPE to a WIDER varchar is the correct statement and is
|
|
22
|
+
* cheaper besides: Postgres skips the table rewrite entirely when a varchar
|
|
23
|
+
* is only being lengthened (no rewrite means the unique indexes survive
|
|
24
|
+
* untouched too), so this is a catalog update behind a brief ACCESS EXCLUSIVE
|
|
25
|
+
* lock rather than a full copy of six tables.
|
|
26
|
+
*
|
|
27
|
+
* The resulting schema is identical to what the generated migration would
|
|
28
|
+
* have produced, which is what `npm run check-postgres-schema-drift` verifies.
|
|
29
|
+
*/
|
|
30
|
+
const WIDENED_COLUMNS = [
|
|
31
|
+
{ table: "User", column: "password" },
|
|
32
|
+
{ table: "StatusPagePrivateUser", column: "password" },
|
|
33
|
+
{ table: "StatusPage", column: "masterPassword" },
|
|
34
|
+
{ table: "Dashboard", column: "masterPassword" },
|
|
35
|
+
{ table: "UserSession", column: "refreshToken" },
|
|
36
|
+
{ table: "StatusPagePrivateUserSession", column: "refreshToken" },
|
|
37
|
+
];
|
|
38
|
+
export class WidenHashedStringColumnsForScrypt1786023262402 {
|
|
39
|
+
constructor() {
|
|
40
|
+
this.name = "WidenHashedStringColumnsForScrypt1786023262402";
|
|
41
|
+
}
|
|
42
|
+
async up(queryRunner) {
|
|
43
|
+
for (const { table, column } of WIDENED_COLUMNS) {
|
|
44
|
+
await queryRunner.query(`ALTER TABLE "${table}" ALTER COLUMN "${column}" TYPE character varying(255)`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/*
|
|
48
|
+
* Narrowing back to 64 fails loudly if any scrypt hash has been written,
|
|
49
|
+
* because those do not fit. That is the intended behaviour: a down
|
|
50
|
+
* migration that truncated password hashes would lock every user out
|
|
51
|
+
* silently instead of refusing.
|
|
52
|
+
*/
|
|
53
|
+
async down(queryRunner) {
|
|
54
|
+
for (const { table, column } of [...WIDENED_COLUMNS].reverse()) {
|
|
55
|
+
await queryRunner.query(`ALTER TABLE "${table}" ALTER COLUMN "${column}" TYPE character varying(64)`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=1786023262402-WidenHashedStringColumnsForScrypt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1786023262402-WidenHashedStringColumnsForScrypt.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1786023262402-WidenHashedStringColumnsForScrypt.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,eAAe,GAAqD;IACxE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;IACrC,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,EAAE;IACtD,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE;IACjD,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE;IAChD,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;IAChD,EAAE,KAAK,EAAE,8BAA8B,EAAE,MAAM,EAAE,cAAc,EAAE;CAClE,CAAC;AAEF,MAAM,OAAO,8CAA8C;IAA3D;QAGS,SAAI,GAAG,gDAAgD,CAAC;IAuBjE,CAAC;IArBQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;YAChD,MAAM,WAAW,CAAC,KAAK,CACrB,gBAAgB,KAAK,mBAAmB,MAAM,+BAA+B,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,KAAK,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/D,MAAM,WAAW,CAAC,KAAK,CACrB,gBAAgB,KAAK,mBAAmB,MAAM,8BAA8B,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Restores the expression index that serves the telemetry ingest path's
|
|
3
|
+
* `service.name` lookup, and that an autogenerated migration deleted.
|
|
4
|
+
*
|
|
5
|
+
* WHAT BROKE
|
|
6
|
+
*
|
|
7
|
+
* `OTelIngestService.findOrCreateTelemetryService` resolves an OTLP resource's
|
|
8
|
+
* `service.name` to a Service row through `QueryHelper.findWithSameText`, which
|
|
9
|
+
* emits a case-insensitive predicate:
|
|
10
|
+
*
|
|
11
|
+
* WHERE "projectId" = $1 AND LOWER("name") = $2 AND "deletedAt" IS NULL
|
|
12
|
+
* ORDER BY "createdAt" ASC LIMIT 1
|
|
13
|
+
*
|
|
14
|
+
* Every live index on Service is over the RAW `name` column. Postgres cannot
|
|
15
|
+
* invert `lower()` (it is not order-preserving under any non-C collation) and
|
|
16
|
+
* PG16 has no index-condition pushdown, so `LOWER("name") = $2` degrades to a
|
|
17
|
+
* post-heap-fetch Filter. Only the `projectId` prefix acts as an index qual,
|
|
18
|
+
* which makes each lookup cost O(services in that project) heap fetches plus
|
|
19
|
+
* that many collation-aware lower() calls — not O(log n).
|
|
20
|
+
*
|
|
21
|
+
* That query runs once per OTLP *resource* (hundreds per batch for the shipped
|
|
22
|
+
* host-metrics collector config), again per signal type, from every ingest pod.
|
|
23
|
+
* Production sat at 100% CPU against a 100% buffer cache hit ratio and ~110 B/s
|
|
24
|
+
* of reads: entirely in memory, entirely CPU.
|
|
25
|
+
*
|
|
26
|
+
* WHY IT BROKE
|
|
27
|
+
*
|
|
28
|
+
* The correct index existed. Migration 1774559064921 created:
|
|
29
|
+
*
|
|
30
|
+
* CREATE UNIQUE INDEX "IDX_SERVICE_PROJECT_NAME_UNIQUE"
|
|
31
|
+
* ON "Service" ("projectId", LOWER("name")) WHERE "deletedAt" IS NULL
|
|
32
|
+
*
|
|
33
|
+
* Migration 1775735059360 — otherwise two unrelated column-default changes —
|
|
34
|
+
* dropped it. TypeORM's schema builder matches database indexes to entity
|
|
35
|
+
* metadata BY NAME and drops any it cannot find, and a hand-named expression
|
|
36
|
+
* index created only in a migration is invisible to entity metadata. Its down()
|
|
37
|
+
* "restores" the index as ("projectId") alone, silently losing the expression,
|
|
38
|
+
* which is the signature of a machine-generated statement rather than a
|
|
39
|
+
* deliberate one.
|
|
40
|
+
*
|
|
41
|
+
* The Service entity now declares this index with `synchronize: false`, which
|
|
42
|
+
* makes the schema builder skip it in both directions. Without that decorator
|
|
43
|
+
* this migration would be undone again by the next autogenerated one.
|
|
44
|
+
*
|
|
45
|
+
* WHY THIS IS HAND-WRITTEN
|
|
46
|
+
*
|
|
47
|
+
* AGENTS.md requires migrations to come from `npm run generate-postgres-migration`.
|
|
48
|
+
* That cannot produce this one: `@Index()` has no way to express `LOWER(...)`,
|
|
49
|
+
* so TypeORM can neither generate nor round-trip an expression index. The
|
|
50
|
+
* generator is authoritative for column and table drift; expression indexes are
|
|
51
|
+
* outside what it can model.
|
|
52
|
+
*
|
|
53
|
+
* NOT UNIQUE, DELIBERATELY
|
|
54
|
+
*
|
|
55
|
+
* The dropped original was UNIQUE. Recreating it that way would make this
|
|
56
|
+
* migration fail on any project that already holds two services whose names
|
|
57
|
+
* differ only by case — which the surviving raw-name unique index permits, so
|
|
58
|
+
* such rows can legitimately exist today. Failing a deploy to enforce an
|
|
59
|
+
* invariant nobody is currently relying on is the wrong trade: this index
|
|
60
|
+
* exists to make the lookup fast. `ORDER BY "createdAt" ASC LIMIT 1` in the
|
|
61
|
+
* query already resolves duplicates deterministically (oldest wins), and the
|
|
62
|
+
* raw-name unique index still blocks exact-duplicate races. Restoring
|
|
63
|
+
* case-insensitive uniqueness would need a dedupe pass first, as migration
|
|
64
|
+
* 1778100000000 did, and belongs in its own change.
|
|
65
|
+
*
|
|
66
|
+
* `createdAt` is the third key column so the ORDER BY is satisfied by the index
|
|
67
|
+
* itself and the plan carries no Sort node even when duplicates exist.
|
|
68
|
+
*
|
|
69
|
+
* NOT CONCURRENT, DELIBERATELY
|
|
70
|
+
*
|
|
71
|
+
* DataSourceOptions sets no `migrationsTransactionMode`, so TypeORM defaults to
|
|
72
|
+
* "all" and runs every migration inside ONE transaction. `CREATE INDEX
|
|
73
|
+
* CONCURRENTLY` cannot run inside a transaction block and would abort the whole
|
|
74
|
+
* run. A plain CREATE INDEX takes a SHARE lock that blocks writes to Service
|
|
75
|
+
* for the duration, which is milliseconds at this table's size (thousands of
|
|
76
|
+
* live rows).
|
|
77
|
+
*
|
|
78
|
+
* IF NOT EXISTS makes this a no-op when an operator has already created the
|
|
79
|
+
* index by hand — the recommended incident mitigation is to build it
|
|
80
|
+
* CONCURRENTLY on the live database under this exact name, ahead of the deploy.
|
|
81
|
+
*/
|
|
82
|
+
export class RestoreServiceLowerNameIndex1786100000000 {
|
|
83
|
+
constructor() {
|
|
84
|
+
this.name = "RestoreServiceLowerNameIndex1786100000000";
|
|
85
|
+
}
|
|
86
|
+
async up(queryRunner) {
|
|
87
|
+
await queryRunner.query(`CREATE INDEX IF NOT EXISTS "IDX_SERVICE_PROJECT_LOWER_NAME" ON "Service" ("projectId", LOWER("name"), "createdAt") WHERE "deletedAt" IS NULL`);
|
|
88
|
+
}
|
|
89
|
+
async down(queryRunner) {
|
|
90
|
+
await queryRunner.query(`DROP INDEX IF EXISTS "public"."IDX_SERVICE_PROJECT_LOWER_NAME"`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=1786100000000-RestoreServiceLowerNameIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1786100000000-RestoreServiceLowerNameIndex.js","sourceRoot":"","sources":["../../../../../../Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,MAAM,OAAO,yCAAyC;IAAtD;QAGS,SAAI,GAAW,2CAA2C,CAAC;IAapE,CAAC;IAXQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,KAAK,CACrB,8IAA8I,CAC/I,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,KAAK,CACrB,gEAAgE,CACjE,CAAC;IACJ,CAAC;CACF"}
|