@oneuptime/common 12.0.6 → 12.0.7
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/AIInsight.ts +1 -1
- package/Models/DatabaseModels/DatabaseBaseModel/FileModel.ts +2 -3
- package/Models/DatabaseModels/DeletedProject.ts +595 -0
- package/Models/DatabaseModels/Index.ts +2 -0
- package/Models/DatabaseModels/Monitor.ts +111 -0
- package/Models/DatabaseModels/Project.ts +3 -3
- package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +19 -1
- package/Server/API/FileAPI.ts +15 -2
- package/Server/API/MicrosoftTeamsAPI.ts +6 -1
- package/Server/API/ProjectAPI.ts +214 -0
- package/Server/API/StatusPageAPI.ts +39 -6
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786446545142-MigrationName.ts +50 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786449497966-AddMonitorDependency.ts +67 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786461136170-AddDeletedProjectTable.ts +39 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Services/AIAgentService.ts +20 -0
- package/Server/Services/DashboardDomainService.ts +73 -28
- package/Server/Services/DatabaseService.ts +1 -0
- package/Server/Services/DeletedProjectService.ts +138 -0
- package/Server/Services/FileService.ts +61 -0
- package/Server/Services/IncidentEpisodePublicNoteService.ts +18 -0
- package/Server/Services/IncidentPublicNoteService.ts +18 -0
- package/Server/Services/Index.ts +2 -0
- package/Server/Services/MonitorService.ts +311 -0
- package/Server/Services/ProbeService.ts +20 -0
- package/Server/Services/ProjectService.ts +297 -1
- package/Server/Services/PushNotificationService.ts +71 -0
- package/Server/Services/ScheduledMaintenancePublicNoteService.ts +18 -0
- package/Server/Services/StatusPageAnnouncementService.ts +53 -0
- package/Server/Services/StatusPageDomainService.ts +73 -28
- package/Server/Services/TeamMemberService.ts +117 -12
- package/Server/Services/TelemetryIngestionKeyService.ts +1 -0
- package/Server/Services/UserWebhookService.ts +34 -109
- package/Server/Services/WorkspaceNotificationRuleService.ts +69 -0
- package/Server/Services/WorkspaceProjectAuthTokenService.ts +37 -1
- package/Server/Types/Database/DeleteById.ts +2 -0
- package/Server/Types/Database/DeleteOneBy.ts +6 -0
- package/Server/Types/Domain.ts +41 -0
- package/Server/Types/Workflow/Components/API/Delete.ts +2 -1
- package/Server/Types/Workflow/Components/API/Get.ts +2 -1
- package/Server/Types/Workflow/Components/API/Patch.ts +2 -1
- package/Server/Types/Workflow/Components/API/Post.ts +2 -1
- package/Server/Types/Workflow/Components/API/Put.ts +2 -1
- package/Server/Types/Workflow/Components/API/Utils.ts +41 -2
- package/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.ts +25 -19
- package/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.ts +6 -5
- package/Server/Types/Workflow/Components/BaseModel/DeleteManyBaseModel.ts +32 -14
- package/Server/Types/Workflow/Components/BaseModel/DeleteOneBaseModel.ts +31 -13
- package/Server/Types/Workflow/Components/BaseModel/FindManyBaseModel.ts +29 -20
- package/Server/Types/Workflow/Components/BaseModel/FindOneBaseModel.ts +28 -21
- package/Server/Types/Workflow/Components/BaseModel/LogComponentError.ts +89 -0
- package/Server/Types/Workflow/Components/BaseModel/ModelArguments.ts +208 -0
- package/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.ts +11 -0
- package/Server/Types/Workflow/Components/BaseModel/UpdateManyBaseModel.ts +41 -18
- package/Server/Types/Workflow/Components/BaseModel/UpdateOneBaseModel.ts +45 -19
- package/Server/Types/Workflow/Components/Discord/SendMessageToChannel.ts +16 -9
- package/Server/Types/Workflow/Components/IncomingWebhookUtils.ts +66 -0
- package/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.ts +15 -9
- package/Server/Types/Workflow/Components/Slack/SendMessageToChannel.ts +17 -0
- package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +1 -1
- package/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts +171 -0
- package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +3 -3
- package/Server/Utils/AI/SRE/Insights/FixRouting.ts +3 -2
- package/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.ts +1 -1
- package/Server/Utils/AI/Toolbox/CodeWriteTools.ts +6 -6
- package/Server/Utils/CodeRepository/GitHub/GitHub.ts +43 -5
- package/Server/Utils/DataSource/EgressGuard.ts +176 -16
- package/Server/Utils/DataSource/HttpFetch.ts +6 -45
- package/Server/Utils/Execute.ts +8 -0
- package/Server/Utils/InlineImageAccessTokenSync.ts +23 -0
- package/Server/Utils/LLM/LLMService.ts +57 -12
- package/Server/Utils/Monitor/MonitorAlert.ts +40 -0
- package/Server/Utils/Monitor/MonitorDependencySuppression.ts +192 -0
- package/Server/Utils/Monitor/MonitorIncident.ts +40 -0
- package/Server/Utils/Monitor/MonitorResource.ts +36 -0
- package/Server/Utils/Response.ts +142 -6
- package/Server/Utils/SSRFProtection.ts +273 -60
- package/Server/Utils/StartServer.ts +8 -0
- package/Server/Utils/VM/VMRunner.ts +88 -1
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +555 -49
- package/Server/Utils/Workspace/Slack/Slack.ts +25 -2
- package/Server/Utils/Workspace/WorkspaceBase.ts +6 -0
- package/Tests/App/Dashboard/DangerZone.test.tsx +334 -0
- package/Tests/App/Dashboard/DashboardVariableAllContract.test.tsx +539 -0
- package/Tests/App/Dashboard/DashboardVariableSelector.test.tsx +678 -0
- package/Tests/App/Dashboard/DashboardVariablesDiscard.test.tsx +706 -0
- package/Tests/App/Dashboard/DashboardVariablesModal.test.tsx +508 -0
- package/Tests/App/PublicDashboard/DashboardVariableSelector.test.tsx +470 -0
- package/Tests/App/StatusPage/StatusPageDetailPagesNotFound.test.tsx +308 -0
- package/Tests/Models/DatabaseModels/DeletedProjectModel.test.ts +251 -0
- package/Tests/Models/DatabaseModels/SavedViewJSONColumnTuples.test.ts +115 -0
- package/Tests/Server/API/FileAPIAccessControl.test.ts +316 -0
- package/Tests/Server/API/ProjectAPI.test.ts +299 -1
- package/Tests/Server/API/ProjectAPIAdjustBalance.test.ts +459 -0
- package/Tests/Server/API/ProjectAPIAdjustBalanceBillingDisabled.test.ts +177 -0
- package/Tests/Server/Services/DatabaseServiceDeletionReason.test.ts +123 -0
- package/Tests/Server/Services/DeletedProjectService.test.ts +415 -0
- package/Tests/Server/Services/DeletedProjectServiceSelfHosted.test.ts +70 -0
- package/Tests/Server/Services/DomainSubdomainHooks.test.ts +94 -0
- package/Tests/Server/Services/FileIsPublicBooleanMigration.test.ts +244 -0
- package/Tests/Server/Services/FileServiceMimeType.test.ts +89 -0
- package/Tests/Server/Services/MonitorServiceDependencyValidation.test.ts +702 -0
- package/Tests/Server/Services/ProjectServiceAdjustBalance.test.ts +615 -0
- package/Tests/Server/Services/ProjectServiceDeleteAudit.test.ts +406 -0
- package/Tests/Server/Services/PublishTimeImageVisibility.test.ts +450 -0
- package/Tests/Server/Services/TeamMemberAutoAcceptInvitation.test.ts +669 -0
- package/Tests/Server/Services/UserWebhookSSRF.test.ts +174 -0
- package/Tests/Server/Services/WebPushEndpointAllowlist.test.ts +133 -0
- package/Tests/Server/Services/WorkspaceProjectAuthTokenRepoint.test.ts +618 -0
- package/Tests/Server/Types/Workflow/Components/ApiComponentErrorPort.test.ts +26 -1
- package/Tests/Server/Types/Workflow/Components/ApiComponentSsrf.test.ts +215 -0
- package/Tests/Server/Types/Workflow/Components/BaseModelDatabaseComponents.test.ts +742 -0
- package/Tests/Server/Types/Workflow/Components/ChatWebhookComponents.test.ts +256 -0
- package/Tests/Server/Types/Workflow/Components/ModelArguments.test.ts +371 -0
- package/Tests/Server/Utils/AI/CodeAgentCommandGuard.test.ts +204 -0
- package/Tests/Server/Utils/AI/CodeAgentWriteLimits.test.ts +213 -0
- package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +52 -5
- package/Tests/Server/Utils/AI/LLMServiceBaseUrl.test.ts +3 -0
- package/Tests/Server/Utils/AI/LLMServiceEgressGuard.test.ts +315 -0
- package/Tests/Server/Utils/AI/LLMServiceModelCompatibility.test.ts +3 -0
- package/Tests/Server/Utils/AI/LLMServiceRequestPolicy.test.ts +17 -5
- package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +14 -1
- package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +35 -0
- package/Tests/Server/Utils/AI/StubLLMEgressGuard.ts +25 -0
- package/Tests/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.test.ts +62 -7
- package/Tests/Server/Utils/DataSource/EgressGuard.test.ts +69 -0
- package/Tests/Server/Utils/DataSource/EgressGuardPinning.test.ts +330 -0
- package/Tests/Server/Utils/GitHubCreatePullRequestWithToken.test.ts +393 -0
- package/Tests/Server/Utils/InlineImageAccessTokenSync.test.ts +202 -0
- package/Tests/Server/Utils/Monitor/MonitorDependencySuppression.test.ts +811 -0
- package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +604 -0
- package/Tests/Server/Utils/ResponseSendFileResponse.test.ts +192 -0
- package/Tests/Server/Utils/SSRFProtectionBypasses.test.ts +406 -0
- package/Tests/Server/Utils/VM/VMRunnerSsrf.test.ts +194 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelSend.test.ts +1169 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelsList.test.ts +2 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsTeamInstalls.test.ts +1605 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsTenantResolution.test.ts +1218 -0
- package/Tests/Types/AI/AIChatMessageStatus.test.ts +79 -0
- package/Tests/Types/AI/AIInsightStatus.test.ts +40 -0
- package/Tests/Types/API/HostnameAuthorityParsing.test.ts +157 -0
- package/Tests/Types/Dashboard/DashboardTemplateInvariants.test.ts +27 -0
- package/Tests/Types/DataSource/DataSourceLimits.test.ts +71 -0
- package/Tests/Types/DataSource/DataSourceType.test.ts +181 -0
- package/Tests/Types/DomainSubdomainValidation.test.ts +90 -0
- package/Tests/Types/JSONFunctions.test.ts +252 -1
- package/Tests/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.test.ts +61 -0
- package/Tests/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.test.ts +62 -0
- package/Tests/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.test.ts +68 -0
- package/Tests/Types/Monitor/SnmpMonitor/SnmpVersion.test.ts +51 -0
- package/Tests/UI/Components/404.test.tsx +1 -1
- package/Tests/UI/Components/Alert.test.tsx +1 -1
- package/Tests/UI/Components/Badge.test.tsx +1 -1
- package/Tests/UI/Components/BasicForm.test.tsx +39 -10
- package/Tests/UI/Components/Button.test.tsx +1 -1
- package/Tests/UI/Components/Card.test.tsx +1 -1
- package/Tests/UI/Components/Charts/AxisTickColor.test.tsx +1 -1
- package/Tests/UI/Components/ColorViewer.test.tsx +1 -1
- package/Tests/UI/Components/ComponentsModal.test.tsx +7 -1
- package/Tests/UI/Components/DictionaryOfStrings.test.tsx +1 -1
- package/Tests/UI/Components/Dropdown.test.tsx +1 -1
- package/Tests/UI/Components/FilePicker.test.tsx +1 -1
- package/Tests/UI/Components/HiddenText.test.tsx +1 -1
- package/Tests/UI/Components/Input.test.tsx +1 -1
- package/Tests/UI/Components/Loader.test.tsx +1 -1
- package/Tests/UI/Components/LogTimeRangePicker.test.tsx +1 -1
- package/Tests/UI/Components/MasterPage.test.tsx +1 -1
- package/Tests/UI/Components/ModalPortalDismissal.test.tsx +489 -0
- package/Tests/UI/Components/ModelDelete.test.tsx +214 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableBulkSelectAll.test.tsx +1 -1
- package/Tests/UI/Components/ModelTable/BaseModelTableColumnCustomization.test.tsx +1 -1
- package/Tests/UI/Components/ModelTable/BaseModelTableSearchLabels.test.tsx +1 -1
- package/Tests/UI/Components/ModelTable/BaseModelTableUrlState.test.tsx +1 -1
- package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +1 -1
- package/Tests/UI/Components/NavBar.test.tsx +1 -1
- package/Tests/UI/Components/OperatorSelectorKeyboard.test.tsx +1 -1
- package/Tests/UI/Components/Pagination.test.tsx +1 -1
- package/Tests/UI/Components/Pill.test.tsx +1 -1
- package/Tests/UI/Components/Probe.test.tsx +1 -1
- package/Tests/UI/Components/ProgressBar.test.tsx +1 -1
- package/Tests/UI/Components/RadioButtons.test.tsx +1 -1
- package/Tests/UI/Components/SideMenuItem.test.tsx +1 -1
- package/Tests/UI/Components/SideOver.test.tsx +500 -6
- package/Tests/UI/Components/Tabs.test.tsx +1 -1
- package/Tests/UI/Components/TelemetrySearchBar.test.tsx +1 -1
- package/Tests/UI/Components/TelemetryTimeRangePicker.test.tsx +1 -1
- package/Tests/UI/Components/TextArea.test.tsx +1 -1
- package/Tests/UI/Components/Toast.test.tsx +1 -1
- package/Tests/UI/Components/Toggle.test.tsx +1 -1
- package/Tests/UI/Components/TopSection.test.tsx +1 -1
- package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +1 -1
- package/Tests/UI/Rum/ReplayScrubber.test.tsx +1 -1
- package/Tests/UI/Rum/ReplayStage.test.tsx +1 -1
- package/Tests/UI/Telemetry/TelemetrySnapshotWindowAlert.test.tsx +1 -1
- package/Tests/UI/Utils/LocalStorageArrayRoundTrip.test.ts +72 -0
- package/Tests/Utils/Dashboard/HtmlWidgetDocument.test.ts +19 -2
- package/Tests/Utils/Dashboard/ModelQueryVariableInterpolation.test.ts +44 -0
- package/Tests/Utils/Dashboard/VariableInterpolation.test.ts +288 -5
- package/Tests/Utils/Dashboard/VariableUrlState.test.ts +42 -0
- package/Tests/Utils/DataSource/DataSourceQueryText.test.ts +27 -0
- package/Tests/Utils/LegacySerializedArray.test.ts +139 -0
- package/Tests/Utils/Monitor/MonitorDependencyRule.test.ts +190 -0
- package/Tests/Utils/Realtime.test.ts +78 -0
- package/Tests/Utils/Telemetry/SavedViewFilters.test.ts +246 -0
- package/Tests/__mocks__/i18next-browser-languagedetector.js +21 -0
- package/Types/AI/FixPullRequestCiStatus.ts +1 -1
- package/Types/AI/FixVerificationStatus.ts +2 -2
- package/Types/API/Hostname.ts +92 -4
- package/Types/API/URL.ts +43 -25
- package/Types/Billing/BalanceAdjustmentType.ts +14 -0
- package/Types/Billing/ProjectBalanceType.ts +13 -0
- package/Types/Domain.ts +26 -0
- package/Types/File/MimeType.ts +11 -0
- package/Types/JSONFunctions.ts +15 -0
- package/Types/Telemetry/TelemetrySavedViewState.ts +9 -1
- package/Types/Workflow/Components/BaseModel.ts +92 -28
- package/Typings/Index.d.ts +12 -0
- package/UI/Components/GanttChart/ChartContainer.tsx +4 -3
- package/UI/Components/Modal/ConfirmModal.tsx +10 -5
- package/UI/Components/Modal/Modal.tsx +27 -47
- package/UI/Components/ModelDelete/ModelDelete.tsx +23 -6
- package/UI/Components/SideOver/SideOver.tsx +195 -68
- package/UI/Utils/PageScrollLock.ts +66 -0
- package/Utils/Dashboard/HtmlWidgetDocument.ts +4 -2
- package/Utils/Dashboard/VariableInterpolation.ts +19 -1
- package/Utils/LegacySerializedArray.ts +60 -0
- package/Utils/Monitor/MonitorDependencyRule.ts +88 -0
- package/Utils/Telemetry/SavedViewFilters.ts +88 -0
- package/build/dist/Models/DatabaseModels/AIInsight.js +1 -1
- package/build/dist/Models/DatabaseModels/AIInsight.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/FileModel.js +2 -3
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/FileModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DeletedProject.js +640 -0
- package/build/dist/Models/DatabaseModels/DeletedProject.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Index.js +2 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +106 -0
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +3 -3
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
- package/build/dist/Server/API/FileAPI.js +14 -2
- package/build/dist/Server/API/FileAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +6 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/ProjectAPI.js +157 -4
- package/build/dist/Server/API/ProjectAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +27 -3
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786446545142-MigrationName.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786446545142-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786449497966-AddMonitorDependency.js +30 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786449497966-AddMonitorDependency.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786461136170-AddDeletedProjectTable.js +20 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786461136170-AddDeletedProjectTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIAgentService.js +17 -0
- package/build/dist/Server/Services/AIAgentService.js.map +1 -1
- package/build/dist/Server/Services/DashboardDomainService.js +55 -18
- package/build/dist/Server/Services/DashboardDomainService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +1 -0
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DeletedProjectService.js +124 -0
- package/build/dist/Server/Services/DeletedProjectService.js.map +1 -0
- package/build/dist/Server/Services/FileService.js +52 -0
- package/build/dist/Server/Services/FileService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodePublicNoteService.js +10 -1
- package/build/dist/Server/Services/IncidentEpisodePublicNoteService.js.map +1 -1
- package/build/dist/Server/Services/IncidentPublicNoteService.js +10 -1
- package/build/dist/Server/Services/IncidentPublicNoteService.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/MonitorService.js +232 -0
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/ProbeService.js +17 -0
- package/build/dist/Server/Services/ProbeService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +228 -6
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/PushNotificationService.js +56 -0
- package/build/dist/Server/Services/PushNotificationService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js +10 -1
- package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageAnnouncementService.js +54 -0
- package/build/dist/Server/Services/StatusPageAnnouncementService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageDomainService.js +55 -18
- package/build/dist/Server/Services/StatusPageDomainService.js.map +1 -1
- package/build/dist/Server/Services/TeamMemberService.js +97 -6
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryIngestionKeyService.js +1 -0
- package/build/dist/Server/Services/TelemetryIngestionKeyService.js.map +1 -1
- package/build/dist/Server/Services/UserWebhookService.js +31 -87
- package/build/dist/Server/Services/UserWebhookService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +65 -0
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceProjectAuthTokenService.js +23 -0
- package/build/dist/Server/Services/WorkspaceProjectAuthTokenService.js.map +1 -1
- package/build/dist/Server/Types/Domain.js +37 -0
- package/build/dist/Server/Types/Domain.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Delete.js +2 -1
- package/build/dist/Server/Types/Workflow/Components/API/Delete.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Get.js +2 -1
- package/build/dist/Server/Types/Workflow/Components/API/Get.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Patch.js +2 -1
- package/build/dist/Server/Types/Workflow/Components/API/Patch.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Post.js +2 -1
- package/build/dist/Server/Types/Workflow/Components/API/Post.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Put.js +2 -1
- package/build/dist/Server/Types/Workflow/Components/API/Put.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Utils.js +35 -2
- package/build/dist/Server/Types/Workflow/Components/API/Utils.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.js +15 -11
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.js +2 -3
- package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteManyBaseModel.js +21 -10
- package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteManyBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteOneBaseModel.js +21 -10
- package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteOneBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/FindManyBaseModel.js +18 -13
- package/build/dist/Server/Types/Workflow/Components/BaseModel/FindManyBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/FindOneBaseModel.js +18 -13
- package/build/dist/Server/Types/Workflow/Components/BaseModel/FindOneBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/LogComponentError.js +43 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/LogComponentError.js.map +1 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/ModelArguments.js +116 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/ModelArguments.js.map +1 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js +7 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateManyBaseModel.js +24 -13
- package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateManyBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateOneBaseModel.js +27 -13
- package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateOneBaseModel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/Discord/SendMessageToChannel.js +14 -6
- package/build/dist/Server/Types/Workflow/Components/Discord/SendMessageToChannel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/IncomingWebhookUtils.js +42 -0
- package/build/dist/Server/Types/Workflow/Components/IncomingWebhookUtils.js.map +1 -0
- package/build/dist/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.js +15 -6
- package/build/dist/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/Slack/SendMessageToChannel.js +10 -2
- package/build/dist/Server/Types/Workflow/Components/Slack/SendMessageToChannel.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js +141 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.js +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js +6 -6
- package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +39 -5
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
- package/build/dist/Server/Utils/DataSource/EgressGuard.js +94 -10
- package/build/dist/Server/Utils/DataSource/EgressGuard.js.map +1 -1
- package/build/dist/Server/Utils/DataSource/HttpFetch.js +1 -19
- package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -1
- package/build/dist/Server/Utils/Execute.js +2 -2
- package/build/dist/Server/Utils/Execute.js.map +1 -1
- package/build/dist/Server/Utils/InlineImageAccessTokenSync.js +13 -0
- package/build/dist/Server/Utils/InlineImageAccessTokenSync.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +43 -12
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +44 -24
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorDependencySuppression.js +158 -0
- package/build/dist/Server/Utils/Monitor/MonitorDependencySuppression.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +50 -30
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +32 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Response.js +112 -5
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/SSRFProtection.js +219 -53
- package/build/dist/Server/Utils/SSRFProtection.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +7 -0
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/VM/VMRunner.js +73 -1
- package/build/dist/Server/Utils/VM/VMRunner.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +445 -43
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +18 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
- package/build/dist/Types/AI/FixPullRequestCiStatus.js +1 -1
- package/build/dist/Types/AI/FixVerificationStatus.js +2 -2
- package/build/dist/Types/API/Hostname.js +73 -4
- package/build/dist/Types/API/Hostname.js.map +1 -1
- package/build/dist/Types/API/URL.js +42 -24
- package/build/dist/Types/API/URL.js.map +1 -1
- package/build/dist/Types/Billing/BalanceAdjustmentType.js +15 -0
- package/build/dist/Types/Billing/BalanceAdjustmentType.js.map +1 -0
- package/build/dist/Types/Billing/ProjectBalanceType.js +14 -0
- package/build/dist/Types/Billing/ProjectBalanceType.js.map +1 -0
- package/build/dist/Types/Domain.js +22 -0
- package/build/dist/Types/Domain.js.map +1 -1
- package/build/dist/Types/File/MimeType.js +11 -0
- package/build/dist/Types/File/MimeType.js.map +1 -1
- package/build/dist/Types/JSONFunctions.js +14 -0
- package/build/dist/Types/JSONFunctions.js.map +1 -1
- package/build/dist/Types/Workflow/Components/BaseModel.js +83 -28
- package/build/dist/Types/Workflow/Components/BaseModel.js.map +1 -1
- package/build/dist/UI/Components/GanttChart/ChartContainer.js +4 -3
- package/build/dist/UI/Components/GanttChart/ChartContainer.js.map +1 -1
- package/build/dist/UI/Components/Modal/ConfirmModal.js +3 -1
- package/build/dist/UI/Components/Modal/ConfirmModal.js.map +1 -1
- package/build/dist/UI/Components/Modal/Modal.js +24 -34
- package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
- package/build/dist/UI/Components/ModelDelete/ModelDelete.js +11 -6
- package/build/dist/UI/Components/ModelDelete/ModelDelete.js.map +1 -1
- package/build/dist/UI/Components/SideOver/SideOver.js +105 -30
- package/build/dist/UI/Components/SideOver/SideOver.js.map +1 -1
- package/build/dist/UI/Utils/PageScrollLock.js +52 -0
- package/build/dist/UI/Utils/PageScrollLock.js.map +1 -0
- package/build/dist/Utils/Dashboard/HtmlWidgetDocument.js +4 -2
- package/build/dist/Utils/Dashboard/HtmlWidgetDocument.js.map +1 -1
- package/build/dist/Utils/Dashboard/VariableInterpolation.js +19 -1
- package/build/dist/Utils/Dashboard/VariableInterpolation.js.map +1 -1
- package/build/dist/Utils/LegacySerializedArray.js +51 -0
- package/build/dist/Utils/LegacySerializedArray.js.map +1 -0
- package/build/dist/Utils/Monitor/MonitorDependencyRule.js +47 -0
- package/build/dist/Utils/Monitor/MonitorDependencyRule.js.map +1 -0
- package/build/dist/Utils/Telemetry/SavedViewFilters.js +52 -0
- package/build/dist/Utils/Telemetry/SavedViewFilters.js.map +1 -0
- package/jest.config.json +3 -0
- package/package.json +1 -1
- package/tsconfig.json +3 -1
|
@@ -8,6 +8,7 @@ import QueryHelper from "../Types/Database/QueryHelper";
|
|
|
8
8
|
import JSONWebToken from "../Utils/JsonWebToken";
|
|
9
9
|
import Response from "../Utils/Response";
|
|
10
10
|
import BaseAPI from "./BaseAPI";
|
|
11
|
+
import CommonAPI from "./CommonAPI";
|
|
11
12
|
import BillingService from "../Services/BillingService";
|
|
12
13
|
import Errors from "../Utils/Errors";
|
|
13
14
|
import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
@@ -17,10 +18,17 @@ import Project from "../../Models/DatabaseModels/Project";
|
|
|
17
18
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
18
19
|
import OneUptimeDate from "../../Types/Date";
|
|
19
20
|
import Permission from "../../Types/Permission";
|
|
21
|
+
import ProjectBalanceType from "../../Types/Billing/ProjectBalanceType";
|
|
22
|
+
import BalanceAdjustmentType from "../../Types/Billing/BalanceAdjustmentType";
|
|
20
23
|
import ObjectID from "../../Types/ObjectID";
|
|
24
|
+
/*
|
|
25
|
+
* The reason is free text a customer types into the delete confirmation. The
|
|
26
|
+
* column is unbounded text, so the cap is here.
|
|
27
|
+
*/
|
|
28
|
+
export const MAX_DELETION_REASON_LENGTH = 5000;
|
|
21
29
|
export default class ProjectAPI extends BaseAPI {
|
|
22
30
|
constructor() {
|
|
23
|
-
var _a, _b, _c;
|
|
31
|
+
var _a, _b, _c, _d, _e;
|
|
24
32
|
super(Project, ProjectService);
|
|
25
33
|
this.router.put(`${(_a = new this.entityType().getCrudApiPath()) === null || _a === void 0 ? void 0 : _a.toString()}/:id/change-plan`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
|
|
26
34
|
var _a;
|
|
@@ -87,13 +95,69 @@ export default class ProjectAPI extends BaseAPI {
|
|
|
87
95
|
next(err);
|
|
88
96
|
}
|
|
89
97
|
});
|
|
98
|
+
/*
|
|
99
|
+
* Deletes a project, carrying the reason the customer gave for deleting it.
|
|
100
|
+
* The plain DELETE /project/:id route still works and still records the
|
|
101
|
+
* deletion - this one exists only because a DELETE has nowhere to put the
|
|
102
|
+
* answer to "why are you deleting this project?".
|
|
103
|
+
*
|
|
104
|
+
* The delete itself goes through deleteOneById with the caller's own props,
|
|
105
|
+
* so ModelPermission enforces ProjectOwner / DeleteProject exactly as it
|
|
106
|
+
* does on the plain route.
|
|
107
|
+
*/
|
|
108
|
+
this.router.post(`${(_b = new this.entityType().getCrudApiPath()) === null || _b === void 0 ? void 0 : _b.toString()}/:id/delete-project`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
|
|
109
|
+
try {
|
|
110
|
+
const idParam = req.params["id"];
|
|
111
|
+
ObjectID.validateUUID(idParam);
|
|
112
|
+
const projectId = new ObjectID(idParam);
|
|
113
|
+
/*
|
|
114
|
+
* Same guard as change-plan: permissions are resolved for the
|
|
115
|
+
* authenticated tenant, so the project in the URL has to be that
|
|
116
|
+
* tenant or permissions on one project would authorize deleting
|
|
117
|
+
* another.
|
|
118
|
+
*/
|
|
119
|
+
const tenantId = this.getTenantId(req);
|
|
120
|
+
if (!tenantId || tenantId.toString() !== projectId.toString()) {
|
|
121
|
+
throw new BadDataException("Project ID in the URL does not match the project the request is authenticated for");
|
|
122
|
+
}
|
|
123
|
+
const body = req.body || {};
|
|
124
|
+
const data = body["data"] || {};
|
|
125
|
+
const deletionReasonValue = data["deletionReason"];
|
|
126
|
+
let deletionReason = undefined;
|
|
127
|
+
if (typeof deletionReasonValue === "string") {
|
|
128
|
+
/*
|
|
129
|
+
* Free text from a form field. Bound what a client can store, and
|
|
130
|
+
* drop NUL bytes: Postgres rejects them in a text column, and the
|
|
131
|
+
* write that fails here is the audit record of a project that has
|
|
132
|
+
* already been deleted - there is no second chance at it.
|
|
133
|
+
*/
|
|
134
|
+
const cleaned = deletionReasonValue
|
|
135
|
+
// eslint-disable-next-line no-control-regex
|
|
136
|
+
.replace(/\u0000/g, "")
|
|
137
|
+
.trim()
|
|
138
|
+
.substring(0, MAX_DELETION_REASON_LENGTH);
|
|
139
|
+
if (cleaned) {
|
|
140
|
+
deletionReason = cleaned;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
await ProjectService.deleteOneById({
|
|
144
|
+
id: projectId,
|
|
145
|
+
deletionReason: deletionReason,
|
|
146
|
+
props: await CommonAPI.getDatabaseCommonInteractionProps(req),
|
|
147
|
+
});
|
|
148
|
+
return Response.sendEmptySuccessResponse(req, res);
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
next(err);
|
|
152
|
+
}
|
|
153
|
+
});
|
|
90
154
|
/*
|
|
91
155
|
* Extends a project's trial. Master-admin only: this hands out free
|
|
92
156
|
* service and moves the customer's next invoice, so it is deliberately not
|
|
93
157
|
* reachable with project-level billing permissions - only OneUptime staff
|
|
94
158
|
* acting from the Admin Dashboard can call it.
|
|
95
159
|
*/
|
|
96
|
-
this.router.put(`${(
|
|
160
|
+
this.router.put(`${(_c = new this.entityType().getCrudApiPath()) === null || _c === void 0 ? void 0 : _c.toString()}/:id/extend-trial`, MasterAdminAuthorization.isAuthorizedMasterAdminMiddleware, async (req, res, next) => {
|
|
97
161
|
try {
|
|
98
162
|
if (!IsBillingEnabled) {
|
|
99
163
|
throw new BadDataException("Billing is not enabled for this server");
|
|
@@ -143,12 +207,101 @@ export default class ProjectAPI extends BaseAPI {
|
|
|
143
207
|
next(err);
|
|
144
208
|
}
|
|
145
209
|
});
|
|
210
|
+
/*
|
|
211
|
+
* Manually corrects a project's SMS/Call or AI balance. Master-admin only,
|
|
212
|
+
* for the same reason extend-trial is: it hands out (or claws back) paid
|
|
213
|
+
* service with no payment behind it, so project-level billing permissions
|
|
214
|
+
* must not reach it - only OneUptime staff acting from the Admin
|
|
215
|
+
* Dashboard.
|
|
216
|
+
*/
|
|
217
|
+
this.router.put(`${(_d = new this.entityType().getCrudApiPath()) === null || _d === void 0 ? void 0 : _d.toString()}/:id/adjust-balance`, MasterAdminAuthorization.isAuthorizedMasterAdminMiddleware, async (req, res, next) => {
|
|
218
|
+
try {
|
|
219
|
+
if (!IsBillingEnabled) {
|
|
220
|
+
throw new BadDataException("Billing is not enabled for this server");
|
|
221
|
+
}
|
|
222
|
+
const projectId = new ObjectID(req.params["id"]);
|
|
223
|
+
const body = req.body || {};
|
|
224
|
+
const data = body["data"] || {};
|
|
225
|
+
const balanceTypeValue = data["balanceType"];
|
|
226
|
+
const adjustmentTypeValue = data["adjustmentType"];
|
|
227
|
+
const amountInUSDValue = data["amountInUSD"];
|
|
228
|
+
const reasonValue = data["reason"];
|
|
229
|
+
if (!balanceTypeValue ||
|
|
230
|
+
typeof balanceTypeValue !== "string" ||
|
|
231
|
+
!Object.values(ProjectBalanceType).includes(balanceTypeValue)) {
|
|
232
|
+
throw new BadDataException(`Balance type must be one of: ${Object.values(ProjectBalanceType).join(", ")}`);
|
|
233
|
+
}
|
|
234
|
+
if (!adjustmentTypeValue ||
|
|
235
|
+
typeof adjustmentTypeValue !== "string" ||
|
|
236
|
+
!Object.values(BalanceAdjustmentType).includes(adjustmentTypeValue)) {
|
|
237
|
+
throw new BadDataException(`Adjustment type must be one of: ${Object.values(BalanceAdjustmentType).join(", ")}`);
|
|
238
|
+
}
|
|
239
|
+
/*
|
|
240
|
+
* The form posts dollars because that is what staff think in, but
|
|
241
|
+
* the column is cents. A JSON body can carry a numeric string, so
|
|
242
|
+
* accept both and reject anything that does not parse - Number("")
|
|
243
|
+
* and Number([]) are 0, which would otherwise read as a real
|
|
244
|
+
* "set to zero" instruction.
|
|
245
|
+
*/
|
|
246
|
+
if (typeof amountInUSDValue !== "number" &&
|
|
247
|
+
typeof amountInUSDValue !== "string") {
|
|
248
|
+
throw new BadDataException("Amount is not a valid number");
|
|
249
|
+
}
|
|
250
|
+
const amountInUSD = typeof amountInUSDValue === "number"
|
|
251
|
+
? amountInUSDValue
|
|
252
|
+
: Number(amountInUSDValue.trim());
|
|
253
|
+
if (!Number.isFinite(amountInUSD) ||
|
|
254
|
+
(typeof amountInUSDValue === "string" &&
|
|
255
|
+
amountInUSDValue.trim() === "")) {
|
|
256
|
+
throw new BadDataException("Amount is not a valid number");
|
|
257
|
+
}
|
|
258
|
+
if (typeof reasonValue !== "string" || !reasonValue.trim()) {
|
|
259
|
+
throw new BadDataException("A reason is required to adjust the balance");
|
|
260
|
+
}
|
|
261
|
+
/*
|
|
262
|
+
* Dollars carry at most two decimal places, and floating point
|
|
263
|
+
* multiplication does not (20.15 * 100 is 2014.9999...). Round to
|
|
264
|
+
* the nearest cent so the stored amount is the one that was typed.
|
|
265
|
+
*/
|
|
266
|
+
const amountInUSDCents = Math.round(amountInUSD * 100);
|
|
267
|
+
/*
|
|
268
|
+
* The master admin middleware verifies the token but does not put
|
|
269
|
+
* the decoded payload on the request, so read it again here - who
|
|
270
|
+
* moved the balance is the only audit trail this action has.
|
|
271
|
+
*/
|
|
272
|
+
let adjustedByUserId = undefined;
|
|
273
|
+
try {
|
|
274
|
+
const accessToken = UserMiddleware.getAccessTokenFromExpressRequest(req);
|
|
275
|
+
if (accessToken) {
|
|
276
|
+
adjustedByUserId = JSONWebToken.decode(accessToken).userId;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
catch (_a) {
|
|
280
|
+
// Only used for the log line - never block the adjustment on it.
|
|
281
|
+
}
|
|
282
|
+
const result = await ProjectService.adjustBalance({
|
|
283
|
+
projectId: projectId,
|
|
284
|
+
balanceType: balanceTypeValue,
|
|
285
|
+
adjustmentType: adjustmentTypeValue,
|
|
286
|
+
amountInUSDCents: amountInUSDCents,
|
|
287
|
+
reason: reasonValue,
|
|
288
|
+
adjustedByUserId: adjustedByUserId,
|
|
289
|
+
});
|
|
290
|
+
return Response.sendJsonObjectResponse(req, res, {
|
|
291
|
+
previousBalanceInUSDCents: result.previousBalanceInUSDCents,
|
|
292
|
+
newBalanceInUSDCents: result.newBalanceInUSDCents,
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
next(err);
|
|
297
|
+
}
|
|
298
|
+
});
|
|
146
299
|
/*
|
|
147
300
|
* This API lists all the projects where user is its team member.
|
|
148
301
|
* This API is usually used to show project selector dropdown in the UI
|
|
149
302
|
*/
|
|
150
|
-
this.router.post(`${(
|
|
151
|
-
.getCrudApiPath()) === null ||
|
|
303
|
+
this.router.post(`${(_e = new this.entityType()
|
|
304
|
+
.getCrudApiPath()) === null || _e === void 0 ? void 0 : _e.toString()}/list-user-projects`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
|
|
152
305
|
var _a, _b;
|
|
153
306
|
try {
|
|
154
307
|
if (!((_a = req.userAuthorization) === null || _a === void 0 ? void 0 : _a.userId)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectAPI.js","sourceRoot":"","sources":["../../../../Server/API/ProjectAPI.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ProjectAPI.js","sourceRoot":"","sources":["../../../../Server/API/ProjectAPI.ts"],"names":[],"mappings":"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"}
|
|
@@ -94,6 +94,20 @@ import { MASTER_PASSWORD_INVALID_MESSAGE } from "../../Types/StatusPage/MasterPa
|
|
|
94
94
|
import StatusPageSubscriberNotificationEventType from "../../Types/StatusPage/StatusPageSubscriberNotificationEventType";
|
|
95
95
|
import StatusPageSubscriberNotificationMethod from "../../Types/StatusPage/StatusPageSubscriberNotificationMethod";
|
|
96
96
|
import StatusPageSubscriberNotificationTemplateService, { Service as StatusPageSubscriberNotificationTemplateServiceClass, } from "../Services/StatusPageSubscriberNotificationTemplateService";
|
|
97
|
+
/*
|
|
98
|
+
* The status badge is hand-built SVG served as image/svg+xml, and SVG is a
|
|
99
|
+
* document - anything interpolated into it is markup, not text. A monitor
|
|
100
|
+
* status named `</text><script>...` would otherwise run on the status page
|
|
101
|
+
* origin for anyone who opens the badge URL directly.
|
|
102
|
+
*/
|
|
103
|
+
const escapeXml = (text) => {
|
|
104
|
+
return text
|
|
105
|
+
.replace(/&/g, "&")
|
|
106
|
+
.replace(/</g, "<")
|
|
107
|
+
.replace(/>/g, ">")
|
|
108
|
+
.replace(/"/g, """)
|
|
109
|
+
.replace(/'/g, "'");
|
|
110
|
+
};
|
|
97
111
|
const resolveStatusPageIdOrThrow = async (statusPageIdOrDomain) => {
|
|
98
112
|
/*
|
|
99
113
|
* Delegates to the service resolver so every endpoint shares its
|
|
@@ -370,8 +384,8 @@ export default class StatusPageAPI extends BaseAPI {
|
|
|
370
384
|
monitorGroupCurrentStatuses,
|
|
371
385
|
});
|
|
372
386
|
// Generate SVG badge
|
|
373
|
-
const statusName = (overallStatus === null || overallStatus === void 0 ? void 0 : overallStatus.name) || "Unknown";
|
|
374
|
-
const statusColor = ((_a = overallStatus === null || overallStatus === void 0 ? void 0 : overallStatus.color) === null || _a === void 0 ? void 0 : _a.toString()) || "#808080";
|
|
387
|
+
const statusName = escapeXml((overallStatus === null || overallStatus === void 0 ? void 0 : overallStatus.name) || "Unknown");
|
|
388
|
+
const statusColor = escapeXml(((_a = overallStatus === null || overallStatus === void 0 ? void 0 : overallStatus.color) === null || _a === void 0 ? void 0 : _a.toString()) || "#808080");
|
|
375
389
|
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="150" height="20">
|
|
376
390
|
<linearGradient id="b" x2="0" y2="100%">
|
|
377
391
|
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
|
|
@@ -394,6 +408,14 @@ export default class StatusPageAPI extends BaseAPI {
|
|
|
394
408
|
</svg>`;
|
|
395
409
|
res.setHeader("Content-Type", "image/svg+xml");
|
|
396
410
|
res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
|
|
411
|
+
/*
|
|
412
|
+
* The badge is only ever loaded through <img>, which ignores both of
|
|
413
|
+
* these. They exist for the case where someone opens the badge URL
|
|
414
|
+
* as a top-level document, where the SVG would otherwise be a
|
|
415
|
+
* scriptable document on this origin.
|
|
416
|
+
*/
|
|
417
|
+
res.setHeader("X-Content-Type-Options", "nosniff");
|
|
418
|
+
res.setHeader("Content-Security-Policy", "sandbox; script-src 'none'; object-src 'none'");
|
|
397
419
|
return res.send(svg);
|
|
398
420
|
}
|
|
399
421
|
catch (err) {
|
|
@@ -535,7 +557,9 @@ export default class StatusPageAPI extends BaseAPI {
|
|
|
535
557
|
this.router.post(`${(_r = new this.entityType()
|
|
536
558
|
.getCrudApiPath()) === null || _r === void 0 ? void 0 : _r.toString()}/master-page/:statusPageId`, UserMiddleware.getUserMiddleware, async (req, res, next) => {
|
|
537
559
|
try {
|
|
538
|
-
const
|
|
560
|
+
const statusPageIdParam = req.params["statusPageId"];
|
|
561
|
+
ObjectID.validateUUID(statusPageIdParam);
|
|
562
|
+
const objectId = new ObjectID(statusPageIdParam);
|
|
539
563
|
const select = {
|
|
540
564
|
_id: true,
|
|
541
565
|
slug: true,
|