@oneuptime/common 12.0.3 → 12.0.5
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/AIRun.ts +38 -1
- package/Models/DatabaseModels/AlertFeed.ts +30 -0
- package/Models/DatabaseModels/CephCluster.ts +14 -0
- package/Models/DatabaseModels/CodeRepository.ts +14 -6
- package/Models/DatabaseModels/Dashboard.ts +28 -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/Incident.ts +2 -0
- package/Models/DatabaseModels/IncidentEpisode.ts +1 -0
- package/Models/DatabaseModels/IncidentEpisodePublicNote.ts +1 -0
- package/Models/DatabaseModels/IncidentEpisodeStateTimeline.ts +1 -0
- package/Models/DatabaseModels/IncidentFeed.ts +30 -0
- package/Models/DatabaseModels/IncidentPublicNote.ts +1 -0
- package/Models/DatabaseModels/IncidentStateTimeline.ts +1 -0
- package/Models/DatabaseModels/IoTFleet.ts +14 -0
- package/Models/DatabaseModels/KubernetesCluster.ts +14 -0
- package/Models/DatabaseModels/LogSavedView.ts +33 -0
- package/Models/DatabaseModels/NetworkDevice.ts +14 -0
- package/Models/DatabaseModels/NetworkInterface.ts +18 -0
- package/Models/DatabaseModels/Project.ts +247 -11
- package/Models/DatabaseModels/ProxmoxCluster.ts +14 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenancePublicNote.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.ts +4 -4
- package/Models/DatabaseModels/Service.ts +30 -0
- package/Models/DatabaseModels/StatusPage.ts +28 -0
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +1 -0
- package/Models/DatabaseModels/StatusPagePrivateUser.ts +30 -0
- package/Models/DatabaseModels/User.ts +30 -0
- package/Server/API/AIAgentDataAPI.ts +75 -55
- package/Server/API/AIInvestigationAPI.ts +175 -17
- package/Server/API/DashboardAPI.ts +429 -22
- package/Server/API/GitHubAPI.ts +119 -283
- package/Server/API/StatusPageAPI.ts +38 -19
- package/Server/API/UserAPI.ts +263 -1
- package/Server/EnvironmentConfig.ts +23 -3
- package/Server/Infrastructure/ClickhouseConfig.ts +15 -1
- package/Server/Infrastructure/ClickhouseDatabase.ts +1 -1
- package/Server/Infrastructure/GlobalCache.ts +37 -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/1786096660558-AddTimeRangeToLogSavedView.ts +27 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786100000000-RestoreServiceLowerNameIndex.ts +100 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786101798351-MigrationName.ts +89 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786105470826-MigrationName.ts +27 -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/1786400000000-AddMasterPasswordSalt.ts +40 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786500000000-AddInvestigationCodeFixRecommendation.ts +26 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +20 -0
- package/Server/Services/AIRunService.ts +78 -10
- package/Server/Services/AIService.ts +94 -22
- package/Server/Services/AlertFeedService.ts +5 -0
- package/Server/Services/AnalyticsDatabaseService.ts +101 -1
- package/Server/Services/CodeRepositoryService.ts +105 -2
- package/Server/Services/DatabaseService.ts +227 -3
- package/Server/Services/IncidentFeedService.ts +5 -0
- package/Server/Services/LlmLogService.ts +46 -2
- package/Server/Services/OpenTelemetryIngestService.ts +230 -26
- package/Server/Services/UserService.ts +184 -0
- package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +6 -0
- package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +4 -0
- package/Server/Utils/AI/CodeFix/CodeFixReadiness.ts +8 -5
- package/Server/Utils/AI/CodeFix/FixRunBudget.ts +90 -16
- package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +2 -0
- package/Server/Utils/AI/Remediation/RemediationPlanRunner.ts +2 -0
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +223 -22
- package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +25 -24
- package/Server/Utils/AI/SRE/ConfidenceSignal.ts +182 -71
- package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +252 -43
- package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +25 -24
- package/Server/Utils/AI/SRE/InstrumentationTaskTrigger.ts +47 -13
- package/Server/Utils/AI/SRE/InvestigationGrader.ts +9 -5
- package/Server/Utils/AI/SRE/InvestigationQueue.ts +141 -24
- package/Server/Utils/AI/SRE/InvestigationSubjectLock.ts +66 -0
- package/Server/Utils/AI/SRE/PostedRootCause.ts +94 -3
- package/Server/Utils/AI/SRE/README.md +1 -1
- package/Server/Utils/AI/SRE/SubjectCodeFixRun.ts +132 -10
- package/Server/Utils/AI/Toolbox/CodeTools.ts +45 -4
- package/Server/Utils/AnalyticsDatabase/ClusterConfig.ts +24 -0
- 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/Monitor/Criteria/APIRequestCriteria.ts +29 -0
- package/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.ts +56 -0
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +46 -0
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +1 -0
- package/Server/Utils/PasswordHash.ts +330 -0
- package/Tests/App/Dashboard/AIInvestigationHeaderStatus.test.tsx +251 -0
- package/Tests/App/Dashboard/EventStatusPanel.test.tsx +747 -0
- package/Tests/App/Dashboard/InvestigationFeedRefresh.test.tsx +480 -0
- package/Tests/App/Dashboard/InvestigationPanel.test.tsx +1184 -0
- package/Tests/App/Dashboard/InvestigationPanelStatus.test.tsx +500 -0
- package/Tests/App/Dashboard/OverviewCustomFields.test.tsx +333 -0
- package/Tests/App/Dashboard/PortMonitorCriteriaFilter.test.ts +93 -0
- package/Tests/App/Dashboard/UserCustomFields.test.tsx +392 -0
- package/Tests/App/StatusPage/PublicStatusPageAPIErrorHandling.test.ts +117 -0
- package/Tests/App/StatusPage/StatusPageModelAPIPolymorphism.test.ts +223 -0
- package/Tests/Models/DatabaseModels/PermissionCatalogueCoverage.test.ts +243 -0
- package/Tests/Server/API/AIAgentDataFixFromIncidentContext.test.ts +266 -0
- package/Tests/Server/API/AIAgentDataRepositoryToken.test.ts +381 -0
- package/Tests/Server/API/AIInvestigationAPI.test.ts +594 -0
- package/Tests/Server/API/AIInvestigationCreateFixTask.test.ts +80 -0
- package/Tests/Server/API/DashboardMasterPasswordAPI.test.ts +172 -1
- package/Tests/Server/API/DashboardPublicAttributeValuesAPI.test.ts +943 -0
- package/Tests/Server/API/DashboardPublicMetricsAggregateAPI.test.ts +1296 -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/StatusPageMasterPasswordAPI.test.ts +335 -0
- package/Tests/Server/API/UserProjectsAPI.test.ts +852 -0
- package/Tests/Server/Infrastructure/GlobalCache.test.ts +128 -0
- package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +215 -0
- package/Tests/Server/Services/AIRunCodeFixClaim.test.ts +59 -5
- package/Tests/Server/Services/AIRunHumanVerdict.test.ts +127 -58
- package/Tests/Server/Services/AIServiceDailyBudget.test.ts +396 -20
- package/Tests/Server/Services/AddMasterPasswordSaltMigration.test.ts +283 -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 +30 -1
- 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 +880 -0
- package/Tests/Server/Services/DatabaseServiceUpdateColumnsWithoutHooks.test.ts +54 -0
- package/Tests/Server/Services/FeedAIRunAssociation.test.ts +125 -0
- package/Tests/Server/Services/FixFromIncidentTaskTrigger.test.ts +418 -57
- package/Tests/Server/Services/InstrumentationTaskTrigger.test.ts +173 -14
- package/Tests/Server/Services/MasterPasswordScrypt.test.ts +567 -0
- package/Tests/Server/Services/OpenTelemetryServiceResolutionCache.test.ts +568 -0
- package/Tests/Server/Services/RestoreDroppedUniqueIndexesMigration.test.ts +386 -0
- package/Tests/Server/Services/RestoreServiceLowerNameIndexMigration.test.ts +240 -0
- package/Tests/Server/Services/SeparateIncidentAlertAiSettingsMigration.test.ts +194 -0
- package/Tests/Server/Services/UserServiceFirstMasterAdminElection.test.ts +885 -0
- package/Tests/Server/Services/WidenHashedStringColumnsForScryptMigration.test.ts +220 -0
- package/Tests/Server/Utils/AI/AIAlertGating.test.ts +37 -4
- package/Tests/Server/Utils/AI/AIConfidenceSignal.test.ts +330 -29
- package/Tests/Server/Utils/AI/AIIncidentGating.test.ts +25 -0
- package/Tests/Server/Utils/AI/AIInvestigationQueue.test.ts +293 -5
- package/Tests/Server/Utils/AI/CodeFixAgentCompletion.test.ts +59 -1
- package/Tests/Server/Utils/AI/CodeTools.test.ts +47 -1
- package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +10 -0
- package/Tests/Server/Utils/AI/FixFromIncidentAutoTrigger.test.ts +342 -19
- package/Tests/Server/Utils/AI/FixRunBudget.test.ts +214 -30
- package/Tests/Server/Utils/AI/Insights/InvestigationQueueInsightSubject.test.ts +2 -0
- package/Tests/Server/Utils/AI/InvestigationGrader.test.ts +65 -17
- package/Tests/Server/Utils/AI/InvestigationQueueRemediationExecution.test.ts +3 -0
- package/Tests/Server/Utils/AI/InvestigationSettlement.test.ts +313 -20
- package/Tests/Server/Utils/AI/PostedRootCause.test.ts +254 -0
- package/Tests/Server/Utils/AI/RemediationExecutionRunner.test.ts +4 -0
- package/Tests/Server/Utils/AI/RemediationPlanRunner.test.ts +2 -0
- package/Tests/Server/Utils/AI/SubjectCodeFixRunDedupe.test.ts +44 -0
- package/Tests/Server/Utils/AnalyticsDatabase/ClusterAwareSchema.test.ts +30 -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/GitHubInstallationOwnershipVerification.test.ts +340 -0
- package/Tests/Server/Utils/GitHubWebhookAndTreeCacheIsolation.test.ts +250 -0
- package/Tests/Server/Utils/Monitor/Criteria/APIRequestCriteriaPortTimings.test.ts +212 -0
- package/Tests/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.test.ts +401 -0
- package/Tests/Server/Utils/Monitor/MonitorMetricUtilPortTimings.test.ts +243 -0
- package/Tests/Server/Utils/PasswordHash.test.ts +585 -0
- package/Tests/Types/Dashboard/DashboardTemplates.test.ts +111 -0
- package/Tests/Types/Database/ColumnLength.test.ts +7 -1
- package/Tests/Types/HashedStringPerUserSalt.test.ts +476 -0
- package/Tests/Types/Monitor/CephMetricCatalog.test.ts +104 -0
- package/Tests/Types/Monitor/CriteriaFilter.test.ts +4 -0
- package/Tests/Types/Monitor/DockerAlertTemplates.test.ts +293 -0
- package/Tests/Types/Monitor/DockerMetricCatalog.test.ts +109 -0
- package/Tests/Types/Monitor/DockerSwarmMetricCatalog.test.ts +118 -0
- package/Tests/Types/Monitor/HostAlertTemplates.test.ts +249 -0
- package/Tests/Types/Monitor/HostMetricCatalog.test.ts +104 -0
- package/Tests/Types/Monitor/IotAlertTemplates.test.ts +320 -0
- package/Tests/Types/Monitor/IotMetricCatalog.test.ts +104 -0
- package/Tests/Types/Monitor/KubernetesMetricCatalog.test.ts +118 -0
- package/Tests/Types/Monitor/MonitorCriteriaInstance.test.ts +42 -0
- package/Tests/Types/Monitor/MonitorStep.test.ts +38 -0
- package/Tests/Types/Monitor/MonitorStepDomainMonitor.test.ts +75 -0
- package/Tests/Types/Monitor/PodmanAlertTemplates.test.ts +271 -0
- package/Tests/Types/Monitor/PodmanMetricCatalog.test.ts +109 -0
- package/Tests/Types/Monitor/ProxmoxMetricCatalog.test.ts +107 -0
- package/Tests/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.test.ts +151 -0
- package/Tests/Types/Permission.test.ts +137 -0
- package/Tests/Types/Rum/SessionReplayMaskingMode.test.ts +101 -0
- package/Tests/UI/Components/AiInvestigationSettingsCard.test.tsx +5 -5
- package/Tests/UI/Components/CardModelDetailEdit.test.tsx +3 -5
- package/Tests/UI/Components/CustomFields/CustomFieldsDetail.test.tsx +696 -0
- package/Tests/UI/Components/ErrorBoundary.test.tsx +158 -0
- package/Tests/UI/Components/FeedItemSafeMode.test.tsx +74 -0
- package/Tests/UI/Components/MoreMenu.test.tsx +756 -0
- package/Tests/UI/Components/StatusPage/ResourceGroupSection.test.tsx +62 -0
- package/Tests/UI/Monitor/PortMonitorView.test.tsx +237 -0
- package/Tests/UI/Telemetry/TelemetrySnapshotWindowAlert.test.tsx +91 -0
- package/Tests/UI/Utils/DownloadFile.test.ts +103 -0
- package/Tests/UI/Utils/ErrorSupportBundle.test.ts +582 -0
- package/Tests/UI/Utils/Project.test.ts +31 -0
- package/Tests/UI/Utils/StatusPageModelAPIInjection.test.ts +245 -0
- package/Tests/UI/Utils/UseDashboardGridDnd.test.tsx +820 -0
- package/Tests/UI/Utils/UserProjectsModelAPI.test.ts +714 -0
- package/Tests/Utils/Dashboard/DashboardViewConfig.test.ts +329 -0
- package/Tests/Utils/Dashboard/GridLayout.test.ts +951 -0
- package/Tests/Utils/Monitor/MonitorMetricType.test.ts +117 -0
- package/Tests/Utils/RecordingRuleExpression.test.ts +327 -0
- package/Tests/Utils/StatusPage/GroupNestingLayout.test.ts +186 -0
- package/Tests/Utils/StatusPage/GroupTree.test.ts +456 -0
- package/Tests/Utils/StatusPage/OverviewGroupHierarchyVisibility.test.ts +588 -0
- package/Tests/Utils/TeamMembersByProject.test.ts +655 -0
- package/Tests/Utils/Telemetry/SavedViewTimeRange.test.ts +244 -0
- package/Tests/Utils/Telemetry/TelemetryQueryTimeRange.test.ts +825 -0
- package/Types/AI/AIRunCodeFixRecommendation.ts +17 -0
- package/Types/AI/CodeFixTaskContext.ts +63 -3
- package/Types/AI/CodeFixTaskType.ts +3 -3
- package/Types/Database/ColumnLength.ts +9 -1
- package/Types/Database/TableColumn.ts +11 -0
- package/Types/Database/UnsynchronizedIndex.ts +48 -0
- package/Types/HashedString.ts +140 -4
- package/Types/Monitor/CriteriaFilter.ts +4 -0
- package/Types/Monitor/DomainMonitor/DomainLookupMethod.ts +23 -0
- package/Types/Monitor/DomainMonitor/DomainMonitorResponse.ts +7 -0
- package/Types/Monitor/MonitorCriteriaInstance.ts +24 -7
- package/Types/Monitor/MonitorMetricType.ts +8 -0
- package/Types/Monitor/MonitorStep.ts +10 -1
- package/Types/Monitor/MonitorStepDomainMonitor.ts +21 -0
- package/Types/Monitor/PortMonitor/PortMonitorTimings.ts +10 -0
- package/Types/Permission.ts +23 -175
- package/Types/Probe/ProbeMonitorResponse.ts +6 -0
- package/UI/Components/BulkUpdate/BulkUpdateForm.tsx +2 -3
- package/UI/Components/CustomFields/CustomFieldsDetail.tsx +85 -11
- package/UI/Components/ErrorBoundary.tsx +138 -11
- package/UI/Components/Feed/FeedItem.tsx +9 -2
- package/UI/Components/ModelDetail/CardModelDetail.tsx +0 -12
- package/UI/Components/ModelTable/BaseModelTable.tsx +1 -1
- package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +12 -2
- package/UI/Components/MoreMenu/MoreMenu.tsx +285 -97
- package/UI/Components/MoreMenu/MoreMenuItem.tsx +8 -5
- package/UI/Components/Navbar/NavBar.tsx +12 -2
- package/UI/Components/Navbar/NavBarMenuModal.tsx +19 -7
- package/UI/Utils/DownloadFile.ts +16 -8
- package/UI/Utils/ErrorSupportBundle.ts +805 -0
- package/UI/Utils/ModelAPI/ModelAPI.ts +19 -8
- package/UI/Utils/ModelAPI/UserProjectsModelAPI.ts +257 -0
- package/UI/Utils/Project.ts +4 -0
- package/UI/Utils/StatusPage.ts +8 -2
- package/UI/Utils/UseDashboardGridDnd.ts +917 -0
- package/Utils/Dashboard/DashboardViewConfig.ts +80 -36
- package/Utils/Dashboard/GridLayout.ts +523 -0
- package/Utils/Metrics/RecordingRuleExpression.ts +19 -17
- package/Utils/Monitor/MonitorMetricType.ts +44 -2
- package/Utils/StatusPage/GroupNestingLayout.ts +69 -0
- package/Utils/StatusPage/GroupTree.ts +157 -66
- package/Utils/StatusPage/ResourceUptime.ts +37 -2
- package/Utils/TeamMembersByProject.ts +237 -0
- package/Utils/Telemetry/SavedViewTimeRange.ts +114 -0
- package/Utils/Telemetry/TelemetryQueryTimeRange.ts +334 -0
- package/build/dist/Models/DatabaseModels/AIRun.js +39 -1
- package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertFeed.js +32 -0
- package/build/dist/Models/DatabaseModels/AlertFeed.js.map +1 -1
- 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/Dashboard.js +29 -0
- package/build/dist/Models/DatabaseModels/Dashboard.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/Incident.js +2 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentFeed.js +32 -0
- package/build/dist/Models/DatabaseModels/IncidentFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.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/LogSavedView.js +33 -0
- package/build/dist/Models/DatabaseModels/LogSavedView.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 +257 -13
- 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/ScheduledMaintenance.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.js +4 -4
- package/build/dist/Models/DatabaseModels/Service.js +28 -1
- package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPage.js +29 -0
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js +32 -0
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.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 +49 -48
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +111 -11
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +312 -15
- 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/StatusPageAPI.js +29 -11
- package/build/dist/Server/API/StatusPageAPI.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 +21 -3
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js +12 -1
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseDatabase.js +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseDatabase.js.map +1 -1
- package/build/dist/Server/Infrastructure/GlobalCache.js +29 -0
- package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
- 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/1786096660558-AddTimeRangeToLogSavedView.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786096660558-AddTimeRangeToLogSavedView.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/1786101798351-MigrationName.js +36 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786101798351-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786105470826-MigrationName.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786105470826-MigrationName.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/1786400000000-AddMasterPasswordSalt.js +19 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786400000000-AddMasterPasswordSalt.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786500000000-AddInvestigationCodeFixRecommendation.js +19 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786500000000-AddInvestigationCodeFixRecommendation.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +20 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIRunService.js +58 -12
- package/build/dist/Server/Services/AIRunService.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +74 -21
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AlertFeedService.js +3 -0
- package/build/dist/Server/Services/AlertFeedService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +86 -2
- package/build/dist/Server/Services/AnalyticsDatabaseService.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 +180 -3
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/IncidentFeedService.js +3 -0
- package/build/dist/Server/Services/IncidentFeedService.js.map +1 -1
- package/build/dist/Server/Services/LlmLogService.js +22 -1
- package/build/dist/Server/Services/LlmLogService.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/UserService.js +165 -0
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +3 -0
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +4 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js +8 -5
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js +63 -24
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +2 -0
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js +2 -0
- package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +156 -28
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +21 -19
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js +128 -49
- package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js +170 -31
- package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +21 -19
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js +33 -9
- package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +9 -5
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js +121 -41
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationSubjectLock.js +46 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationSubjectLock.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/PostedRootCause.js +61 -14
- package/build/dist/Server/Utils/AI/SRE/PostedRootCause.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js +79 -1
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.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/ClusterConfig.js +21 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/ClusterConfig.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/Monitor/Criteria/APIRequestCriteria.js +20 -3
- package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.js +43 -0
- package/build/dist/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +33 -0
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/PasswordHash.js +258 -0
- package/build/dist/Server/Utils/PasswordHash.js.map +1 -0
- package/build/dist/Types/AI/AIRunCodeFixRecommendation.js +18 -0
- package/build/dist/Types/AI/AIRunCodeFixRecommendation.js.map +1 -0
- package/build/dist/Types/AI/CodeFixTaskContext.js +23 -3
- package/build/dist/Types/AI/CodeFixTaskContext.js.map +1 -1
- package/build/dist/Types/AI/CodeFixTaskType.js +3 -3
- package/build/dist/Types/Database/ColumnLength.js +9 -1
- package/build/dist/Types/Database/ColumnLength.js.map +1 -1
- 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/HashedString.js +96 -5
- package/build/dist/Types/HashedString.js.map +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js +4 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/DomainMonitor/DomainLookupMethod.js +24 -0
- package/build/dist/Types/Monitor/DomainMonitor/DomainLookupMethod.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +24 -7
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorMetricType.js +7 -0
- package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +6 -1
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepDomainMonitor.js +15 -0
- package/build/dist/Types/Monitor/MonitorStepDomainMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/PortMonitor/PortMonitorTimings.js +2 -0
- package/build/dist/Types/Monitor/PortMonitor/PortMonitorTimings.js.map +1 -0
- package/build/dist/Types/Permission.js +23 -155
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js +2 -5
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.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/ErrorBoundary.js +67 -8
- package/build/dist/UI/Components/ErrorBoundary.js.map +1 -1
- package/build/dist/UI/Components/Feed/FeedItem.js +2 -2
- package/build/dist/UI/Components/Feed/FeedItem.js.map +1 -1
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +0 -12
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
- 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/MonitorTemplateVariables/TemplateVariablesCatalog.js +12 -2
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js +193 -65
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -1
- 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/DownloadFile.js +15 -8
- package/build/dist/UI/Utils/DownloadFile.js.map +1 -1
- package/build/dist/UI/Utils/ErrorSupportBundle.js +476 -0
- package/build/dist/UI/Utils/ErrorSupportBundle.js.map +1 -0
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +18 -8
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.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/UI/Utils/Project.js +3 -0
- package/build/dist/UI/Utils/Project.js.map +1 -1
- package/build/dist/UI/Utils/StatusPage.js +4 -4
- package/build/dist/UI/Utils/StatusPage.js.map +1 -1
- package/build/dist/UI/Utils/UseDashboardGridDnd.js +551 -0
- package/build/dist/UI/Utils/UseDashboardGridDnd.js.map +1 -0
- package/build/dist/Utils/Dashboard/DashboardViewConfig.js +42 -26
- package/build/dist/Utils/Dashboard/DashboardViewConfig.js.map +1 -1
- package/build/dist/Utils/Dashboard/GridLayout.js +338 -0
- package/build/dist/Utils/Dashboard/GridLayout.js.map +1 -0
- package/build/dist/Utils/Metrics/RecordingRuleExpression.js +19 -17
- package/build/dist/Utils/Metrics/RecordingRuleExpression.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js +38 -6
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Utils/StatusPage/GroupNestingLayout.js +46 -0
- package/build/dist/Utils/StatusPage/GroupNestingLayout.js.map +1 -1
- package/build/dist/Utils/StatusPage/GroupTree.js +79 -34
- package/build/dist/Utils/StatusPage/GroupTree.js.map +1 -1
- package/build/dist/Utils/StatusPage/ResourceUptime.js +22 -1
- package/build/dist/Utils/StatusPage/ResourceUptime.js.map +1 -1
- package/build/dist/Utils/TeamMembersByProject.js +145 -0
- package/build/dist/Utils/TeamMembersByProject.js.map +1 -0
- package/build/dist/Utils/Telemetry/SavedViewTimeRange.js +79 -0
- package/build/dist/Utils/Telemetry/SavedViewTimeRange.js.map +1 -0
- package/build/dist/Utils/Telemetry/TelemetryQueryTimeRange.js +236 -0
- package/build/dist/Utils/Telemetry/TelemetryQueryTimeRange.js.map +1 -0
- package/package.json +1 -1
|
@@ -1592,9 +1592,9 @@ export default class Project extends TenantModel {
|
|
|
1592
1592
|
required: true,
|
|
1593
1593
|
isDefaultValueColumn: true,
|
|
1594
1594
|
type: TableColumnType.Boolean,
|
|
1595
|
-
title: "Enable Instrumentation Fix Tasks",
|
|
1595
|
+
title: "Enable Incident Instrumentation Fix Tasks",
|
|
1596
1596
|
description:
|
|
1597
|
-
"When enabled, an AI investigation that ends inconclusive (telemetry was insufficient to determine a root cause) automatically queues an AI agent task that opens a pull request adding the missing instrumentation to the implicated code paths. Requires a repository connected through the GitHub App. Pull requests are always human-reviewed — nothing merges automatically.",
|
|
1597
|
+
"When enabled, an incident AI investigation that ends inconclusive (telemetry was insufficient to determine a root cause) automatically queues an AI agent task that opens a pull request adding the missing instrumentation to the implicated code paths. Requires a repository connected through the GitHub App. Pull requests are always human-reviewed — nothing merges automatically.",
|
|
1598
1598
|
defaultValue: false,
|
|
1599
1599
|
example: true,
|
|
1600
1600
|
})
|
|
@@ -1603,7 +1603,7 @@ export default class Project extends TenantModel {
|
|
|
1603
1603
|
default: false,
|
|
1604
1604
|
type: ColumnType.Boolean,
|
|
1605
1605
|
})
|
|
1606
|
-
public
|
|
1606
|
+
public enableIncidentInstrumentationFixTasks?: boolean = undefined;
|
|
1607
1607
|
|
|
1608
1608
|
@ColumnAccessControl({
|
|
1609
1609
|
create: [],
|
|
@@ -1622,9 +1622,9 @@ export default class Project extends TenantModel {
|
|
|
1622
1622
|
required: true,
|
|
1623
1623
|
isDefaultValueColumn: true,
|
|
1624
1624
|
type: TableColumnType.Boolean,
|
|
1625
|
-
title: "Enable
|
|
1625
|
+
title: "Enable Alert Instrumentation Fix Tasks",
|
|
1626
1626
|
description:
|
|
1627
|
-
"When enabled, an AI investigation that ends
|
|
1627
|
+
"When enabled, an alert AI investigation that ends inconclusive (telemetry was insufficient to determine a root cause) automatically queues an AI agent task that opens a pull request adding the missing instrumentation to the implicated code paths. Requires a repository connected through the GitHub App. Pull requests are always human-reviewed — nothing merges automatically.",
|
|
1628
1628
|
defaultValue: false,
|
|
1629
1629
|
example: true,
|
|
1630
1630
|
})
|
|
@@ -1633,7 +1633,67 @@ export default class Project extends TenantModel {
|
|
|
1633
1633
|
default: false,
|
|
1634
1634
|
type: ColumnType.Boolean,
|
|
1635
1635
|
})
|
|
1636
|
-
public
|
|
1636
|
+
public enableAlertInstrumentationFixTasks?: boolean = undefined;
|
|
1637
|
+
|
|
1638
|
+
@ColumnAccessControl({
|
|
1639
|
+
create: [],
|
|
1640
|
+
read: [
|
|
1641
|
+
Permission.ProjectOwner,
|
|
1642
|
+
Permission.ProjectAdmin,
|
|
1643
|
+
Permission.ProjectMember,
|
|
1644
|
+
Permission.Viewer,
|
|
1645
|
+
Permission.ReadProject,
|
|
1646
|
+
Permission.UnAuthorizedSsoUser,
|
|
1647
|
+
Permission.ProjectUser,
|
|
1648
|
+
],
|
|
1649
|
+
update: [Permission.ProjectOwner, Permission.ProjectAdmin],
|
|
1650
|
+
})
|
|
1651
|
+
@TableColumn({
|
|
1652
|
+
required: true,
|
|
1653
|
+
isDefaultValueColumn: true,
|
|
1654
|
+
type: TableColumnType.Boolean,
|
|
1655
|
+
title: "Enable Automatic Incident Code Fixes",
|
|
1656
|
+
description:
|
|
1657
|
+
"When enabled, an incident AI investigation that ends with a confident, evidenced root cause analysis and recommends a repository code change automatically queues an AI agent task that opens a draft fix pull request from that analysis — the automatic form of the 'Open Fix PR from this analysis' button. Operational, infrastructure, external, user-error and inconclusive findings do not offer or open code-fix pull requests. Requires a repository connected through the GitHub App and a Runner with the code-fix capability. Pull requests are always human-reviewed — nothing merges automatically.",
|
|
1658
|
+
defaultValue: false,
|
|
1659
|
+
example: true,
|
|
1660
|
+
})
|
|
1661
|
+
@Column({
|
|
1662
|
+
nullable: false,
|
|
1663
|
+
default: false,
|
|
1664
|
+
type: ColumnType.Boolean,
|
|
1665
|
+
})
|
|
1666
|
+
public enableAutomaticIncidentCodeFixes?: boolean = undefined;
|
|
1667
|
+
|
|
1668
|
+
@ColumnAccessControl({
|
|
1669
|
+
create: [],
|
|
1670
|
+
read: [
|
|
1671
|
+
Permission.ProjectOwner,
|
|
1672
|
+
Permission.ProjectAdmin,
|
|
1673
|
+
Permission.ProjectMember,
|
|
1674
|
+
Permission.Viewer,
|
|
1675
|
+
Permission.ReadProject,
|
|
1676
|
+
Permission.UnAuthorizedSsoUser,
|
|
1677
|
+
Permission.ProjectUser,
|
|
1678
|
+
],
|
|
1679
|
+
update: [Permission.ProjectOwner, Permission.ProjectAdmin],
|
|
1680
|
+
})
|
|
1681
|
+
@TableColumn({
|
|
1682
|
+
required: true,
|
|
1683
|
+
isDefaultValueColumn: true,
|
|
1684
|
+
type: TableColumnType.Boolean,
|
|
1685
|
+
title: "Enable Automatic Alert Code Fixes",
|
|
1686
|
+
description:
|
|
1687
|
+
"When enabled, an alert AI investigation that ends with a confident, evidenced root cause analysis and recommends a repository code change automatically queues an AI agent task that opens a draft fix pull request from that analysis — the automatic form of the 'Open Fix PR from this analysis' button. Operational, infrastructure, external, user-error and inconclusive findings do not offer or open code-fix pull requests. Requires a repository connected through the GitHub App and a Runner with the code-fix capability. Pull requests are always human-reviewed — nothing merges automatically.",
|
|
1688
|
+
defaultValue: false,
|
|
1689
|
+
example: true,
|
|
1690
|
+
})
|
|
1691
|
+
@Column({
|
|
1692
|
+
nullable: false,
|
|
1693
|
+
default: false,
|
|
1694
|
+
type: ColumnType.Boolean,
|
|
1695
|
+
})
|
|
1696
|
+
public enableAutomaticAlertCodeFixes?: boolean = undefined;
|
|
1637
1697
|
|
|
1638
1698
|
@ColumnAccessControl({
|
|
1639
1699
|
create: [],
|
|
@@ -1806,7 +1866,7 @@ export default class Project extends TenantModel {
|
|
|
1806
1866
|
type: TableColumnType.Number,
|
|
1807
1867
|
title: "Daily Autonomous AI Token Limit",
|
|
1808
1868
|
description:
|
|
1809
|
-
"
|
|
1869
|
+
"Fallback maximum tokens per UTC day for autonomous AI work that is not associated with an incident or alert. When the limit is reached, new autonomous work is skipped until the next day — interactive AI chat is never blocked. Unset means no limit.",
|
|
1810
1870
|
example: 500000,
|
|
1811
1871
|
})
|
|
1812
1872
|
@Column({
|
|
@@ -1815,6 +1875,60 @@ export default class Project extends TenantModel {
|
|
|
1815
1875
|
})
|
|
1816
1876
|
public aiDailyAutonomousTokenLimit?: number = undefined;
|
|
1817
1877
|
|
|
1878
|
+
@ColumnAccessControl({
|
|
1879
|
+
create: [],
|
|
1880
|
+
read: [
|
|
1881
|
+
Permission.ProjectOwner,
|
|
1882
|
+
Permission.ProjectAdmin,
|
|
1883
|
+
Permission.ProjectMember,
|
|
1884
|
+
Permission.Viewer,
|
|
1885
|
+
Permission.ReadProject,
|
|
1886
|
+
Permission.UnAuthorizedSsoUser,
|
|
1887
|
+
Permission.ProjectUser,
|
|
1888
|
+
],
|
|
1889
|
+
update: [Permission.ProjectOwner, Permission.ProjectAdmin],
|
|
1890
|
+
})
|
|
1891
|
+
@TableColumn({
|
|
1892
|
+
required: false,
|
|
1893
|
+
type: TableColumnType.Number,
|
|
1894
|
+
title: "Daily Incident AI Token Limit",
|
|
1895
|
+
description:
|
|
1896
|
+
"Maximum tokens per UTC day that autonomous incident-linked AI work may consume for this project, including investigations, remediation, and follow-up fix tasks. When the limit is reached, new incident-linked AI work is skipped until the next day — interactive AI chat is never blocked. Unset means no limit.",
|
|
1897
|
+
example: 500000,
|
|
1898
|
+
})
|
|
1899
|
+
@Column({
|
|
1900
|
+
nullable: true,
|
|
1901
|
+
type: ColumnType.Number,
|
|
1902
|
+
})
|
|
1903
|
+
public incidentAiDailyAutonomousTokenLimit?: number = undefined;
|
|
1904
|
+
|
|
1905
|
+
@ColumnAccessControl({
|
|
1906
|
+
create: [],
|
|
1907
|
+
read: [
|
|
1908
|
+
Permission.ProjectOwner,
|
|
1909
|
+
Permission.ProjectAdmin,
|
|
1910
|
+
Permission.ProjectMember,
|
|
1911
|
+
Permission.Viewer,
|
|
1912
|
+
Permission.ReadProject,
|
|
1913
|
+
Permission.UnAuthorizedSsoUser,
|
|
1914
|
+
Permission.ProjectUser,
|
|
1915
|
+
],
|
|
1916
|
+
update: [Permission.ProjectOwner, Permission.ProjectAdmin],
|
|
1917
|
+
})
|
|
1918
|
+
@TableColumn({
|
|
1919
|
+
required: false,
|
|
1920
|
+
type: TableColumnType.Number,
|
|
1921
|
+
title: "Daily Alert AI Token Limit",
|
|
1922
|
+
description:
|
|
1923
|
+
"Maximum tokens per UTC day that autonomous alert-linked AI work may consume for this project, including investigations, remediation, and follow-up fix tasks. When the limit is reached, new alert-linked AI work is skipped until the next day — interactive AI chat is never blocked. Unset means no limit.",
|
|
1924
|
+
example: 500000,
|
|
1925
|
+
})
|
|
1926
|
+
@Column({
|
|
1927
|
+
nullable: true,
|
|
1928
|
+
type: ColumnType.Number,
|
|
1929
|
+
})
|
|
1930
|
+
public alertAiDailyAutonomousTokenLimit?: number = undefined;
|
|
1931
|
+
|
|
1818
1932
|
@ColumnAccessControl({
|
|
1819
1933
|
create: [],
|
|
1820
1934
|
read: [
|
|
@@ -1833,7 +1947,7 @@ export default class Project extends TenantModel {
|
|
|
1833
1947
|
type: TableColumnType.Number,
|
|
1834
1948
|
title: "Daily AI Fix Task Limit",
|
|
1835
1949
|
description:
|
|
1836
|
-
"
|
|
1950
|
+
"Fallback maximum AI fix tasks (agent runs that open pull requests) that may be created per UTC day for work not associated with an incident or alert, across every fix recipe and trigger. Unset means the default of 25 per day; 0 pauses these AI fix tasks entirely.",
|
|
1837
1951
|
example: 25,
|
|
1838
1952
|
})
|
|
1839
1953
|
@Column({
|
|
@@ -1842,6 +1956,60 @@ export default class Project extends TenantModel {
|
|
|
1842
1956
|
})
|
|
1843
1957
|
public aiDailyFixTaskLimit?: number = undefined;
|
|
1844
1958
|
|
|
1959
|
+
@ColumnAccessControl({
|
|
1960
|
+
create: [],
|
|
1961
|
+
read: [
|
|
1962
|
+
Permission.ProjectOwner,
|
|
1963
|
+
Permission.ProjectAdmin,
|
|
1964
|
+
Permission.ProjectMember,
|
|
1965
|
+
Permission.Viewer,
|
|
1966
|
+
Permission.ReadProject,
|
|
1967
|
+
Permission.UnAuthorizedSsoUser,
|
|
1968
|
+
Permission.ProjectUser,
|
|
1969
|
+
],
|
|
1970
|
+
update: [Permission.ProjectOwner, Permission.ProjectAdmin],
|
|
1971
|
+
})
|
|
1972
|
+
@TableColumn({
|
|
1973
|
+
required: false,
|
|
1974
|
+
type: TableColumnType.Number,
|
|
1975
|
+
title: "Daily Incident AI Fix Task Limit",
|
|
1976
|
+
description:
|
|
1977
|
+
"Maximum AI fix tasks derived from incidents that may be created per UTC day for this project. Unset means the default of 25 per day; 0 pauses incident AI fix tasks entirely.",
|
|
1978
|
+
example: 25,
|
|
1979
|
+
})
|
|
1980
|
+
@Column({
|
|
1981
|
+
nullable: true,
|
|
1982
|
+
type: ColumnType.Number,
|
|
1983
|
+
})
|
|
1984
|
+
public incidentAiDailyFixTaskLimit?: number = undefined;
|
|
1985
|
+
|
|
1986
|
+
@ColumnAccessControl({
|
|
1987
|
+
create: [],
|
|
1988
|
+
read: [
|
|
1989
|
+
Permission.ProjectOwner,
|
|
1990
|
+
Permission.ProjectAdmin,
|
|
1991
|
+
Permission.ProjectMember,
|
|
1992
|
+
Permission.Viewer,
|
|
1993
|
+
Permission.ReadProject,
|
|
1994
|
+
Permission.UnAuthorizedSsoUser,
|
|
1995
|
+
Permission.ProjectUser,
|
|
1996
|
+
],
|
|
1997
|
+
update: [Permission.ProjectOwner, Permission.ProjectAdmin],
|
|
1998
|
+
})
|
|
1999
|
+
@TableColumn({
|
|
2000
|
+
required: false,
|
|
2001
|
+
type: TableColumnType.Number,
|
|
2002
|
+
title: "Daily Alert AI Fix Task Limit",
|
|
2003
|
+
description:
|
|
2004
|
+
"Maximum AI fix tasks derived from alerts that may be created per UTC day for this project. Unset means the default of 25 per day; 0 pauses alert AI fix tasks entirely.",
|
|
2005
|
+
example: 25,
|
|
2006
|
+
})
|
|
2007
|
+
@Column({
|
|
2008
|
+
nullable: true,
|
|
2009
|
+
type: ColumnType.Number,
|
|
2010
|
+
})
|
|
2011
|
+
public alertAiDailyFixTaskLimit?: number = undefined;
|
|
2012
|
+
|
|
1845
2013
|
@ColumnAccessControl({
|
|
1846
2014
|
create: [],
|
|
1847
2015
|
read: [
|
|
@@ -1976,7 +2144,7 @@ export default class Project extends TenantModel {
|
|
|
1976
2144
|
type: TableColumnType.Number,
|
|
1977
2145
|
title: "Max Concurrent Investigations",
|
|
1978
2146
|
description:
|
|
1979
|
-
"
|
|
2147
|
+
"Fallback maximum number of non-incident and non-alert AI investigations that may run at the same time for this project. Unset means the default of 3. Minimum 1 — pause autonomous work with its opt-in toggle or a daily token limit of 0 instead.",
|
|
1980
2148
|
example: 3,
|
|
1981
2149
|
})
|
|
1982
2150
|
@Column({
|
|
@@ -1985,6 +2153,60 @@ export default class Project extends TenantModel {
|
|
|
1985
2153
|
})
|
|
1986
2154
|
public aiMaxConcurrentInvestigations?: number = undefined;
|
|
1987
2155
|
|
|
2156
|
+
@ColumnAccessControl({
|
|
2157
|
+
create: [],
|
|
2158
|
+
read: [
|
|
2159
|
+
Permission.ProjectOwner,
|
|
2160
|
+
Permission.ProjectAdmin,
|
|
2161
|
+
Permission.ProjectMember,
|
|
2162
|
+
Permission.Viewer,
|
|
2163
|
+
Permission.ReadProject,
|
|
2164
|
+
Permission.UnAuthorizedSsoUser,
|
|
2165
|
+
Permission.ProjectUser,
|
|
2166
|
+
],
|
|
2167
|
+
update: [Permission.ProjectOwner, Permission.ProjectAdmin],
|
|
2168
|
+
})
|
|
2169
|
+
@TableColumn({
|
|
2170
|
+
required: false,
|
|
2171
|
+
type: TableColumnType.Number,
|
|
2172
|
+
title: "Max Concurrent Incident Investigations",
|
|
2173
|
+
description:
|
|
2174
|
+
"How many incident AI investigations may run at the same time for this project. Unset means the default of 3. Minimum 1 — pause incident investigations with the opt-in toggle or a daily token limit of 0 instead.",
|
|
2175
|
+
example: 3,
|
|
2176
|
+
})
|
|
2177
|
+
@Column({
|
|
2178
|
+
nullable: true,
|
|
2179
|
+
type: ColumnType.Number,
|
|
2180
|
+
})
|
|
2181
|
+
public incidentAiMaxConcurrentInvestigations?: number = undefined;
|
|
2182
|
+
|
|
2183
|
+
@ColumnAccessControl({
|
|
2184
|
+
create: [],
|
|
2185
|
+
read: [
|
|
2186
|
+
Permission.ProjectOwner,
|
|
2187
|
+
Permission.ProjectAdmin,
|
|
2188
|
+
Permission.ProjectMember,
|
|
2189
|
+
Permission.Viewer,
|
|
2190
|
+
Permission.ReadProject,
|
|
2191
|
+
Permission.UnAuthorizedSsoUser,
|
|
2192
|
+
Permission.ProjectUser,
|
|
2193
|
+
],
|
|
2194
|
+
update: [Permission.ProjectOwner, Permission.ProjectAdmin],
|
|
2195
|
+
})
|
|
2196
|
+
@TableColumn({
|
|
2197
|
+
required: false,
|
|
2198
|
+
type: TableColumnType.Number,
|
|
2199
|
+
title: "Max Concurrent Alert Investigations",
|
|
2200
|
+
description:
|
|
2201
|
+
"How many alert AI investigations may run at the same time for this project. Unset means the default of 3. Minimum 1 — pause alert investigations with the opt-in toggle or a daily token limit of 0 instead.",
|
|
2202
|
+
example: 3,
|
|
2203
|
+
})
|
|
2204
|
+
@Column({
|
|
2205
|
+
nullable: true,
|
|
2206
|
+
type: ColumnType.Number,
|
|
2207
|
+
})
|
|
2208
|
+
public alertAiMaxConcurrentInvestigations?: number = undefined;
|
|
2209
|
+
|
|
1988
2210
|
@ColumnAccessControl({
|
|
1989
2211
|
create: [],
|
|
1990
2212
|
read: [
|
|
@@ -2583,7 +2805,21 @@ export default class Project extends TenantModel {
|
|
|
2583
2805
|
})
|
|
2584
2806
|
public doNotAddGlobalProbesByDefaultOnNewMonitors?: boolean = undefined;
|
|
2585
2807
|
|
|
2586
|
-
|
|
2808
|
+
/*
|
|
2809
|
+
* GitHub App Installation ID for this project.
|
|
2810
|
+
*
|
|
2811
|
+
* This column IS the authority on which GitHub App installation a project
|
|
2812
|
+
* owns — every path that mints a repository token re-derives the binding
|
|
2813
|
+
* from it (see GitHubInstallationBinding). That makes it security state, not
|
|
2814
|
+
* project configuration, so `update` is empty: a Project Owner who could PUT
|
|
2815
|
+
* an arbitrary installation ID here would simply be writing their own
|
|
2816
|
+
* permission slip to another tenant's repositories.
|
|
2817
|
+
*
|
|
2818
|
+
* It is written server-side only, with `isRoot`, by the GitHub App install
|
|
2819
|
+
* callback — and only after the OAuth user-to-server round trip has proved
|
|
2820
|
+
* to GitHub's satisfaction that the installer controls that installation —
|
|
2821
|
+
* and cleared again by the `installation.deleted` webhook.
|
|
2822
|
+
*/
|
|
2587
2823
|
@ColumnAccessControl({
|
|
2588
2824
|
create: [],
|
|
2589
2825
|
read: [
|
|
@@ -2593,7 +2829,7 @@ export default class Project extends TenantModel {
|
|
|
2593
2829
|
Permission.Viewer,
|
|
2594
2830
|
Permission.ReadProject,
|
|
2595
2831
|
],
|
|
2596
|
-
update: [
|
|
2832
|
+
update: [],
|
|
2597
2833
|
})
|
|
2598
2834
|
@TableColumn({
|
|
2599
2835
|
required: false,
|
|
@@ -81,6 +81,20 @@ import {
|
|
|
81
81
|
*/
|
|
82
82
|
@Index(["projectId", "name"], { unique: true })
|
|
83
83
|
@Index(["projectId", "isArchived"])
|
|
84
|
+
/*
|
|
85
|
+
* Restores a UNIQUE index that an autogenerated migration deleted.
|
|
86
|
+
*
|
|
87
|
+
* Declared natively and NAMED. TypeORM's schema builder matches database
|
|
88
|
+
* indexes to entity metadata by name and drops every one it cannot find, which
|
|
89
|
+
* is how the original was lost: it existed only in a migration, so entity
|
|
90
|
+
* metadata never mentioned it and `migration:generate` emitted a DROP. Naming
|
|
91
|
+
* it here keeps the original index name and lets the builder match, compare
|
|
92
|
+
* uniqueness and columns, and keep it.
|
|
93
|
+
*/
|
|
94
|
+
@Index("IDX_proxmox_cluster_slug", ["slug"], {
|
|
95
|
+
unique: true,
|
|
96
|
+
where: '"deletedAt" IS NULL',
|
|
97
|
+
})
|
|
84
98
|
@TableMetadata({
|
|
85
99
|
tableName: "ProxmoxCluster",
|
|
86
100
|
singularName: "Proxmox Cluster",
|
|
@@ -239,7 +239,7 @@ export default class ScheduledMaintenanceTemplateOwnerUser extends BaseModel {
|
|
|
239
239
|
Permission.ProjectMember,
|
|
240
240
|
Permission.ScheduledMaintenanceAdmin,
|
|
241
241
|
Permission.ScheduledMaintenanceMember,
|
|
242
|
-
Permission.
|
|
242
|
+
Permission.CreateScheduledMaintenanceTemplateOwnerUser,
|
|
243
243
|
],
|
|
244
244
|
read: [
|
|
245
245
|
Permission.ProjectOwner,
|
|
@@ -249,7 +249,7 @@ export default class ScheduledMaintenanceTemplateOwnerUser extends BaseModel {
|
|
|
249
249
|
Permission.ScheduledMaintenanceAdmin,
|
|
250
250
|
Permission.ScheduledMaintenanceMember,
|
|
251
251
|
Permission.ScheduledMaintenanceViewer,
|
|
252
|
-
Permission.
|
|
252
|
+
Permission.ReadScheduledMaintenanceTemplateOwnerUser,
|
|
253
253
|
],
|
|
254
254
|
update: [],
|
|
255
255
|
})
|
|
@@ -283,7 +283,7 @@ export default class ScheduledMaintenanceTemplateOwnerUser extends BaseModel {
|
|
|
283
283
|
Permission.ProjectMember,
|
|
284
284
|
Permission.ScheduledMaintenanceAdmin,
|
|
285
285
|
Permission.ScheduledMaintenanceMember,
|
|
286
|
-
Permission.
|
|
286
|
+
Permission.CreateScheduledMaintenanceTemplateOwnerUser,
|
|
287
287
|
],
|
|
288
288
|
read: [
|
|
289
289
|
Permission.ProjectOwner,
|
|
@@ -293,7 +293,7 @@ export default class ScheduledMaintenanceTemplateOwnerUser extends BaseModel {
|
|
|
293
293
|
Permission.ScheduledMaintenanceAdmin,
|
|
294
294
|
Permission.ScheduledMaintenanceMember,
|
|
295
295
|
Permission.ScheduledMaintenanceViewer,
|
|
296
|
-
Permission.
|
|
296
|
+
Permission.ReadScheduledMaintenanceTemplateOwnerUser,
|
|
297
297
|
],
|
|
298
298
|
update: [],
|
|
299
299
|
})
|
|
@@ -26,6 +26,7 @@ import Permission from "../../Types/Permission";
|
|
|
26
26
|
import TechStack from "../../Types/Service/TechStack";
|
|
27
27
|
import MetricDownsamplingRetentionDays from "../../Types/Metrics/MetricDownsamplingRetentionDays";
|
|
28
28
|
import TelemetryRetentionConfig from "../../Types/Telemetry/TelemetryRetentionConfig";
|
|
29
|
+
import UNSYNCHRONIZED_INDEX from "../../Types/Database/UnsynchronizedIndex";
|
|
29
30
|
import {
|
|
30
31
|
Column,
|
|
31
32
|
Entity,
|
|
@@ -101,6 +102,35 @@ import {
|
|
|
101
102
|
*/
|
|
102
103
|
@Index(["projectId", "name"], { unique: true })
|
|
103
104
|
@Index(["projectId", "isArchived"])
|
|
105
|
+
/*
|
|
106
|
+
* Serves the hottest read on the telemetry ingest path: OTLP resource
|
|
107
|
+
* resolution looks a service up by `service.name` case-insensitively, so
|
|
108
|
+
* `QueryHelper.findWithSameText` emits `LOWER("Service"."name") = $2`. The
|
|
109
|
+
* unique index above is over the RAW name column and cannot satisfy that
|
|
110
|
+
* predicate — Postgres can only use its `projectId` prefix as an index qual and
|
|
111
|
+
* must then heap-fetch and filter every service in the project. The real
|
|
112
|
+
* definition is an EXPRESSION index and lives in migration
|
|
113
|
+
* 1786100000000-RestoreServiceLowerNameIndex; `@Index()` cannot express
|
|
114
|
+
* `LOWER(...)`.
|
|
115
|
+
*
|
|
116
|
+
* `synchronize: false` is the load-bearing part of this declaration, and it is
|
|
117
|
+
* why the index is declared here at all rather than only in the migration.
|
|
118
|
+
* TypeORM's schema builder matches database indexes to entity metadata BY NAME
|
|
119
|
+
* and drops every one it cannot find (RdbmsSchemaBuilder.dropOldIndices). An
|
|
120
|
+
* index created only in a migration is therefore invisible to it and gets
|
|
121
|
+
* emitted as a DROP by the next autogenerated migration. That is not
|
|
122
|
+
* hypothetical: this exact index existed once, as
|
|
123
|
+
* IDX_SERVICE_PROJECT_NAME_UNIQUE in migration 1774559064921, and migration
|
|
124
|
+
* 1775735059360 dropped it as collateral damage — its down() even "restores"
|
|
125
|
+
* it without the LOWER(), so the round-trip silently loses the expression.
|
|
126
|
+
* Naming it here with synchronize:false makes the builder skip it in both
|
|
127
|
+
* directions: it will never drop it, and it will never try to create it.
|
|
128
|
+
*/
|
|
129
|
+
@Index(
|
|
130
|
+
"IDX_SERVICE_PROJECT_LOWER_NAME",
|
|
131
|
+
["projectId", "name"],
|
|
132
|
+
UNSYNCHRONIZED_INDEX,
|
|
133
|
+
)
|
|
104
134
|
@TableMetadata({
|
|
105
135
|
tableName: "Service",
|
|
106
136
|
singularName: "Service",
|
|
@@ -1183,6 +1183,7 @@ export default class StatusPage extends BaseModel {
|
|
|
1183
1183
|
description:
|
|
1184
1184
|
"Password required to unlock a private status page. This value is stored as a secure hash.",
|
|
1185
1185
|
hashed: true,
|
|
1186
|
+
hashSaltColumn: "masterPasswordSalt",
|
|
1186
1187
|
type: TableColumnType.HashedString,
|
|
1187
1188
|
placeholder: "Enter a new master password",
|
|
1188
1189
|
})
|
|
@@ -1194,6 +1195,33 @@ export default class StatusPage extends BaseModel {
|
|
|
1194
1195
|
})
|
|
1195
1196
|
public masterPassword?: HashedString = undefined;
|
|
1196
1197
|
|
|
1198
|
+
/*
|
|
1199
|
+
* Per-status-page salt mixed into `masterPassword`. Written by the database
|
|
1200
|
+
* write path on every master-password write and never exposed to API
|
|
1201
|
+
* callers. Nullable so existing unsalted hashes can be verified and
|
|
1202
|
+
* upgraded after a successful unlock.
|
|
1203
|
+
*/
|
|
1204
|
+
@ColumnAccessControl({
|
|
1205
|
+
create: [],
|
|
1206
|
+
read: [],
|
|
1207
|
+
update: [],
|
|
1208
|
+
})
|
|
1209
|
+
@TableColumn({
|
|
1210
|
+
title: "Master Password Salt",
|
|
1211
|
+
description:
|
|
1212
|
+
"Per-status-page random salt mixed into this status page's master password hash.",
|
|
1213
|
+
computed: true,
|
|
1214
|
+
type: TableColumnType.ShortText,
|
|
1215
|
+
hideColumnInDocumentation: true,
|
|
1216
|
+
})
|
|
1217
|
+
@Column({
|
|
1218
|
+
type: ColumnType.ShortText,
|
|
1219
|
+
length: ColumnLength.ShortText,
|
|
1220
|
+
unique: false,
|
|
1221
|
+
nullable: true,
|
|
1222
|
+
})
|
|
1223
|
+
public masterPasswordSalt?: string = undefined;
|
|
1224
|
+
|
|
1197
1225
|
@ColumnAccessControl({
|
|
1198
1226
|
create: [
|
|
1199
1227
|
Permission.ProjectOwner,
|
|
@@ -319,6 +319,7 @@ export default class StatusPagePrivateUser extends BaseModel {
|
|
|
319
319
|
@TableColumn({
|
|
320
320
|
title: "Password",
|
|
321
321
|
hashed: true,
|
|
322
|
+
hashSaltColumn: "passwordSalt",
|
|
322
323
|
type: TableColumnType.HashedString,
|
|
323
324
|
})
|
|
324
325
|
@Column({
|
|
@@ -330,6 +331,35 @@ export default class StatusPagePrivateUser extends BaseModel {
|
|
|
330
331
|
})
|
|
331
332
|
public password?: HashedString = undefined;
|
|
332
333
|
|
|
334
|
+
/*
|
|
335
|
+
* Per-user salt mixed into `password`'s hash. Written by the database
|
|
336
|
+
* write path on every password write — never by an API caller, hence the
|
|
337
|
+
* empty access control and `computed: true`.
|
|
338
|
+
*
|
|
339
|
+
* Nullable on purpose: rows that predate per-user salts have none, and are
|
|
340
|
+
* verified against the legacy unsalted scheme until the next successful
|
|
341
|
+
* login re-hashes them with a fresh salt.
|
|
342
|
+
*/
|
|
343
|
+
@ColumnAccessControl({
|
|
344
|
+
create: [],
|
|
345
|
+
read: [],
|
|
346
|
+
update: [],
|
|
347
|
+
})
|
|
348
|
+
@TableColumn({
|
|
349
|
+
title: "Password Salt",
|
|
350
|
+
description: "Per-user random salt mixed into this user's password hash.",
|
|
351
|
+
computed: true,
|
|
352
|
+
type: TableColumnType.ShortText,
|
|
353
|
+
hideColumnInDocumentation: true,
|
|
354
|
+
})
|
|
355
|
+
@Column({
|
|
356
|
+
type: ColumnType.ShortText,
|
|
357
|
+
length: ColumnLength.ShortText,
|
|
358
|
+
unique: false,
|
|
359
|
+
nullable: true,
|
|
360
|
+
})
|
|
361
|
+
public passwordSalt?: string = undefined;
|
|
362
|
+
|
|
333
363
|
@ColumnAccessControl({
|
|
334
364
|
create: [],
|
|
335
365
|
read: [],
|
|
@@ -140,6 +140,7 @@ class User extends UserModel {
|
|
|
140
140
|
@TableColumn({
|
|
141
141
|
title: "Password",
|
|
142
142
|
hashed: true,
|
|
143
|
+
hashSaltColumn: "passwordSalt",
|
|
143
144
|
type: TableColumnType.HashedString,
|
|
144
145
|
})
|
|
145
146
|
@Column({
|
|
@@ -151,6 +152,35 @@ class User extends UserModel {
|
|
|
151
152
|
})
|
|
152
153
|
public password?: HashedString = undefined;
|
|
153
154
|
|
|
155
|
+
/*
|
|
156
|
+
* Per-user salt mixed into `password`'s hash. Written by the database
|
|
157
|
+
* write path on every password write — never by an API caller, hence the
|
|
158
|
+
* empty access control and `computed: true`.
|
|
159
|
+
*
|
|
160
|
+
* Nullable on purpose: rows that predate per-user salts have none, and are
|
|
161
|
+
* verified against the legacy unsalted scheme until the next successful
|
|
162
|
+
* login re-hashes them with a fresh salt.
|
|
163
|
+
*/
|
|
164
|
+
@ColumnAccessControl({
|
|
165
|
+
create: [],
|
|
166
|
+
read: [],
|
|
167
|
+
update: [],
|
|
168
|
+
})
|
|
169
|
+
@TableColumn({
|
|
170
|
+
title: "Password Salt",
|
|
171
|
+
description: "Per-user random salt mixed into this user's password hash.",
|
|
172
|
+
computed: true,
|
|
173
|
+
type: TableColumnType.ShortText,
|
|
174
|
+
hideColumnInDocumentation: true,
|
|
175
|
+
})
|
|
176
|
+
@Column({
|
|
177
|
+
type: ColumnType.ShortText,
|
|
178
|
+
length: ColumnLength.ShortText,
|
|
179
|
+
unique: false,
|
|
180
|
+
nullable: true,
|
|
181
|
+
})
|
|
182
|
+
public passwordSalt?: string = undefined;
|
|
183
|
+
|
|
154
184
|
@ColumnAccessControl({
|
|
155
185
|
create: [],
|
|
156
186
|
read: [Permission.CurrentUser],
|