@oneuptime/common 9.2.15 → 9.2.17
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/Alert.ts +11 -0
- package/Models/DatabaseModels/AlertCustomField.ts +7 -0
- package/Models/DatabaseModels/AlertFeed.ts +9 -0
- package/Models/DatabaseModels/AlertInternalNote.ts +7 -0
- package/Models/DatabaseModels/AlertNoteTemplate.ts +11 -0
- package/Models/DatabaseModels/AlertOwnerTeam.ts +11 -0
- package/Models/DatabaseModels/AlertOwnerUser.ts +11 -0
- package/Models/DatabaseModels/AlertSeverity.ts +4 -0
- package/Models/DatabaseModels/AlertState.ts +4 -0
- package/Models/DatabaseModels/AlertStateTimeline.ts +20 -0
- package/Models/DatabaseModels/ApiKey.ts +8 -0
- package/Models/DatabaseModels/ApiKeyPermission.ts +11 -0
- package/Models/DatabaseModels/BillingInvoice.ts +42 -9
- package/Models/DatabaseModels/CallLog.ts +30 -0
- package/Models/DatabaseModels/CodeRepository.ts +664 -0
- package/Models/DatabaseModels/Dashboard.ts +11 -0
- package/Models/DatabaseModels/Domain.ts +5 -0
- package/Models/DatabaseModels/EmailLog.ts +31 -0
- package/Models/DatabaseModels/Incident.ts +8 -0
- package/Models/DatabaseModels/IncidentCustomField.ts +7 -0
- package/Models/DatabaseModels/IncidentFeed.ts +17 -0
- package/Models/DatabaseModels/IncidentInternalNote.ts +7 -0
- package/Models/DatabaseModels/IncidentNoteTemplate.ts +11 -0
- package/Models/DatabaseModels/IncidentOwnerTeam.ts +11 -0
- package/Models/DatabaseModels/IncidentOwnerUser.ts +11 -0
- package/Models/DatabaseModels/IncidentPublicNote.ts +8 -0
- package/Models/DatabaseModels/IncidentSeverity.ts +4 -0
- package/Models/DatabaseModels/IncidentState.ts +4 -0
- package/Models/DatabaseModels/IncidentStateTimeline.ts +25 -0
- package/Models/DatabaseModels/IncidentTemplate.ts +18 -0
- package/Models/DatabaseModels/IncidentTemplateOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/IncidentTemplateOwnerUser.ts +6 -0
- package/Models/DatabaseModels/Index.ts +8 -0
- package/Models/DatabaseModels/Label.ts +6 -0
- package/Models/DatabaseModels/LlmLog.ts +818 -0
- package/Models/DatabaseModels/LlmProvider.ts +21 -0
- package/Models/DatabaseModels/Monitor.ts +9 -0
- package/Models/DatabaseModels/MonitorCustomField.ts +7 -0
- package/Models/DatabaseModels/MonitorFeed.ts +17 -0
- package/Models/DatabaseModels/MonitorGroup.ts +5 -0
- package/Models/DatabaseModels/MonitorGroupOwnerTeam.ts +11 -0
- package/Models/DatabaseModels/MonitorGroupOwnerUser.ts +11 -0
- package/Models/DatabaseModels/MonitorGroupResource.ts +10 -0
- package/Models/DatabaseModels/MonitorOwnerTeam.ts +11 -0
- package/Models/DatabaseModels/MonitorOwnerUser.ts +11 -0
- package/Models/DatabaseModels/MonitorProbe.ts +26 -2
- package/Models/DatabaseModels/MonitorSecret.ts +10 -0
- package/Models/DatabaseModels/MonitorStatus.ts +5 -0
- package/Models/DatabaseModels/MonitorStatusTimeline.ts +21 -0
- package/Models/DatabaseModels/MonitorTest.ts +18 -1
- package/Models/DatabaseModels/OnCallDutyPolicy.ts +6 -0
- package/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.ts +13 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +34 -1
- package/Models/DatabaseModels/OnCallDutyPolicyFeed.ts +17 -0
- package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +19 -0
- package/Models/DatabaseModels/OnCallDutyPolicyTimeLog.ts +16 -0
- package/Models/DatabaseModels/Probe.ts +11 -1
- package/Models/DatabaseModels/ProbeOwnerTeam.ts +11 -0
- package/Models/DatabaseModels/ProbeOwnerUser.ts +11 -0
- package/Models/DatabaseModels/Project.ts +222 -0
- package/Models/DatabaseModels/ProjectCallSMSConfig.ts +13 -0
- package/Models/DatabaseModels/ProjectSmtpConfig.ts +41 -6
- package/Models/DatabaseModels/ProjectSso.ts +17 -0
- package/Models/DatabaseModels/PromoCode.ts +20 -1
- package/Models/DatabaseModels/PushNotificationLog.ts +31 -0
- package/Models/DatabaseModels/Reseller.ts +12 -0
- package/Models/DatabaseModels/ResellerPlan.ts +13 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +8 -0
- package/Models/DatabaseModels/ScheduledMaintenanceCustomField.ts +7 -0
- package/Models/DatabaseModels/ScheduledMaintenanceFeed.ts +17 -0
- package/Models/DatabaseModels/ScheduledMaintenanceInternalNote.ts +7 -0
- package/Models/DatabaseModels/ScheduledMaintenanceNoteTemplate.ts +11 -0
- package/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.ts +11 -0
- package/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.ts +11 -0
- package/Models/DatabaseModels/ScheduledMaintenancePublicNote.ts +12 -0
- package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +17 -0
- package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +29 -0
- package/Models/DatabaseModels/ServiceCatalog.ts +6 -0
- package/Models/DatabaseModels/ServiceCatalogCodeRepository.ts +549 -0
- package/Models/DatabaseModels/ServiceCatalogDependency.ts +10 -0
- package/Models/DatabaseModels/ServiceCatalogMonitor.ts +10 -0
- package/Models/DatabaseModels/ServiceCatalogOwnerTeam.ts +10 -0
- package/Models/DatabaseModels/ServiceCatalogOwnerUser.ts +10 -0
- package/Models/DatabaseModels/ServiceCatalogTelemetryService.ts +10 -0
- package/Models/DatabaseModels/ShortLink.ts +4 -0
- package/Models/DatabaseModels/SmsLog.ts +31 -0
- package/Models/DatabaseModels/StatusPage.ts +6 -0
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +5 -0
- package/Models/DatabaseModels/StatusPageAnnouncementTemplate.ts +21 -0
- package/Models/DatabaseModels/StatusPageDomain.ts +10 -1
- package/Models/DatabaseModels/StatusPageFooterLink.ts +7 -0
- package/Models/DatabaseModels/StatusPageGroup.ts +8 -0
- package/Models/DatabaseModels/StatusPageHeaderLink.ts +5 -0
- package/Models/DatabaseModels/StatusPageOwnerTeam.ts +6 -0
- package/Models/DatabaseModels/StatusPageOwnerUser.ts +6 -0
- package/Models/DatabaseModels/StatusPageResource.ts +9 -0
- package/Models/DatabaseModels/StatusPageSso.ts +14 -0
- package/Models/DatabaseModels/StatusPageSubscriber.ts +5 -0
- package/Models/DatabaseModels/TableView.ts +12 -0
- package/Models/DatabaseModels/Team.ts +10 -0
- package/Models/DatabaseModels/TeamMember.ts +12 -0
- package/Models/DatabaseModels/TeamPermission.ts +11 -0
- package/Models/DatabaseModels/TelemetryException.ts +28 -0
- package/Models/DatabaseModels/TelemetryIngestionKey.ts +10 -0
- package/Models/DatabaseModels/TelemetryService.ts +6 -0
- package/Models/DatabaseModels/TelemetryUsageBilling.ts +15 -0
- package/Models/DatabaseModels/User.ts +9 -1
- package/Models/DatabaseModels/UserCall.ts +7 -0
- package/Models/DatabaseModels/UserEmail.ts +7 -0
- package/Models/DatabaseModels/UserNotificationRule.ts +13 -0
- package/Models/DatabaseModels/UserNotificationSetting.ts +10 -0
- package/Models/DatabaseModels/UserOnCallLog.ts +28 -2
- package/Models/DatabaseModels/UserSMS.ts +7 -0
- package/Models/DatabaseModels/Workflow.ts +6 -0
- package/Server/API/AIBillingAPI.ts +126 -0
- package/Server/API/GitHubAPI.ts +360 -0
- package/Server/API/IncidentAPI.ts +126 -0
- package/Server/EnvironmentConfig.ts +44 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.ts +79 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.ts +75 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.ts +32 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.ts +69 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.ts +111 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.ts +39 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
- package/Server/Services/AIBillingService.ts +247 -0
- package/Server/Services/AIService.ts +239 -0
- package/Server/Services/CodeRepositoryService.ts +10 -0
- package/Server/Services/IncidentService.ts +89 -0
- package/Server/Services/Index.ts +2 -0
- package/Server/Services/LlmLogService.ts +14 -0
- package/Server/Services/LlmProviderService.ts +58 -0
- package/Server/Services/ServiceCatalogCodeRepositoryService.ts +55 -0
- package/Server/Utils/AI/IncidentAIContextBuilder.ts +498 -0
- package/Server/Utils/CodeRepository/GitHub/GitHub.ts +226 -0
- package/Server/Utils/LLM/LLMService.ts +276 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +166 -0
- package/Server/Utils/Workspace/Slack/Slack.ts +134 -0
- package/Server/Utils/Workspace/Workspace.ts +126 -0
- package/Types/CodeRepository/CodeRepositoryType.ts +1 -1
- package/Types/Database/TableColumn.ts +1 -0
- package/Types/LlmLogStatus.ts +7 -0
- package/Types/Permission.ts +87 -0
- package/Types/ServiceCatalog/CodeRepositoryImprovementAction.ts +9 -0
- package/UI/Components/AI/AILoader.tsx +95 -0
- package/UI/Components/AI/GenerateFromAIModal.tsx +295 -0
- package/UI/Components/Modal/Modal.tsx +6 -1
- package/build/dist/Models/DatabaseModels/Alert.js +8 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertCustomField.js +6 -0
- package/build/dist/Models/DatabaseModels/AlertCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertFeed.js +8 -0
- package/build/dist/Models/DatabaseModels/AlertFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertInternalNote.js +6 -0
- package/build/dist/Models/DatabaseModels/AlertInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertNoteTemplate.js +9 -0
- package/build/dist/Models/DatabaseModels/AlertNoteTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js +11 -0
- package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerUser.js +11 -0
- package/build/dist/Models/DatabaseModels/AlertOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertSeverity.js +3 -0
- package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertState.js +3 -0
- package/build/dist/Models/DatabaseModels/AlertState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js +19 -0
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ApiKey.js +7 -0
- package/build/dist/Models/DatabaseModels/ApiKey.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ApiKeyPermission.js +11 -0
- package/build/dist/Models/DatabaseModels/ApiKeyPermission.js.map +1 -1
- package/build/dist/Models/DatabaseModels/BillingInvoice.js +42 -9
- package/build/dist/Models/DatabaseModels/BillingInvoice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CallLog.js +30 -0
- package/build/dist/Models/DatabaseModels/CallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CodeRepository.js +689 -0
- package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Dashboard.js +11 -0
- package/build/dist/Models/DatabaseModels/Dashboard.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Domain.js +5 -0
- package/build/dist/Models/DatabaseModels/Domain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/EmailLog.js +31 -0
- package/build/dist/Models/DatabaseModels/EmailLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +7 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentCustomField.js +6 -0
- package/build/dist/Models/DatabaseModels/IncidentCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentFeed.js +15 -0
- package/build/dist/Models/DatabaseModels/IncidentFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentInternalNote.js +6 -0
- package/build/dist/Models/DatabaseModels/IncidentInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentNoteTemplate.js +9 -0
- package/build/dist/Models/DatabaseModels/IncidentNoteTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js +11 -0
- package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js +11 -0
- package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +7 -0
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js +3 -0
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentState.js +3 -0
- package/build/dist/Models/DatabaseModels/IncidentState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +23 -0
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js +16 -0
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js +6 -0
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js +6 -0
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +7 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Label.js +6 -0
- package/build/dist/Models/DatabaseModels/Label.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LlmLog.js +856 -0
- package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -0
- package/build/dist/Models/DatabaseModels/LlmProvider.js +22 -0
- package/build/dist/Models/DatabaseModels/LlmProvider.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +8 -0
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorCustomField.js +6 -0
- package/build/dist/Models/DatabaseModels/MonitorCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorFeed.js +15 -0
- package/build/dist/Models/DatabaseModels/MonitorFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroup.js +5 -0
- package/build/dist/Models/DatabaseModels/MonitorGroup.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js +11 -0
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js +11 -0
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupResource.js +10 -0
- package/build/dist/Models/DatabaseModels/MonitorGroupResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js +11 -0
- package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js +11 -0
- package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorProbe.js +26 -2
- package/build/dist/Models/DatabaseModels/MonitorProbe.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorSecret.js +10 -0
- package/build/dist/Models/DatabaseModels/MonitorSecret.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatus.js +5 -0
- package/build/dist/Models/DatabaseModels/MonitorStatus.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +20 -0
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorTest.js +18 -1
- package/build/dist/Models/DatabaseModels/MonitorTest.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicy.js +5 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicy.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.js +12 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +33 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyFeed.js +15 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +18 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js +15 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Probe.js +11 -1
- package/build/dist/Models/DatabaseModels/Probe.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js +11 -0
- package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js +11 -0
- package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +235 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js +13 -0
- package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectSmtpConfig.js +40 -6
- package/build/dist/Models/DatabaseModels/ProjectSmtpConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectSso.js +16 -0
- package/build/dist/Models/DatabaseModels/ProjectSso.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PromoCode.js +20 -1
- package/build/dist/Models/DatabaseModels/PromoCode.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PushNotificationLog.js +30 -0
- package/build/dist/Models/DatabaseModels/PushNotificationLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Reseller.js +12 -0
- package/build/dist/Models/DatabaseModels/Reseller.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ResellerPlan.js +13 -0
- package/build/dist/Models/DatabaseModels/ResellerPlan.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +7 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js +6 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceFeed.js +15 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceInternalNote.js +6 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceNoteTemplate.js +9 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceNoteTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js +11 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js +11 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js +11 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +16 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +27 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalog.js +5 -0
- package/build/dist/Models/DatabaseModels/ServiceCatalog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogCodeRepository.js +565 -0
- package/build/dist/Models/DatabaseModels/ServiceCatalogCodeRepository.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServiceCatalogDependency.js +10 -0
- package/build/dist/Models/DatabaseModels/ServiceCatalogDependency.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogMonitor.js +10 -0
- package/build/dist/Models/DatabaseModels/ServiceCatalogMonitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogOwnerTeam.js +10 -0
- package/build/dist/Models/DatabaseModels/ServiceCatalogOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogOwnerUser.js +10 -0
- package/build/dist/Models/DatabaseModels/ServiceCatalogOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceCatalogTelemetryService.js +10 -0
- package/build/dist/Models/DatabaseModels/ServiceCatalogTelemetryService.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ShortLink.js +4 -0
- package/build/dist/Models/DatabaseModels/ShortLink.js.map +1 -1
- package/build/dist/Models/DatabaseModels/SmsLog.js +30 -0
- package/build/dist/Models/DatabaseModels/SmsLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPage.js +5 -0
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +4 -0
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js +19 -0
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js +10 -1
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageFooterLink.js +7 -0
- package/build/dist/Models/DatabaseModels/StatusPageFooterLink.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageGroup.js +7 -0
- package/build/dist/Models/DatabaseModels/StatusPageGroup.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageHeaderLink.js +5 -0
- package/build/dist/Models/DatabaseModels/StatusPageHeaderLink.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js +6 -0
- package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js +6 -0
- package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageResource.js +9 -0
- package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSso.js +13 -0
- package/build/dist/Models/DatabaseModels/StatusPageSso.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js +5 -0
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TableView.js +12 -0
- package/build/dist/Models/DatabaseModels/TableView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Team.js +9 -0
- package/build/dist/Models/DatabaseModels/Team.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamMember.js +12 -0
- package/build/dist/Models/DatabaseModels/TeamMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamPermission.js +11 -0
- package/build/dist/Models/DatabaseModels/TeamPermission.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryException.js +27 -0
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js +9 -0
- package/build/dist/Models/DatabaseModels/TelemetryIngestionKey.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryService.js +6 -0
- package/build/dist/Models/DatabaseModels/TelemetryService.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js +15 -0
- package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js.map +1 -1
- package/build/dist/Models/DatabaseModels/User.js +9 -1
- package/build/dist/Models/DatabaseModels/User.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserCall.js +7 -0
- package/build/dist/Models/DatabaseModels/UserCall.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserEmail.js +7 -0
- package/build/dist/Models/DatabaseModels/UserEmail.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserNotificationRule.js +13 -0
- package/build/dist/Models/DatabaseModels/UserNotificationRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserNotificationSetting.js +10 -0
- package/build/dist/Models/DatabaseModels/UserNotificationSetting.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js +28 -2
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserSMS.js +7 -0
- package/build/dist/Models/DatabaseModels/UserSMS.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Workflow.js +5 -0
- package/build/dist/Models/DatabaseModels/Workflow.js.map +1 -1
- package/build/dist/Server/API/AIBillingAPI.js +58 -0
- package/build/dist/Server/API/AIBillingAPI.js.map +1 -0
- package/build/dist/Server/API/GitHubAPI.js +207 -0
- package/build/dist/Server/API/GitHubAPI.js.map +1 -0
- package/build/dist/Server/API/IncidentAPI.js +84 -1
- package/build/dist/Server/API/IncidentAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +31 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765580181582-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.js +32 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765633554715-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.js +38 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765801357168-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.js +30 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765810218488-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.js +44 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765830758857-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1765834537501-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIBillingService.js +187 -0
- package/build/dist/Server/Services/AIBillingService.js.map +1 -0
- package/build/dist/Server/Services/AIService.js +185 -0
- package/build/dist/Server/Services/AIService.js.map +1 -0
- package/build/dist/Server/Services/CodeRepositoryService.js +9 -0
- package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -0
- package/build/dist/Server/Services/IncidentService.js +61 -0
- package/build/dist/Server/Services/IncidentService.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/LlmLogService.js +13 -0
- package/build/dist/Server/Services/LlmLogService.js.map +1 -0
- package/build/dist/Server/Services/LlmProviderService.js +65 -0
- package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
- package/build/dist/Server/Services/ServiceCatalogCodeRepositoryService.js +54 -0
- package/build/dist/Server/Services/ServiceCatalogCodeRepositoryService.js.map +1 -0
- package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js +408 -0
- package/build/dist/Server/Utils/AI/IncidentAIContextBuilder.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +163 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +225 -0
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +110 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +89 -0
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Workspace.js +80 -0
- package/build/dist/Server/Utils/Workspace/Workspace.js.map +1 -1
- package/build/dist/Types/CodeRepository/CodeRepositoryType.js +1 -1
- package/build/dist/Types/CodeRepository/CodeRepositoryType.js.map +1 -1
- package/build/dist/Types/Database/TableColumn.js.map +1 -1
- package/build/dist/Types/LlmLogStatus.js +8 -0
- package/build/dist/Types/LlmLogStatus.js.map +1 -0
- package/build/dist/Types/Permission.js +74 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/ServiceCatalog/CodeRepositoryImprovementAction.js +10 -0
- package/build/dist/Types/ServiceCatalog/CodeRepositoryImprovementAction.js.map +1 -0
- package/build/dist/UI/Components/AI/AILoader.js +64 -0
- package/build/dist/UI/Components/AI/AILoader.js.map +1 -0
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js +207 -0
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -0
- package/build/dist/UI/Components/Modal/Modal.js +6 -1
- package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
- package/package.json +1 -1
|
@@ -79,6 +79,7 @@ class UserCall extends BaseModel {
|
|
|
79
79
|
canReadOnRelationQuery: true,
|
|
80
80
|
title: "Project ID",
|
|
81
81
|
description: "ID of your OneUptime Project in which this object belongs",
|
|
82
|
+
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
82
83
|
})
|
|
83
84
|
@Column({
|
|
84
85
|
type: ColumnType.ObjectID,
|
|
@@ -98,6 +99,7 @@ class UserCall extends BaseModel {
|
|
|
98
99
|
unique: false,
|
|
99
100
|
type: TableColumnType.Phone,
|
|
100
101
|
canReadOnRelationQuery: true,
|
|
102
|
+
example: "+1-555-987-6543",
|
|
101
103
|
})
|
|
102
104
|
@Column({
|
|
103
105
|
type: ColumnType.Phone,
|
|
@@ -143,6 +145,7 @@ class UserCall extends BaseModel {
|
|
|
143
145
|
type: TableColumnType.ObjectID,
|
|
144
146
|
title: "User ID",
|
|
145
147
|
description: "User ID who this email belongs to",
|
|
148
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
146
149
|
})
|
|
147
150
|
@Column({
|
|
148
151
|
type: ColumnType.ObjectID,
|
|
@@ -189,6 +192,7 @@ class UserCall extends BaseModel {
|
|
|
189
192
|
title: "Created by User ID",
|
|
190
193
|
description:
|
|
191
194
|
"User ID who created this object (if this object was created by a User)",
|
|
195
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
192
196
|
})
|
|
193
197
|
@Column({
|
|
194
198
|
type: ColumnType.ObjectID,
|
|
@@ -235,6 +239,7 @@ class UserCall extends BaseModel {
|
|
|
235
239
|
title: "Deleted by User ID",
|
|
236
240
|
description:
|
|
237
241
|
"User ID who deleted this object (if this object was deleted by a User)",
|
|
242
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
238
243
|
})
|
|
239
244
|
@Column({
|
|
240
245
|
type: ColumnType.ObjectID,
|
|
@@ -253,6 +258,7 @@ class UserCall extends BaseModel {
|
|
|
253
258
|
description: "Is this verified?",
|
|
254
259
|
isDefaultValueColumn: true,
|
|
255
260
|
type: TableColumnType.Boolean,
|
|
261
|
+
example: true,
|
|
256
262
|
})
|
|
257
263
|
@Column({
|
|
258
264
|
type: ColumnType.Boolean,
|
|
@@ -275,6 +281,7 @@ class UserCall extends BaseModel {
|
|
|
275
281
|
forceGetDefaultValueOnCreate: () => {
|
|
276
282
|
return Text.generateRandomNumber(6);
|
|
277
283
|
},
|
|
284
|
+
example: "123456",
|
|
278
285
|
})
|
|
279
286
|
@Column({
|
|
280
287
|
type: ColumnType.ShortText,
|
|
@@ -79,6 +79,7 @@ class UserEmail extends BaseModel {
|
|
|
79
79
|
canReadOnRelationQuery: true,
|
|
80
80
|
title: "Project ID",
|
|
81
81
|
description: "ID of your OneUptime Project in which this object belongs",
|
|
82
|
+
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
82
83
|
})
|
|
83
84
|
@Column({
|
|
84
85
|
type: ColumnType.ObjectID,
|
|
@@ -98,6 +99,7 @@ class UserEmail extends BaseModel {
|
|
|
98
99
|
unique: false,
|
|
99
100
|
type: TableColumnType.Email,
|
|
100
101
|
canReadOnRelationQuery: true,
|
|
102
|
+
example: "john.smith@example.com",
|
|
101
103
|
})
|
|
102
104
|
@Column({
|
|
103
105
|
type: ColumnType.Email,
|
|
@@ -143,6 +145,7 @@ class UserEmail extends BaseModel {
|
|
|
143
145
|
type: TableColumnType.ObjectID,
|
|
144
146
|
title: "User ID",
|
|
145
147
|
description: "User ID who this email belongs to",
|
|
148
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
146
149
|
})
|
|
147
150
|
@Column({
|
|
148
151
|
type: ColumnType.ObjectID,
|
|
@@ -189,6 +192,7 @@ class UserEmail extends BaseModel {
|
|
|
189
192
|
title: "Created by User ID",
|
|
190
193
|
description:
|
|
191
194
|
"User ID who created this object (if this object was created by a User)",
|
|
195
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
192
196
|
})
|
|
193
197
|
@Column({
|
|
194
198
|
type: ColumnType.ObjectID,
|
|
@@ -235,6 +239,7 @@ class UserEmail extends BaseModel {
|
|
|
235
239
|
title: "Deleted by User ID",
|
|
236
240
|
description:
|
|
237
241
|
"User ID who deleted this object (if this object was deleted by a User)",
|
|
242
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
238
243
|
})
|
|
239
244
|
@Column({
|
|
240
245
|
type: ColumnType.ObjectID,
|
|
@@ -254,6 +259,7 @@ class UserEmail extends BaseModel {
|
|
|
254
259
|
isDefaultValueColumn: true,
|
|
255
260
|
type: TableColumnType.Boolean,
|
|
256
261
|
defaultValue: false,
|
|
262
|
+
example: true,
|
|
257
263
|
})
|
|
258
264
|
@Column({
|
|
259
265
|
type: ColumnType.Boolean,
|
|
@@ -276,6 +282,7 @@ class UserEmail extends BaseModel {
|
|
|
276
282
|
forceGetDefaultValueOnCreate: () => {
|
|
277
283
|
return Text.generateRandomNumber(6);
|
|
278
284
|
},
|
|
285
|
+
example: "123456",
|
|
279
286
|
})
|
|
280
287
|
@Column({
|
|
281
288
|
type: ColumnType.ShortText,
|
|
@@ -83,6 +83,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
83
83
|
canReadOnRelationQuery: true,
|
|
84
84
|
title: "Project ID",
|
|
85
85
|
description: "ID of your OneUptime Project in which this object belongs",
|
|
86
|
+
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
86
87
|
})
|
|
87
88
|
@Column({
|
|
88
89
|
type: ColumnType.ObjectID,
|
|
@@ -102,6 +103,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
102
103
|
unique: false,
|
|
103
104
|
type: TableColumnType.ShortText,
|
|
104
105
|
canReadOnRelationQuery: true,
|
|
106
|
+
example: "Send Notification When Incident Created",
|
|
105
107
|
})
|
|
106
108
|
@Column({
|
|
107
109
|
type: ColumnType.ShortText,
|
|
@@ -146,6 +148,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
146
148
|
type: TableColumnType.ObjectID,
|
|
147
149
|
title: "User ID",
|
|
148
150
|
description: "User ID who this email belongs to",
|
|
151
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
149
152
|
})
|
|
150
153
|
@Column({
|
|
151
154
|
type: ColumnType.ObjectID,
|
|
@@ -192,6 +195,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
192
195
|
title: "Created by User ID",
|
|
193
196
|
description:
|
|
194
197
|
"User ID who created this object (if this object was created by a User)",
|
|
198
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
195
199
|
})
|
|
196
200
|
@Column({
|
|
197
201
|
type: ColumnType.ObjectID,
|
|
@@ -238,6 +242,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
238
242
|
title: "Deleted by User ID",
|
|
239
243
|
description:
|
|
240
244
|
"User ID who deleted this object (if this object was deleted by a User)",
|
|
245
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
241
246
|
})
|
|
242
247
|
@Column({
|
|
243
248
|
type: ColumnType.ObjectID,
|
|
@@ -284,6 +289,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
284
289
|
canReadOnRelationQuery: true,
|
|
285
290
|
title: "User Call ID",
|
|
286
291
|
description: "ID of User Call in which this object belongs",
|
|
292
|
+
example: "9e8d7c6b-5a4f-3e2d-1c0b-9a8f7e6d5c4b",
|
|
287
293
|
})
|
|
288
294
|
@Column({
|
|
289
295
|
type: ColumnType.ObjectID,
|
|
@@ -330,6 +336,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
330
336
|
canReadOnRelationQuery: true,
|
|
331
337
|
title: "User Push ID",
|
|
332
338
|
description: "ID of User Push in which this object belongs",
|
|
339
|
+
example: "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
|
|
333
340
|
})
|
|
334
341
|
@Column({
|
|
335
342
|
type: ColumnType.ObjectID,
|
|
@@ -376,6 +383,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
376
383
|
canReadOnRelationQuery: true,
|
|
377
384
|
title: "User SMS ID",
|
|
378
385
|
description: "ID of User SMS in which this object belongs",
|
|
386
|
+
example: "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
|
|
379
387
|
})
|
|
380
388
|
@Column({
|
|
381
389
|
type: ColumnType.ObjectID,
|
|
@@ -423,6 +431,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
423
431
|
canReadOnRelationQuery: true,
|
|
424
432
|
title: "User WhatsApp ID",
|
|
425
433
|
description: "ID of User WhatsApp in which this object belongs",
|
|
434
|
+
example: "3c4d5e6f-7a8b-9c0d-1e2f-3a4b5c6d7e8f",
|
|
426
435
|
})
|
|
427
436
|
@Column({
|
|
428
437
|
type: ColumnType.ObjectID,
|
|
@@ -469,6 +478,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
469
478
|
canReadOnRelationQuery: true,
|
|
470
479
|
title: "User Email ID",
|
|
471
480
|
description: "ID of User Email in which this object belongs",
|
|
481
|
+
example: "4d5e6f7a-8b9c-0d1e-2f3a-4b5c6d7e8f9a",
|
|
472
482
|
})
|
|
473
483
|
@Column({
|
|
474
484
|
type: ColumnType.ObjectID,
|
|
@@ -491,6 +501,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
491
501
|
title: "Notify After Minutes",
|
|
492
502
|
description:
|
|
493
503
|
"How long should we wait before sending a notification to the user after the event has occurred?",
|
|
504
|
+
example: 5,
|
|
494
505
|
})
|
|
495
506
|
@Column({
|
|
496
507
|
type: ColumnType.Number,
|
|
@@ -538,6 +549,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
538
549
|
canReadOnRelationQuery: true,
|
|
539
550
|
title: "Incident Severity ID",
|
|
540
551
|
description: "ID of Incident Severity in which this object belongs",
|
|
552
|
+
example: "5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9a0b",
|
|
541
553
|
})
|
|
542
554
|
@Column({
|
|
543
555
|
type: ColumnType.ObjectID,
|
|
@@ -587,6 +599,7 @@ class UserNotificationRule extends BaseModel {
|
|
|
587
599
|
canReadOnRelationQuery: true,
|
|
588
600
|
title: "Alert Severity ID",
|
|
589
601
|
description: "ID of Alert Severity in which this object belongs",
|
|
602
|
+
example: "6f7a8b9c-0d1e-2f3a-4b5c-6d7e8f9a0b1c",
|
|
590
603
|
})
|
|
591
604
|
@Column({
|
|
592
605
|
type: ColumnType.ObjectID,
|
|
@@ -78,6 +78,7 @@ class UserNotificationSetting extends BaseModel {
|
|
|
78
78
|
canReadOnRelationQuery: true,
|
|
79
79
|
title: "Project ID",
|
|
80
80
|
description: "ID of your OneUptime Project in which this object belongs",
|
|
81
|
+
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
81
82
|
})
|
|
82
83
|
@Column({
|
|
83
84
|
type: ColumnType.ObjectID,
|
|
@@ -97,6 +98,7 @@ class UserNotificationSetting extends BaseModel {
|
|
|
97
98
|
unique: false,
|
|
98
99
|
type: TableColumnType.ShortText,
|
|
99
100
|
canReadOnRelationQuery: true,
|
|
101
|
+
example: "Incident Created",
|
|
100
102
|
})
|
|
101
103
|
@Column({
|
|
102
104
|
type: ColumnType.ShortText,
|
|
@@ -141,6 +143,7 @@ class UserNotificationSetting extends BaseModel {
|
|
|
141
143
|
type: TableColumnType.ObjectID,
|
|
142
144
|
title: "User ID",
|
|
143
145
|
description: "User ID who this email belongs to",
|
|
146
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
144
147
|
})
|
|
145
148
|
@Column({
|
|
146
149
|
type: ColumnType.ObjectID,
|
|
@@ -187,6 +190,7 @@ class UserNotificationSetting extends BaseModel {
|
|
|
187
190
|
title: "Created by User ID",
|
|
188
191
|
description:
|
|
189
192
|
"User ID who created this object (if this object was created by a User)",
|
|
193
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
190
194
|
})
|
|
191
195
|
@Column({
|
|
192
196
|
type: ColumnType.ObjectID,
|
|
@@ -233,6 +237,7 @@ class UserNotificationSetting extends BaseModel {
|
|
|
233
237
|
title: "Deleted by User ID",
|
|
234
238
|
description:
|
|
235
239
|
"User ID who deleted this object (if this object was deleted by a User)",
|
|
240
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
236
241
|
})
|
|
237
242
|
@Column({
|
|
238
243
|
type: ColumnType.ObjectID,
|
|
@@ -250,6 +255,7 @@ class UserNotificationSetting extends BaseModel {
|
|
|
250
255
|
isDefaultValueColumn: true,
|
|
251
256
|
type: TableColumnType.Boolean,
|
|
252
257
|
defaultValue: false,
|
|
258
|
+
example: true,
|
|
253
259
|
})
|
|
254
260
|
@Column({
|
|
255
261
|
type: ColumnType.Boolean,
|
|
@@ -266,6 +272,7 @@ class UserNotificationSetting extends BaseModel {
|
|
|
266
272
|
isDefaultValueColumn: true,
|
|
267
273
|
type: TableColumnType.Boolean,
|
|
268
274
|
defaultValue: false,
|
|
275
|
+
example: false,
|
|
269
276
|
})
|
|
270
277
|
@Column({
|
|
271
278
|
type: ColumnType.Boolean,
|
|
@@ -282,6 +289,7 @@ class UserNotificationSetting extends BaseModel {
|
|
|
282
289
|
isDefaultValueColumn: true,
|
|
283
290
|
type: TableColumnType.Boolean,
|
|
284
291
|
defaultValue: false,
|
|
292
|
+
example: false,
|
|
285
293
|
})
|
|
286
294
|
@Column({
|
|
287
295
|
type: ColumnType.Boolean,
|
|
@@ -298,6 +306,7 @@ class UserNotificationSetting extends BaseModel {
|
|
|
298
306
|
isDefaultValueColumn: true,
|
|
299
307
|
type: TableColumnType.Boolean,
|
|
300
308
|
defaultValue: false,
|
|
309
|
+
example: true,
|
|
301
310
|
})
|
|
302
311
|
@Column({
|
|
303
312
|
type: ColumnType.Boolean,
|
|
@@ -314,6 +323,7 @@ class UserNotificationSetting extends BaseModel {
|
|
|
314
323
|
isDefaultValueColumn: true,
|
|
315
324
|
type: TableColumnType.Boolean,
|
|
316
325
|
defaultValue: false,
|
|
326
|
+
example: false,
|
|
317
327
|
})
|
|
318
328
|
@Column({
|
|
319
329
|
type: ColumnType.Boolean,
|
|
@@ -91,6 +91,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
91
91
|
type: TableColumnType.ObjectID,
|
|
92
92
|
title: "User ID",
|
|
93
93
|
description: "User ID who this log belongs to",
|
|
94
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
94
95
|
})
|
|
95
96
|
@Column({
|
|
96
97
|
type: ColumnType.ObjectID,
|
|
@@ -134,6 +135,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
134
135
|
type: TableColumnType.ObjectID,
|
|
135
136
|
title: "Which team did the user belong to when the alert was sent?",
|
|
136
137
|
description: "Which team did the user belong to when the alert was sent?",
|
|
138
|
+
example: "8d0e1f2a-3b4c-5d6e-7f8a-9b0c1d2e3f4a",
|
|
137
139
|
})
|
|
138
140
|
@Column({
|
|
139
141
|
type: ColumnType.ObjectID,
|
|
@@ -180,6 +182,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
180
182
|
canReadOnRelationQuery: true,
|
|
181
183
|
title: "Project ID",
|
|
182
184
|
description: "ID of your OneUptime Project in which this object belongs",
|
|
185
|
+
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
183
186
|
})
|
|
184
187
|
@Column({
|
|
185
188
|
type: ColumnType.ObjectID,
|
|
@@ -228,6 +231,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
228
231
|
title: "On-Call Policy ID",
|
|
229
232
|
description:
|
|
230
233
|
"ID of your On-Call Policy which belongs to this execution log event.",
|
|
234
|
+
example: "9e1f2a3b-4c5d-6e7f-8a9b-0c1d2e3f4a5b",
|
|
231
235
|
})
|
|
232
236
|
@Column({
|
|
233
237
|
type: ColumnType.ObjectID,
|
|
@@ -277,6 +281,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
277
281
|
title: "On-Call Policy Execution Log ID",
|
|
278
282
|
description:
|
|
279
283
|
"ID of your On-Call Policy execution log which belongs to this log event.",
|
|
284
|
+
example: "0f1a2b3c-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
|
|
280
285
|
})
|
|
281
286
|
@Column({
|
|
282
287
|
type: ColumnType.ObjectID,
|
|
@@ -326,6 +331,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
326
331
|
title: "On-Call Policy Escalation Rule ID",
|
|
327
332
|
description:
|
|
328
333
|
"ID of your On-Call Policy Escalation Rule which belongs to this log event.",
|
|
334
|
+
example: "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
|
|
329
335
|
})
|
|
330
336
|
@Column({
|
|
331
337
|
type: ColumnType.ObjectID,
|
|
@@ -372,6 +378,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
372
378
|
required: false,
|
|
373
379
|
description:
|
|
374
380
|
"ID of the incident which triggered this on-call escalation policy.",
|
|
381
|
+
example: "2b3c4d5e-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
|
|
375
382
|
})
|
|
376
383
|
@Column({
|
|
377
384
|
type: ColumnType.ObjectID,
|
|
@@ -417,6 +424,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
417
424
|
required: false,
|
|
418
425
|
description:
|
|
419
426
|
"ID of the Alert which triggered this on-call escalation policy.",
|
|
427
|
+
example: "3c4d5e6f-7a8b-9c0d-1e2f-3a4b5c6d7e8f",
|
|
420
428
|
})
|
|
421
429
|
@Column({
|
|
422
430
|
type: ColumnType.ObjectID,
|
|
@@ -436,6 +444,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
436
444
|
title: "Status",
|
|
437
445
|
description: "Status of this execution",
|
|
438
446
|
canReadOnRelationQuery: false,
|
|
447
|
+
example: "Success",
|
|
439
448
|
})
|
|
440
449
|
@Column({
|
|
441
450
|
nullable: false,
|
|
@@ -455,6 +464,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
455
464
|
title: "Notification Event Type",
|
|
456
465
|
description: "Notification Event Type of this execution",
|
|
457
466
|
canReadOnRelationQuery: false,
|
|
467
|
+
example: "Incident Created",
|
|
458
468
|
})
|
|
459
469
|
@Column({
|
|
460
470
|
nullable: false,
|
|
@@ -504,6 +514,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
504
514
|
title: "On-Call Policy Execution Log ID",
|
|
505
515
|
description:
|
|
506
516
|
"ID of your On-Call Policy Execution Log where this timeline event belongs.",
|
|
517
|
+
example: "4d5e6f7a-8b9c-0d1e-2f3a-4b5c6d7e8f9a",
|
|
507
518
|
})
|
|
508
519
|
@Column({
|
|
509
520
|
type: ColumnType.ObjectID,
|
|
@@ -523,6 +534,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
523
534
|
title: "Status Message",
|
|
524
535
|
description: "Status message of this execution",
|
|
525
536
|
canReadOnRelationQuery: false,
|
|
537
|
+
example: "Notification sent successfully via email to user",
|
|
526
538
|
})
|
|
527
539
|
@Column({
|
|
528
540
|
nullable: false,
|
|
@@ -568,6 +580,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
568
580
|
title: "Created by User ID",
|
|
569
581
|
description:
|
|
570
582
|
"User ID who created this object (if this object was created by a User)",
|
|
583
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
571
584
|
})
|
|
572
585
|
@Column({
|
|
573
586
|
type: ColumnType.ObjectID,
|
|
@@ -614,6 +627,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
614
627
|
title: "Deleted by User ID",
|
|
615
628
|
description:
|
|
616
629
|
"User ID who deleted this object (if this object was deleted by a User)",
|
|
630
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
617
631
|
})
|
|
618
632
|
@Column({
|
|
619
633
|
type: ColumnType.ObjectID,
|
|
@@ -659,6 +673,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
659
673
|
title: "Deleted by User ID",
|
|
660
674
|
description:
|
|
661
675
|
"User ID who acknowledged this object (if this object was acknowledged by a User)",
|
|
676
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
662
677
|
})
|
|
663
678
|
@Column({
|
|
664
679
|
type: ColumnType.ObjectID,
|
|
@@ -673,7 +688,10 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
673
688
|
|
|
674
689
|
update: [],
|
|
675
690
|
})
|
|
676
|
-
@TableColumn({
|
|
691
|
+
@TableColumn({
|
|
692
|
+
type: TableColumnType.Date,
|
|
693
|
+
example: "2024-01-15T10:30:00Z",
|
|
694
|
+
})
|
|
677
695
|
@Column({
|
|
678
696
|
type: ColumnType.Date,
|
|
679
697
|
nullable: true,
|
|
@@ -693,7 +711,13 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
693
711
|
read: [],
|
|
694
712
|
update: [],
|
|
695
713
|
})
|
|
696
|
-
@TableColumn({
|
|
714
|
+
@TableColumn({
|
|
715
|
+
type: TableColumnType.JSON,
|
|
716
|
+
example: {
|
|
717
|
+
"rule-1": "2024-01-15T10:30:00Z",
|
|
718
|
+
"rule-2": "2024-01-15T10:35:00Z",
|
|
719
|
+
},
|
|
720
|
+
})
|
|
697
721
|
@Column({
|
|
698
722
|
type: ColumnType.JSON,
|
|
699
723
|
nullable: true,
|
|
@@ -738,6 +762,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
738
762
|
title: "On Call Schedule ID",
|
|
739
763
|
description:
|
|
740
764
|
"Which schedule ID did the user belong to when the alert was sent?",
|
|
765
|
+
example: "5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9a0b",
|
|
741
766
|
})
|
|
742
767
|
@Column({
|
|
743
768
|
type: ColumnType.ObjectID,
|
|
@@ -781,6 +806,7 @@ export default class UserOnCallLog extends BaseModel {
|
|
|
781
806
|
type: TableColumnType.ObjectID,
|
|
782
807
|
title: "Overridden by User ID",
|
|
783
808
|
description: "User ID who overrode this alert",
|
|
809
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
784
810
|
})
|
|
785
811
|
@Column({
|
|
786
812
|
type: ColumnType.ObjectID,
|
|
@@ -79,6 +79,7 @@ class UserSMS extends BaseModel {
|
|
|
79
79
|
canReadOnRelationQuery: true,
|
|
80
80
|
title: "Project ID",
|
|
81
81
|
description: "ID of your OneUptime Project in which this object belongs",
|
|
82
|
+
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
82
83
|
})
|
|
83
84
|
@Column({
|
|
84
85
|
type: ColumnType.ObjectID,
|
|
@@ -98,6 +99,7 @@ class UserSMS extends BaseModel {
|
|
|
98
99
|
unique: false,
|
|
99
100
|
type: TableColumnType.Phone,
|
|
100
101
|
canReadOnRelationQuery: true,
|
|
102
|
+
example: "+1-555-123-4567",
|
|
101
103
|
})
|
|
102
104
|
@Column({
|
|
103
105
|
type: ColumnType.Phone,
|
|
@@ -143,6 +145,7 @@ class UserSMS extends BaseModel {
|
|
|
143
145
|
type: TableColumnType.ObjectID,
|
|
144
146
|
title: "User ID",
|
|
145
147
|
description: "User ID who this email belongs to",
|
|
148
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
146
149
|
})
|
|
147
150
|
@Column({
|
|
148
151
|
type: ColumnType.ObjectID,
|
|
@@ -189,6 +192,7 @@ class UserSMS extends BaseModel {
|
|
|
189
192
|
title: "Created by User ID",
|
|
190
193
|
description:
|
|
191
194
|
"User ID who created this object (if this object was created by a User)",
|
|
195
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
192
196
|
})
|
|
193
197
|
@Column({
|
|
194
198
|
type: ColumnType.ObjectID,
|
|
@@ -235,6 +239,7 @@ class UserSMS extends BaseModel {
|
|
|
235
239
|
title: "Deleted by User ID",
|
|
236
240
|
description:
|
|
237
241
|
"User ID who deleted this object (if this object was deleted by a User)",
|
|
242
|
+
example: "7c9d8e0f-a1b2-4c3d-9e5f-8a7b9c0d1e2f",
|
|
238
243
|
})
|
|
239
244
|
@Column({
|
|
240
245
|
type: ColumnType.ObjectID,
|
|
@@ -254,6 +259,7 @@ class UserSMS extends BaseModel {
|
|
|
254
259
|
isDefaultValueColumn: true,
|
|
255
260
|
type: TableColumnType.Boolean,
|
|
256
261
|
defaultValue: false,
|
|
262
|
+
example: true,
|
|
257
263
|
})
|
|
258
264
|
@Column({
|
|
259
265
|
type: ColumnType.Boolean,
|
|
@@ -276,6 +282,7 @@ class UserSMS extends BaseModel {
|
|
|
276
282
|
forceGetDefaultValueOnCreate: () => {
|
|
277
283
|
return Text.generateRandomNumber(6);
|
|
278
284
|
},
|
|
285
|
+
example: "123456",
|
|
279
286
|
})
|
|
280
287
|
@Column({
|
|
281
288
|
type: ColumnType.ShortText,
|
|
@@ -139,6 +139,7 @@ export default class Workflow extends BaseModel {
|
|
|
139
139
|
canReadOnRelationQuery: true,
|
|
140
140
|
title: "Project ID",
|
|
141
141
|
description: "ID of your OneUptime Project in which this object belongs",
|
|
142
|
+
example: "5f8b9c0d-e1a2-4b3c-8d5e-6f7a8b9c0d1e",
|
|
142
143
|
})
|
|
143
144
|
@Column({
|
|
144
145
|
type: ColumnType.ObjectID,
|
|
@@ -173,6 +174,7 @@ export default class Workflow extends BaseModel {
|
|
|
173
174
|
canReadOnRelationQuery: true,
|
|
174
175
|
title: "Name",
|
|
175
176
|
description: "Any friendly name of this object",
|
|
177
|
+
example: "Incident Response Automation",
|
|
176
178
|
})
|
|
177
179
|
@Column({
|
|
178
180
|
nullable: false,
|
|
@@ -232,6 +234,8 @@ export default class Workflow extends BaseModel {
|
|
|
232
234
|
type: TableColumnType.LongText,
|
|
233
235
|
title: "Description",
|
|
234
236
|
description: "Friendly description that will help you remember",
|
|
237
|
+
example:
|
|
238
|
+
"Automatically creates incidents, notifies team members, and escalates critical issues based on alert severity",
|
|
235
239
|
})
|
|
236
240
|
@Column({
|
|
237
241
|
nullable: true,
|
|
@@ -297,6 +301,7 @@ export default class Workflow extends BaseModel {
|
|
|
297
301
|
title: "Created by User ID",
|
|
298
302
|
description:
|
|
299
303
|
"User ID who created this object (if this object was created by a User)",
|
|
304
|
+
example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
|
300
305
|
})
|
|
301
306
|
@Column({
|
|
302
307
|
type: ColumnType.ObjectID,
|
|
@@ -353,6 +358,7 @@ export default class Workflow extends BaseModel {
|
|
|
353
358
|
title: "Deleted by User ID",
|
|
354
359
|
description:
|
|
355
360
|
"User ID who deleted this object (if this object was deleted by a User)",
|
|
361
|
+
example: "b2c3d4e5-f6a7-8901-bcde-f2345678901a",
|
|
356
362
|
})
|
|
357
363
|
@Column({
|
|
358
364
|
type: ColumnType.ObjectID,
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import UserMiddleware from "../Middleware/UserAuthorization";
|
|
2
|
+
import AIBillingService from "../Services/AIBillingService";
|
|
3
|
+
import { IsBillingEnabled } from "../EnvironmentConfig";
|
|
4
|
+
import Express, {
|
|
5
|
+
ExpressRequest,
|
|
6
|
+
ExpressResponse,
|
|
7
|
+
ExpressRouter,
|
|
8
|
+
NextFunction,
|
|
9
|
+
OneUptimeRequest,
|
|
10
|
+
} from "../Utils/Express";
|
|
11
|
+
import Response from "../Utils/Response";
|
|
12
|
+
import BadDataException from "../../Types/Exception/BadDataException";
|
|
13
|
+
import JSONFunctions from "../../Types/JSONFunctions";
|
|
14
|
+
import ObjectID from "../../Types/ObjectID";
|
|
15
|
+
import Permission, { UserPermission } from "../../Types/Permission";
|
|
16
|
+
import PositiveNumber from "../../Types/PositiveNumber";
|
|
17
|
+
|
|
18
|
+
const router: ExpressRouter = Express.getRouter();
|
|
19
|
+
|
|
20
|
+
router.post(
|
|
21
|
+
"/ai/recharge",
|
|
22
|
+
UserMiddleware.getUserMiddleware,
|
|
23
|
+
async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
|
|
24
|
+
try {
|
|
25
|
+
if (!IsBillingEnabled) {
|
|
26
|
+
return Response.sendErrorResponse(
|
|
27
|
+
req,
|
|
28
|
+
res,
|
|
29
|
+
new BadDataException("Billing is not enabled"),
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let amount: number | PositiveNumber = JSONFunctions.deserializeValue(
|
|
34
|
+
req.body.amount,
|
|
35
|
+
) as number | PositiveNumber;
|
|
36
|
+
|
|
37
|
+
if (amount instanceof PositiveNumber) {
|
|
38
|
+
amount = amount.toNumber();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (typeof amount === "string") {
|
|
42
|
+
amount = parseInt(amount);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const projectId: ObjectID = JSONFunctions.deserializeValue(
|
|
46
|
+
req.body.projectId,
|
|
47
|
+
) as ObjectID;
|
|
48
|
+
|
|
49
|
+
if (!amount || typeof amount !== "number") {
|
|
50
|
+
return Response.sendErrorResponse(
|
|
51
|
+
req,
|
|
52
|
+
res,
|
|
53
|
+
new BadDataException("Invalid amount"),
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (amount > 1000) {
|
|
58
|
+
return Response.sendErrorResponse(
|
|
59
|
+
req,
|
|
60
|
+
res,
|
|
61
|
+
new BadDataException("Amount cannot be greater than 1000"),
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (amount < 20) {
|
|
66
|
+
return Response.sendErrorResponse(
|
|
67
|
+
req,
|
|
68
|
+
res,
|
|
69
|
+
new BadDataException("Amount cannot be less than 20"),
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
if (!projectId || !projectId.toString()) {
|
|
74
|
+
return Response.sendErrorResponse(
|
|
75
|
+
req,
|
|
76
|
+
res,
|
|
77
|
+
new BadDataException("Invalid projectId"),
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// get permissions. if user has permission to recharge, then recharge
|
|
82
|
+
|
|
83
|
+
if (
|
|
84
|
+
!(req as OneUptimeRequest).userTenantAccessPermission ||
|
|
85
|
+
!(req as OneUptimeRequest).userTenantAccessPermission![
|
|
86
|
+
projectId.toString()
|
|
87
|
+
]
|
|
88
|
+
) {
|
|
89
|
+
return Response.sendErrorResponse(
|
|
90
|
+
req,
|
|
91
|
+
res,
|
|
92
|
+
new BadDataException("Permission for this user not found"),
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const permissions: Array<Permission> = (
|
|
97
|
+
req as OneUptimeRequest
|
|
98
|
+
).userTenantAccessPermission![projectId.toString()]!.permissions.map(
|
|
99
|
+
(permission: UserPermission) => {
|
|
100
|
+
return permission.permission;
|
|
101
|
+
},
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
if (
|
|
105
|
+
permissions.includes(Permission.ProjectOwner) ||
|
|
106
|
+
permissions.includes(Permission.ManageProjectBilling)
|
|
107
|
+
) {
|
|
108
|
+
await AIBillingService.rechargeBalance(projectId, amount);
|
|
109
|
+
} else {
|
|
110
|
+
return Response.sendErrorResponse(
|
|
111
|
+
req,
|
|
112
|
+
res,
|
|
113
|
+
new BadDataException(
|
|
114
|
+
"User does not have permission to recharge. You need any one of these permissions - ProjectOwner, CanManageProjectBilling",
|
|
115
|
+
),
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
} catch (err) {
|
|
119
|
+
return next(err);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return Response.sendEmptySuccessResponse(req, res);
|
|
123
|
+
},
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
export default router;
|