@oneuptime/common 11.7.1 → 11.7.3
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/AnalyticsModels/KubernetesCostAllocation.ts +103 -0
- package/Models/DatabaseModels/DashboardDomain.ts +1 -0
- package/Models/DatabaseModels/Incident.ts +2 -0
- package/Models/DatabaseModels/IncidentEpisode.ts +1 -0
- package/Models/DatabaseModels/IncidentEpisodePublicNote.ts +1 -0
- package/Models/DatabaseModels/IncidentEpisodeStateTimeline.ts +1 -0
- package/Models/DatabaseModels/IncidentPublicNote.ts +1 -0
- package/Models/DatabaseModels/IncidentStateTimeline.ts +1 -0
- package/Models/DatabaseModels/Monitor.ts +1 -0
- package/Models/DatabaseModels/MonitorStatusTimeline.ts +1 -0
- package/Models/DatabaseModels/NetworkSite.ts +1 -0
- package/Models/DatabaseModels/NetworkSiteStatusTimeline.ts +1 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +1 -0
- package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +2 -0
- package/Models/DatabaseModels/Probe.ts +13 -13
- package/Models/DatabaseModels/ScheduledMaintenance.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenancePublicNote.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +1 -0
- package/Models/DatabaseModels/StatusPage.ts +1 -0
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +1 -0
- package/Models/DatabaseModels/StatusPageDomain.ts +1 -0
- package/Models/DatabaseModels/TableView.ts +40 -0
- package/Models/DatabaseModels/WorkspaceNotificationSummary.ts +1 -0
- package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +11 -0
- package/Server/API/BaseAPI.ts +17 -1
- package/Server/API/CommonAPI.ts +32 -0
- package/Server/API/MicrosoftTeamsAPI.ts +99 -2
- package/Server/API/ProbeAPI.ts +2 -0
- package/Server/API/SlackAPI.ts +62 -0
- package/Server/API/StatusPageAPI.ts +157 -192
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785140242697-AddHotQueryIndexes.ts +89 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785148065137-AddHotQueryIndexesSecondPass.ts +61 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785240000000-RepairCrossProjectMonitorStatusReferences.ts +280 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.ts +13 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
- package/Server/Services/DatabaseService.ts +11 -3
- package/Server/Services/MonitorGroupService.ts +145 -0
- package/Server/Services/MonitorService.ts +231 -30
- package/Server/Services/ProbeService.ts +319 -16
- package/Server/Services/StatusPageService.ts +72 -42
- package/Server/Services/WorkspaceNotificationRuleService.ts +232 -2
- package/Server/Utils/Database/PostgresErrorTranslator.ts +131 -0
- package/Server/Utils/Monitor/MonitorResource.ts +88 -35
- package/Server/Utils/Monitor/MonitorStatusTimeline.ts +21 -1
- package/Server/Utils/Monitor/MonitorStepsProjectValidator.ts +158 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +706 -6
- package/Tests/Models/AnalyticsModels/KubernetesCostAllocation.test.ts +16 -0
- package/Tests/Models/DatabaseModels/ProbeColumnAccessControl.test.ts +103 -0
- package/Tests/Server/API/BaseAPIUpdateNoOp.test.ts +135 -0
- package/Tests/Server/API/CommonAPIAuthGuard.test.ts +317 -0
- package/Tests/Server/API/MicrosoftTeamsManifest.test.ts +228 -0
- package/Tests/Server/API/ProbeAPI.test.ts +6 -0
- package/Tests/Server/API/ZZVerifyChatsAuth.test.ts +167 -0
- package/Tests/Server/Services/AddHotQueryIndexesMigration.test.ts +255 -0
- package/Tests/Server/Services/AddHotQueryIndexesSecondPassMigration.test.ts +258 -0
- package/Tests/Server/Services/DatabaseServiceSanitizeUpdateData.test.ts +1 -1
- package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +121 -0
- package/Tests/Server/Services/HeartbeatWriteFastPathSafety.test.ts +200 -0
- package/Tests/Server/Services/HookFreeWriteSafetySecondPass.test.ts +181 -0
- package/Tests/Server/Services/MonitorGroupServiceBatchedStatuses.test.ts +513 -0
- package/Tests/Server/Services/MonitorResourceProbeAgreementReuse.test.ts +492 -0
- package/Tests/Server/Services/MonitorServiceProbeSelection.test.ts +401 -0
- package/Tests/Server/Services/MonitorStatusTimelineFastPath.test.ts +453 -0
- package/Tests/Server/Services/ProbeAuthKeyCacheAndHeartbeat.test.ts +679 -0
- package/Tests/Server/Services/ServiceLevelObjectiveService.test.ts +3 -3
- package/Tests/Server/Services/StatusPageDomainResolutionCache.test.ts +245 -0
- package/Tests/Server/Services/StatusPageOverviewTimelineWindow.test.ts +283 -0
- package/Tests/Server/Services/StatusPageServiceMcp.test.ts +17 -1
- package/Tests/Server/Services/StatusPageServiceMonitorGroupBatching.test.ts +331 -0
- package/Tests/Server/Services/UserOnCallLogClaimNotificationRule.test.ts +12 -12
- package/Tests/Server/Services/WorkspaceNotificationRuleChats.test.ts +1390 -0
- package/Tests/Server/Utils/AI/Insights/InsightFixRouting.test.ts +4 -4
- package/Tests/Server/Utils/AI/Insights/InsightScanner.test.ts +2 -2
- package/Tests/Server/Utils/AI/Insights/InsightStore.test.ts +1 -3
- package/Tests/Server/Utils/AI/Insights/InsightStoreHardening.test.ts +1 -3
- package/Tests/Server/Utils/AI/Insights/InsightTriage.test.ts +1 -1
- package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +5 -5
- package/Tests/Server/Utils/Alert/AlertPrivacyFilter.test.ts +187 -0
- package/Tests/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.test.ts +170 -0
- package/Tests/Server/Utils/Database/PostgresErrorTranslator.test.ts +125 -0
- package/Tests/Server/Utils/Incident/IncidentPrivacyFilter.test.ts +264 -0
- package/Tests/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.test.ts +175 -0
- package/Tests/Server/Utils/Monitor/MonitorStepsProjectValidator.test.ts +181 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +1 -1
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +2 -2
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelsList.test.ts +341 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChats.test.ts +2175 -0
- package/Tests/Server/Utils/Workspace/SlackChannelsList.test.ts +585 -0
- package/Tests/Types/Billing/MeteredPlan.test.ts +46 -0
- package/Tests/Types/JSONFunctions.test.ts +103 -1
- package/Tests/Types/Workspace/NotificationRules/NotificationRuleCondition.test.ts +219 -1
- package/Tests/UI/Components/BulkUpdateForm.test.tsx +174 -0
- package/Tests/UI/Components/CardModelDetailEdit.test.tsx +315 -0
- package/Tests/UI/Components/ModelDetailSelect.test.tsx +229 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableBulkSelectAll.test.tsx +1258 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableColumnCustomization.test.tsx +679 -0
- package/Tests/UI/Components/ModelTable/ColumnCustomizationModal.test.tsx +572 -0
- package/Tests/UI/Components/ModelTable/ColumnPreference.test.ts +1678 -0
- package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +1094 -0
- package/Tests/UI/Components/ModelTableExportFromColumns.test.ts +153 -0
- package/Tests/UI/Components/MonacoLoader.test.ts +67 -0
- package/Tests/UI/Components/MonacoRuntime.test.ts +121 -0
- package/Tests/UI/Components/TableBulkCsvExport.test.tsx +212 -3
- package/Tests/UI/Utils/Project.test.ts +809 -0
- package/Tests/UI/Utils/TableColumnsToCsv.test.ts +360 -0
- package/Tests/Utils/Alerts/AlertMetricType.test.ts +143 -0
- package/Tests/Utils/Dashboard/VariableUrlState.test.ts +219 -0
- package/Tests/Utils/Incident/IncidentMetricType.test.ts +174 -0
- package/Tests/Utils/Monitor/MonitorProbeSelectionUtil.test.ts +145 -0
- package/Tests/Utils/StatusPage/ResourceUptime.test.ts +263 -0
- package/Tests/Utils/UserPreferences.test.ts +563 -0
- package/Types/JSONFunctions.ts +7 -2
- package/Types/Kubernetes/KubernetesCostIngest.ts +37 -1
- package/Types/Workspace/NotificationRules/BaseNotificationRule.ts +4 -0
- package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +25 -10
- package/Types/Workspace/WorkspaceMessagePayload.ts +1 -0
- package/UI/Components/BulkUpdate/BulkUpdateForm.tsx +63 -8
- package/UI/Components/CodeEditor/CodeEditor.tsx +3 -0
- package/UI/Components/CodeEditor/MonacoLoader.ts +36 -0
- package/UI/Components/Forms/ModelForm.tsx +41 -18
- package/UI/Components/MasterPage/MasterPage.tsx +65 -0
- package/UI/Components/ModelDetail/CardModelDetail.tsx +23 -1
- package/UI/Components/ModelDetail/ModelDetail.tsx +46 -1
- package/UI/Components/ModelTable/BaseModelTable.tsx +687 -34
- package/UI/Components/ModelTable/Column.ts +29 -0
- package/UI/Components/ModelTable/ColumnCustomizationModal.tsx +420 -0
- package/UI/Components/ModelTable/ColumnPreference.ts +482 -0
- package/UI/Components/ModelTable/CustomFieldColumns.tsx +326 -0
- package/UI/Components/ModelTable/ExportFromColumns.ts +57 -0
- package/UI/Components/ModelTable/TableView.tsx +24 -2
- package/UI/Components/ModelTable/useCustomFieldColumns.ts +150 -0
- package/UI/Components/Navbar/NavBar.tsx +66 -1
- package/UI/Components/SideMenu/SideMenu.tsx +24 -4
- package/UI/Components/Table/Table.tsx +66 -14
- package/UI/Components/Table/TableRow.tsx +180 -175
- package/UI/Components/Table/Types/Column.ts +20 -0
- package/UI/Utils/Project.ts +214 -18
- package/UI/Utils/TableColumnsToCsv.ts +86 -6
- package/UI/esbuild-config.js +34 -0
- package/Utils/Monitor/MonitorProbeSelectionUtil.ts +72 -0
- package/Utils/UserPreferences.ts +53 -0
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js +86 -0
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DashboardDomain.js +1 -0
- package/build/dist/Models/DatabaseModels/DashboardDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +2 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +1 -0
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkSite.js +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +1 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +2 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Probe.js +13 -13
- package/build/dist/Models/DatabaseModels/Probe.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPage.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TableView.js +40 -0
- package/build/dist/Models/DatabaseModels/TableView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationSummary.js +1 -0
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationSummary.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
- package/build/dist/Server/API/BaseAPI.js +12 -1
- package/build/dist/Server/API/BaseAPI.js.map +1 -1
- package/build/dist/Server/API/CommonAPI.js +21 -0
- package/build/dist/Server/API/CommonAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +72 -2
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/ProbeAPI.js +2 -0
- package/build/dist/Server/API/ProbeAPI.js.map +1 -1
- package/build/dist/Server/API/SlackAPI.js +44 -0
- package/build/dist/Server/API/SlackAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +98 -152
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785140242697-AddHotQueryIndexes.js +36 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785140242697-AddHotQueryIndexes.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785148065137-AddHotQueryIndexesSecondPass.js +26 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785148065137-AddHotQueryIndexesSecondPass.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785240000000-RepairCrossProjectMonitorStatusReferences.js +254 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785240000000-RepairCrossProjectMonitorStatusReferences.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +10 -2
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/MonitorGroupService.js +118 -0
- package/build/dist/Server/Services/MonitorGroupService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +198 -24
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/ProbeService.js +238 -9
- package/build/dist/Server/Services/ProbeService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +46 -39
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +178 -3
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js +80 -0
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +67 -29
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +31 -14
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js +117 -0
- package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +549 -7
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/JSONFunctions.js +8 -3
- package/build/dist/Types/JSONFunctions.js.map +1 -1
- package/build/dist/Types/Kubernetes/KubernetesCostIngest.js.map +1 -1
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +17 -7
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js +37 -11
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js.map +1 -1
- package/build/dist/UI/Components/CodeEditor/CodeEditor.js +2 -0
- package/build/dist/UI/Components/CodeEditor/CodeEditor.js.map +1 -1
- package/build/dist/UI/Components/CodeEditor/MonacoLoader.js +34 -0
- package/build/dist/UI/Components/CodeEditor/MonacoLoader.js.map +1 -0
- package/build/dist/UI/Components/Forms/ModelForm.js +37 -17
- package/build/dist/UI/Components/Forms/ModelForm.js.map +1 -1
- package/build/dist/UI/Components/MasterPage/MasterPage.js +50 -1
- package/build/dist/UI/Components/MasterPage/MasterPage.js.map +1 -1
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +22 -1
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
- package/build/dist/UI/Components/ModelDetail/ModelDetail.js +31 -1
- package/build/dist/UI/Components/ModelDetail/ModelDetail.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +472 -27
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js +189 -0
- package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/ColumnPreference.js +258 -0
- package/build/dist/UI/Components/ModelTable/ColumnPreference.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js +168 -0
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/ExportFromColumns.js +30 -0
- package/build/dist/UI/Components/ModelTable/ExportFromColumns.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/TableView.js +13 -2
- package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js +84 -0
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js.map +1 -0
- package/build/dist/UI/Components/Navbar/NavBar.js +39 -1
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenu.js +15 -5
- package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
- package/build/dist/UI/Components/Table/Table.js +46 -13
- package/build/dist/UI/Components/Table/Table.js.map +1 -1
- package/build/dist/UI/Components/Table/TableRow.js +11 -6
- package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
- package/build/dist/UI/Utils/Project.js +161 -15
- package/build/dist/UI/Utils/Project.js.map +1 -1
- package/build/dist/UI/Utils/TableColumnsToCsv.js +67 -6
- package/build/dist/UI/Utils/TableColumnsToCsv.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorProbeSelectionUtil.js +52 -0
- package/build/dist/Utils/Monitor/MonitorProbeSelectionUtil.js.map +1 -0
- package/build/dist/Utils/UserPreferences.js +33 -0
- package/build/dist/Utils/UserPreferences.js.map +1 -1
- package/package.json +4 -3
|
@@ -24,6 +24,7 @@ import HTTPResponse from "../../Types/API/HTTPResponse";
|
|
|
24
24
|
import API from "../../Utils/API";
|
|
25
25
|
import WorkspaceProjectAuthTokenService from "../Services/WorkspaceProjectAuthTokenService";
|
|
26
26
|
import WorkspaceProjectAuthToken, {
|
|
27
|
+
MicrosoftTeamsChat,
|
|
27
28
|
MicrosoftTeamsMiscData,
|
|
28
29
|
MicrosoftTeamsTeam,
|
|
29
30
|
} from "../../Models/DatabaseModels/WorkspaceProjectAuthToken";
|
|
@@ -46,6 +47,8 @@ import path from "path";
|
|
|
46
47
|
import UserMiddleware from "../Middleware/UserAuthorization";
|
|
47
48
|
import CommonAPI from "./CommonAPI";
|
|
48
49
|
import DatabaseCommonInteractionProps from "../../Types/BaseDatabase/DatabaseCommonInteractionProps";
|
|
50
|
+
import Dictionary from "../../Types/Dictionary";
|
|
51
|
+
import { WorkspaceChannel } from "../Utils/Workspace/WorkspaceBase";
|
|
49
52
|
|
|
50
53
|
export default class MicrosoftTeamsAPI {
|
|
51
54
|
private static getTeamsAppManifest(): JSONObject {
|
|
@@ -166,6 +169,14 @@ export default class MicrosoftTeamsAPI {
|
|
|
166
169
|
type: "Application",
|
|
167
170
|
name: "Channel.Create.Group",
|
|
168
171
|
},
|
|
172
|
+
{
|
|
173
|
+
type: "Application",
|
|
174
|
+
name: "ChatMessage.Read.Chat",
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
type: "Application",
|
|
178
|
+
name: "ChatMember.Read.Chat",
|
|
179
|
+
},
|
|
169
180
|
],
|
|
170
181
|
},
|
|
171
182
|
},
|
|
@@ -1035,7 +1046,8 @@ export default class MicrosoftTeamsAPI {
|
|
|
1035
1046
|
const databaseProps: DatabaseCommonInteractionProps =
|
|
1036
1047
|
await CommonAPI.getDatabaseCommonInteractionProps(req);
|
|
1037
1048
|
|
|
1038
|
-
const projectId: ObjectID =
|
|
1049
|
+
const projectId: ObjectID =
|
|
1050
|
+
CommonAPI.assertAuthenticatedProjectMember(databaseProps);
|
|
1039
1051
|
|
|
1040
1052
|
// Use the refreshTeams method to get fresh teams data
|
|
1041
1053
|
const availableTeams: Record<string, MicrosoftTeamsTeam> =
|
|
@@ -1069,7 +1081,8 @@ export default class MicrosoftTeamsAPI {
|
|
|
1069
1081
|
const databaseProps: DatabaseCommonInteractionProps =
|
|
1070
1082
|
await CommonAPI.getDatabaseCommonInteractionProps(req);
|
|
1071
1083
|
|
|
1072
|
-
const projectId: ObjectID =
|
|
1084
|
+
const projectId: ObjectID =
|
|
1085
|
+
CommonAPI.assertAuthenticatedProjectMember(databaseProps);
|
|
1073
1086
|
|
|
1074
1087
|
// Call MicrosoftTeamsUtil to refresh teams
|
|
1075
1088
|
const availableTeams: Record<string, MicrosoftTeamsTeam> =
|
|
@@ -1094,6 +1107,90 @@ export default class MicrosoftTeamsAPI {
|
|
|
1094
1107
|
},
|
|
1095
1108
|
);
|
|
1096
1109
|
|
|
1110
|
+
// List channels of a team (app-only Graph; Channel.ReadBasic.All).
|
|
1111
|
+
router.get(
|
|
1112
|
+
"/microsoft-teams/channels",
|
|
1113
|
+
UserMiddleware.getUserMiddleware,
|
|
1114
|
+
async (req: ExpressRequest, res: ExpressResponse) => {
|
|
1115
|
+
try {
|
|
1116
|
+
const databaseProps: DatabaseCommonInteractionProps =
|
|
1117
|
+
await CommonAPI.getDatabaseCommonInteractionProps(req);
|
|
1118
|
+
|
|
1119
|
+
const projectId: ObjectID =
|
|
1120
|
+
CommonAPI.assertAuthenticatedProjectMember(databaseProps);
|
|
1121
|
+
|
|
1122
|
+
const teamId: string = (req.query["teamId"] as string) || "";
|
|
1123
|
+
|
|
1124
|
+
if (!teamId) {
|
|
1125
|
+
throw new BadDataException("teamId is required");
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
const channels: Dictionary<WorkspaceChannel> =
|
|
1129
|
+
await MicrosoftTeamsUtil.getAllWorkspaceChannels({
|
|
1130
|
+
authToken: "", // Graph calls use the app token from miscData.
|
|
1131
|
+
projectId: projectId,
|
|
1132
|
+
teamId: teamId,
|
|
1133
|
+
});
|
|
1134
|
+
|
|
1135
|
+
return Response.sendJsonObjectResponse(req, res, {
|
|
1136
|
+
channels: Object.values(channels)
|
|
1137
|
+
.sort((a: WorkspaceChannel, b: WorkspaceChannel) => {
|
|
1138
|
+
return (a.name || "").localeCompare(b.name || "");
|
|
1139
|
+
})
|
|
1140
|
+
.map((channel: WorkspaceChannel) => {
|
|
1141
|
+
return {
|
|
1142
|
+
id: channel.id,
|
|
1143
|
+
name: channel.name,
|
|
1144
|
+
};
|
|
1145
|
+
}),
|
|
1146
|
+
});
|
|
1147
|
+
} catch (err) {
|
|
1148
|
+
return Response.sendErrorResponse(req, res, err as Exception);
|
|
1149
|
+
}
|
|
1150
|
+
},
|
|
1151
|
+
);
|
|
1152
|
+
|
|
1153
|
+
/*
|
|
1154
|
+
* Get chats (group / personal chats) the OneUptime app has been added to.
|
|
1155
|
+
* Chats cannot be listed via app-only Graph permissions, so this returns
|
|
1156
|
+
* the chats captured from bot installation events.
|
|
1157
|
+
*/
|
|
1158
|
+
router.get(
|
|
1159
|
+
"/microsoft-teams/chats",
|
|
1160
|
+
UserMiddleware.getUserMiddleware,
|
|
1161
|
+
async (req: ExpressRequest, res: ExpressResponse) => {
|
|
1162
|
+
try {
|
|
1163
|
+
const databaseProps: DatabaseCommonInteractionProps =
|
|
1164
|
+
await CommonAPI.getDatabaseCommonInteractionProps(req);
|
|
1165
|
+
|
|
1166
|
+
const projectId: ObjectID =
|
|
1167
|
+
CommonAPI.assertAuthenticatedProjectMember(databaseProps);
|
|
1168
|
+
|
|
1169
|
+
const availableChats: Record<string, MicrosoftTeamsChat> =
|
|
1170
|
+
await MicrosoftTeamsUtil.getChatsForProject({
|
|
1171
|
+
projectId: projectId,
|
|
1172
|
+
});
|
|
1173
|
+
|
|
1174
|
+
return Response.sendJsonObjectResponse(req, res, {
|
|
1175
|
+
chats: Object.values(availableChats)
|
|
1176
|
+
.sort((a: MicrosoftTeamsChat, b: MicrosoftTeamsChat) => {
|
|
1177
|
+
return a.name.localeCompare(b.name);
|
|
1178
|
+
})
|
|
1179
|
+
.map((chat: MicrosoftTeamsChat) => {
|
|
1180
|
+
return {
|
|
1181
|
+
id: chat.id,
|
|
1182
|
+
name: chat.name,
|
|
1183
|
+
chatType: chat.chatType,
|
|
1184
|
+
addedAt: chat.addedAt || null,
|
|
1185
|
+
};
|
|
1186
|
+
}),
|
|
1187
|
+
});
|
|
1188
|
+
} catch (err) {
|
|
1189
|
+
return Response.sendErrorResponse(req, res, err as Exception);
|
|
1190
|
+
}
|
|
1191
|
+
},
|
|
1192
|
+
);
|
|
1193
|
+
|
|
1097
1194
|
return router;
|
|
1098
1195
|
}
|
|
1099
1196
|
|
package/Server/API/ProbeAPI.ts
CHANGED
|
@@ -32,6 +32,8 @@ export default class ProbeAPI extends BaseAPI<Probe, ProbeServiceType> {
|
|
|
32
32
|
lastAlive: true,
|
|
33
33
|
iconFileId: true,
|
|
34
34
|
connectionStatus: true,
|
|
35
|
+
// The monitor create form pre-selects the auto-enabled probes.
|
|
36
|
+
shouldAutoEnableProbeOnNewMonitors: true,
|
|
35
37
|
},
|
|
36
38
|
props: {
|
|
37
39
|
isRoot: true,
|
package/Server/API/SlackAPI.ts
CHANGED
|
@@ -44,6 +44,9 @@ import UserMiddleware from "../Middleware/UserAuthorization";
|
|
|
44
44
|
import CommonAPI from "./CommonAPI";
|
|
45
45
|
import SlackUtil from "../Utils/Workspace/Slack/Slack";
|
|
46
46
|
import DatabaseCommonInteractionProps from "../../Types/BaseDatabase/DatabaseCommonInteractionProps";
|
|
47
|
+
import Dictionary from "../../Types/Dictionary";
|
|
48
|
+
import Exception from "../../Types/Exception/Exception";
|
|
49
|
+
import { WorkspaceChannel } from "../Utils/Workspace/WorkspaceBase";
|
|
47
50
|
import {
|
|
48
51
|
PrivateNoteEmojis,
|
|
49
52
|
PublicNoteEmojis,
|
|
@@ -747,6 +750,54 @@ export default class SlackAPI {
|
|
|
747
750
|
},
|
|
748
751
|
);
|
|
749
752
|
|
|
753
|
+
// List all Slack channels for the current project (live fetch, refreshes the cache).
|
|
754
|
+
router.get(
|
|
755
|
+
"/slack/channels",
|
|
756
|
+
UserMiddleware.getUserMiddleware,
|
|
757
|
+
async (req: ExpressRequest, res: ExpressResponse) => {
|
|
758
|
+
try {
|
|
759
|
+
const props: DatabaseCommonInteractionProps =
|
|
760
|
+
await CommonAPI.getDatabaseCommonInteractionProps(req);
|
|
761
|
+
|
|
762
|
+
const projectId: ObjectID =
|
|
763
|
+
CommonAPI.assertAuthenticatedProjectMember(props);
|
|
764
|
+
|
|
765
|
+
const projectAuth: WorkspaceProjectAuthToken | null =
|
|
766
|
+
await WorkspaceProjectAuthTokenService.getProjectAuth({
|
|
767
|
+
projectId: projectId,
|
|
768
|
+
workspaceType: WorkspaceType.Slack,
|
|
769
|
+
});
|
|
770
|
+
|
|
771
|
+
if (!projectAuth || !projectAuth.authToken) {
|
|
772
|
+
throw new BadRequestException(
|
|
773
|
+
"Slack is not connected for this project. Please connect Slack first.",
|
|
774
|
+
);
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
const channels: Dictionary<WorkspaceChannel> =
|
|
778
|
+
await SlackUtil.getAllWorkspaceChannels({
|
|
779
|
+
authToken: projectAuth.authToken,
|
|
780
|
+
projectId: projectId,
|
|
781
|
+
});
|
|
782
|
+
|
|
783
|
+
return Response.sendJsonObjectResponse(req, res, {
|
|
784
|
+
channels: Object.values(channels)
|
|
785
|
+
.sort((a: WorkspaceChannel, b: WorkspaceChannel) => {
|
|
786
|
+
return (a.name || "").localeCompare(b.name || "");
|
|
787
|
+
})
|
|
788
|
+
.map((channel: WorkspaceChannel) => {
|
|
789
|
+
return {
|
|
790
|
+
id: channel.id,
|
|
791
|
+
name: channel.name,
|
|
792
|
+
};
|
|
793
|
+
}),
|
|
794
|
+
});
|
|
795
|
+
} catch (err) {
|
|
796
|
+
return Response.sendErrorResponse(req, res, err as Exception);
|
|
797
|
+
}
|
|
798
|
+
},
|
|
799
|
+
);
|
|
800
|
+
|
|
750
801
|
// Fetch and cache all Slack channels for current tenant's project
|
|
751
802
|
router.get(
|
|
752
803
|
"/slack/get-all-channels",
|
|
@@ -755,6 +806,17 @@ export default class SlackAPI {
|
|
|
755
806
|
const props: DatabaseCommonInteractionProps =
|
|
756
807
|
await CommonAPI.getDatabaseCommonInteractionProps(req);
|
|
757
808
|
|
|
809
|
+
/*
|
|
810
|
+
* getUserMiddleware lets unauthenticated requests through as
|
|
811
|
+
* "public" — require an authenticated project member before
|
|
812
|
+
* disclosing channel names.
|
|
813
|
+
*/
|
|
814
|
+
try {
|
|
815
|
+
CommonAPI.assertAuthenticatedProjectMember(props);
|
|
816
|
+
} catch (err) {
|
|
817
|
+
return Response.sendErrorResponse(req, res, err as Exception);
|
|
818
|
+
}
|
|
819
|
+
|
|
758
820
|
if (!props.tenantId) {
|
|
759
821
|
return Response.sendErrorResponse(
|
|
760
822
|
req,
|