@oneuptime/common 12.0.9 → 12.0.11
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/NetworkDevice.ts +44 -0
- package/Models/DatabaseModels/NetworkDeviceLink.ts +116 -0
- package/Models/DatabaseModels/RunnerJob.ts +17 -2
- package/Server/API/LlmProviderAPI.ts +8 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787400000000-AddDeviceRoleAndDeclaredLinkParent.ts +52 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Services/NetworkDeviceLabelRuleEngineService.ts +240 -0
- package/Server/Services/NetworkDeviceLinkService.ts +338 -2
- package/Server/Services/NetworkDeviceService.ts +265 -12
- package/Server/Services/RunnerJobService.ts +24 -1
- package/Server/Types/Billing/MeteredPlan/AllMeteredPlans.ts +19 -5
- package/Server/Types/Database/JSONColumnQuery.ts +42 -4
- package/Server/Utils/LLM/LLMService.ts +108 -19
- package/Server/Utils/Monitor/MonitorAlert.ts +22 -115
- package/Server/Utils/Monitor/MonitorIncident.ts +7 -337
- package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +27 -2
- package/Server/Utils/Monitor/SeriesResourceLabels.ts +32 -0
- package/Server/Utils/Monitor/SeriesResourceLinker.ts +469 -0
- package/Server/Utils/SSRFProtection.ts +5 -4
- package/Server/Utils/Telemetry/InventoryEntityRegistry.ts +186 -38
- package/Tests/App/AdminDashboard/AdminUsersBulkAddToProject.test.tsx +955 -0
- package/Tests/App/AdminDashboard/BulkAddUsersToProject.test.ts +778 -0
- package/Tests/App/AdminDashboard/BulkAddUsersToProjectModal.test.tsx +1051 -0
- package/Tests/App/Dashboard/AdminNotificationRulesPage.test.tsx +420 -112
- package/Tests/App/Dashboard/OnCallReadinessSurfaces.test.tsx +81 -6
- package/Tests/App/Dashboard/PayAsYouGoConsentGate.test.tsx +543 -0
- package/Tests/App/Dashboard/PayAsYouGoFreePlan.test.ts +125 -0
- package/Tests/App/Dashboard/PayAsYouGoNotices.test.tsx +612 -0
- package/Tests/App/Dashboard/SloWidgetChartRendering.test.tsx +536 -0
- package/Tests/App/Dashboard/UserElementEmail.test.tsx +447 -0
- package/Tests/App/Dashboard/UserEmailCallSites.test.tsx +284 -0
- package/Tests/Models/AnalyticsModels/CommonModel.test.ts +312 -0
- package/Tests/Server/Infrastructure/Postgres/DeviceRoleAndDeclaredLinkParentMigration.test.ts +250 -0
- package/Tests/Server/Infrastructure/Postgres/EpisodeMemberNotifyIndexesMigration.test.ts +46 -18
- package/Tests/Server/Services/NetworkDeviceLabelRuleRun.test.ts +618 -0
- package/Tests/Server/Services/NetworkDeviceLinkParentValidation.test.ts +1043 -0
- package/Tests/Server/Services/NetworkSiteAssignmentRuleRun.test.ts +706 -0
- package/Tests/Server/Services/RunnerJobEnqueue.test.ts +412 -0
- package/Tests/Server/Types/Billing/PayAsYouGoMeteredPricing.test.ts +125 -0
- package/Tests/Server/Types/Database/JSONColumnQuery.test.ts +508 -0
- package/Tests/Server/Utils/AI/LLMServiceRequestPolicy.test.ts +2 -2
- package/Tests/Server/Utils/AI/LLMServiceRetryPolicy.test.ts +450 -0
- package/Tests/Server/Utils/Monitor/MonitorAlertResourceLinking.test.ts +556 -0
- package/Tests/Server/Utils/Monitor/MonitorIncidentResourceLinking.test.ts +547 -0
- package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +30 -0
- package/Tests/Server/Utils/Monitor/SeriesResourceLinker.test.ts +699 -0
- package/Tests/Server/Utils/SeriesResourceLabels.test.ts +55 -0
- package/Tests/Server/Utils/Telemetry/InventoryEntityRegistry.test.ts +668 -0
- package/Tests/Types/API/URLMalformedTolerance.test.ts +301 -0
- package/Tests/Types/API/URLTelScheme.test.ts +261 -0
- package/Tests/Types/API/URLUnsupportedScheme.test.ts +148 -0
- package/Tests/Types/Billing/PayAsYouGoPricing.test.ts +64 -0
- package/Tests/Types/CustomField/CustomFieldTypeCorrespondence.test.ts +107 -0
- package/Tests/Types/Monitor/MonitorType.test.ts +62 -0
- package/Tests/Types/NetworkAutomation/RuleRunResult.test.ts +184 -0
- package/Tests/Types/Runbook/RunbookStepType.test.ts +124 -0
- package/Tests/Types/Workflow/BaseModelComponents.test.ts +17 -0
- package/Tests/UI/Components/Button.test.tsx +279 -0
- package/Tests/UI/Components/Charts/ChartXAxisDataKey.test.tsx +256 -0
- package/Tests/UI/Components/Charts/DataPointUtil.test.ts +323 -0
- package/Tests/UI/Components/DictionaryValuePlaceholderAndSuggestions.test.tsx +595 -0
- package/Tests/UI/Components/Icon.test.tsx +57 -0
- package/Tests/UI/Components/List.test.tsx +20 -3
- package/Tests/UI/Components/LogsSavedViewsDropdown.test.tsx +304 -0
- package/Tests/UI/Components/LogsViewerClearSavedView.test.tsx +179 -0
- package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +349 -1
- package/Tests/UI/Components/Pagination.test.tsx +721 -146
- package/Tests/UI/Components/PaginationIntegration.test.tsx +386 -0
- package/Tests/UI/Components/PaginationUtil.test.ts +417 -0
- package/Tests/UI/Components/TelemetrySavedViewsDropdown.test.tsx +343 -0
- package/Tests/UI/Components/Workflow/ColumnEditor/ColumnControl.test.ts +289 -0
- package/Tests/UI/Components/Workflow/ColumnEditor/ColumnOperators.test.ts +271 -0
- package/Tests/UI/Components/Workflow/ColumnEditor/ColumnRow.test.ts +119 -0
- package/Tests/UI/Components/Workflow/ColumnEditor/ColumnRowSerialization.test.ts +968 -0
- package/Tests/UI/Components/Workflow/ModelColumnEditor.render.test.tsx +766 -0
- package/Tests/UI/Utils/RunNetworkRule.test.ts +320 -0
- package/Tests/Utils/APIRetryPolicy.test.ts +823 -0
- package/Tests/Utils/Monitor/NetworkDeviceRoleUtil.test.ts +502 -0
- package/Tests/Utils/Monitor/NetworkTopologyDeclaredHierarchy.test.ts +759 -0
- package/Tests/Utils/NetworkAutomation/RuleRunSummary.test.ts +286 -0
- package/Tests/Utils/Schema/BaseSchema.test.ts +651 -0
- package/Types/API/Protocol.ts +9 -0
- package/Types/API/URL.ts +286 -20
- package/Types/Billing/PayAsYouGoPricing.ts +47 -0
- package/Types/CustomField/CustomFieldType.ts +28 -0
- package/Types/Monitor/MonitorType.ts +11 -0
- package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +13 -0
- package/Types/NetworkAutomation/RuleRunResult.ts +121 -0
- package/Types/Runbook/RunbookStepType.ts +23 -0
- package/UI/Components/AutocompleteTextInput/AutocompleteTextInput.tsx +7 -0
- package/UI/Components/Button/Button.tsx +14 -22
- package/UI/Components/Charts/Area/AreaChart.tsx +4 -2
- package/UI/Components/Charts/Bar/BarChart.tsx +4 -2
- package/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts +13 -0
- package/UI/Components/Charts/Line/LineChart.tsx +4 -2
- package/UI/Components/Charts/Types/XAxis/XAxis.ts +6 -0
- package/UI/Components/Charts/Utils/DataPoint.ts +15 -12
- package/UI/Components/Dictionary/Dictionary.tsx +4 -39
- package/UI/Components/Icon/Icon.tsx +1 -1
- package/UI/Components/LogsViewer/LogsViewer.tsx +5 -1
- package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +8 -0
- package/UI/Components/LogsViewer/components/LogsPagination.tsx +29 -91
- package/UI/Components/LogsViewer/components/LogsViewerToolbar.tsx +2 -0
- package/UI/Components/LogsViewer/components/SavedViewsDropdown.tsx +66 -1
- package/UI/Components/ModelTable/CustomFieldColumns.tsx +55 -0
- package/UI/Components/Pagination/Pagination.tsx +373 -328
- package/UI/Components/Pagination/PaginationUtil.ts +263 -0
- package/UI/Components/Pagination/Screenshots/README.md +15 -0
- package/UI/Components/Pagination/Screenshots/pagination-before-after.png +0 -0
- package/UI/Components/Pagination/Screenshots/pagination-go-to-page-modal.png +0 -0
- package/UI/Components/Pagination/Screenshots/pagination-long-list.png +0 -0
- package/UI/Components/Pagination/Screenshots/pagination-mobile.png +0 -0
- package/UI/Components/Pagination/Screenshots/pagination-telemetry.png +0 -0
- package/UI/Components/TelemetryViewer/components/SavedViewsDropdown.tsx +66 -1
- package/UI/Components/TelemetryViewer/components/TelemetryPagination.tsx +38 -92
- package/UI/Components/TextArea/TextArea.tsx +3 -0
- package/UI/Components/Workflow/ArgumentsForm.tsx +18 -1
- package/UI/Components/Workflow/ColumnEditor/AddColumnDropdown.tsx +177 -0
- package/UI/Components/Workflow/ColumnEditor/ColumnConditionRow.tsx +243 -0
- package/UI/Components/Workflow/ColumnEditor/ColumnControl.ts +255 -0
- package/UI/Components/Workflow/ColumnEditor/ColumnFieldRow.tsx +178 -0
- package/UI/Components/Workflow/ColumnEditor/ColumnOperators.ts +206 -0
- package/UI/Components/Workflow/ColumnEditor/ColumnRow.ts +157 -0
- package/UI/Components/Workflow/ColumnEditor/ColumnRowSerialization.ts +517 -0
- package/UI/Components/Workflow/ColumnEditor/ColumnValueInput.tsx +482 -0
- package/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.tsx +131 -0
- package/UI/Components/Workflow/ColumnEditor/ModelRecordForm.tsx +163 -0
- package/UI/Components/Workflow/ModelColumnEditor.tsx +284 -100
- package/UI/Utils/NetworkAutomation/RunNetworkRule.ts +122 -0
- package/Utils/API.ts +243 -36
- package/Utils/Monitor/NetworkDeviceRoleUtil.ts +45 -0
- package/Utils/Monitor/NetworkTopologyUtil.ts +42 -2
- package/Utils/NetworkAutomation/RuleRunSummary.ts +147 -0
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +45 -0
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceLink.js +115 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceLink.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RunnerJob.js +17 -2
- package/build/dist/Models/DatabaseModels/RunnerJob.js.map +1 -1
- package/build/dist/Server/API/LlmProviderAPI.js +9 -1
- package/build/dist/Server/API/LlmProviderAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787400000000-AddDeviceRoleAndDeclaredLinkParent.js +33 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787400000000-AddDeviceRoleAndDeclaredLinkParent.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js +202 -0
- package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceLinkService.js +253 -1
- package/build/dist/Server/Services/NetworkDeviceLinkService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceService.js +223 -12
- package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
- package/build/dist/Server/Services/RunnerJobService.js +20 -2
- package/build/dist/Server/Services/RunnerJobService.js.map +1 -1
- package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js +12 -5
- package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js.map +1 -1
- package/build/dist/Server/Types/Database/JSONColumnQuery.js +40 -4
- package/build/dist/Server/Types/Database/JSONColumnQuery.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +78 -22
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +22 -98
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +7 -254
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +14 -2
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +27 -0
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js +285 -0
- package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js.map +1 -0
- package/build/dist/Server/Utils/SSRFProtection.js +5 -4
- package/build/dist/Server/Utils/SSRFProtection.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js +128 -35
- package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js.map +1 -1
- package/build/dist/Types/API/Protocol.js +9 -0
- package/build/dist/Types/API/Protocol.js.map +1 -1
- package/build/dist/Types/API/URL.js +241 -18
- package/build/dist/Types/API/URL.js.map +1 -1
- package/build/dist/Types/Billing/PayAsYouGoPricing.js +41 -0
- package/build/dist/Types/Billing/PayAsYouGoPricing.js.map +1 -0
- package/build/dist/Types/CustomField/CustomFieldType.js +26 -0
- package/build/dist/Types/CustomField/CustomFieldType.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +10 -0
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/NetworkAutomation/RuleRunResult.js +39 -0
- package/build/dist/Types/NetworkAutomation/RuleRunResult.js.map +1 -0
- package/build/dist/Types/Runbook/RunbookStepType.js +21 -0
- package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
- package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js +1 -1
- package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js.map +1 -1
- package/build/dist/UI/Components/Button/Button.js +10 -16
- package/build/dist/UI/Components/Button/Button.js.map +1 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js +2 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js +2 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js +12 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js.map +1 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js +2 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Utils/DataPoint.js +17 -10
- package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
- package/build/dist/UI/Components/Dictionary/Dictionary.js +4 -18
- package/build/dist/UI/Components/Dictionary/Dictionary.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +1 -1
- package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +3 -3
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +5 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsPagination.js +14 -44
- package/build/dist/UI/Components/LogsViewer/components/LogsPagination.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/SavedViewsDropdown.js +20 -2
- package/build/dist/UI/Components/LogsViewer/components/SavedViewsDropdown.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js +42 -0
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -1
- package/build/dist/UI/Components/Pagination/Pagination.js +174 -199
- package/build/dist/UI/Components/Pagination/Pagination.js.map +1 -1
- package/build/dist/UI/Components/Pagination/PaginationUtil.js +160 -0
- package/build/dist/UI/Components/Pagination/PaginationUtil.js.map +1 -0
- package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js +20 -2
- package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryPagination.js +23 -47
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryPagination.js.map +1 -1
- package/build/dist/UI/Components/TextArea/TextArea.js +1 -1
- package/build/dist/UI/Components/TextArea/TextArea.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ArgumentsForm.js +14 -2
- package/build/dist/UI/Components/Workflow/ArgumentsForm.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ColumnEditor/AddColumnDropdown.js +86 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/AddColumnDropdown.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnConditionRow.js +119 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnConditionRow.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnControl.js +206 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnControl.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnFieldRow.js +57 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnFieldRow.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnOperators.js +150 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnOperators.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnRow.js +67 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnRow.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnRowSerialization.js +309 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnRowSerialization.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnValueInput.js +204 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ColumnValueInput.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.js +66 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ModelRecordForm.js +83 -0
- package/build/dist/UI/Components/Workflow/ColumnEditor/ModelRecordForm.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ModelColumnEditor.js +187 -68
- package/build/dist/UI/Components/Workflow/ModelColumnEditor.js.map +1 -1
- package/build/dist/UI/Utils/NetworkAutomation/RunNetworkRule.js +75 -0
- package/build/dist/UI/Utils/NetworkAutomation/RunNetworkRule.js.map +1 -0
- package/build/dist/Utils/API.js +175 -34
- package/build/dist/Utils/API.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkDeviceRoleUtil.js +37 -0
- package/build/dist/Utils/Monitor/NetworkDeviceRoleUtil.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +25 -3
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/NetworkAutomation/RuleRunSummary.js +78 -0
- package/build/dist/Utils/NetworkAutomation/RuleRunSummary.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,29 +1,35 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* A
|
|
2
|
+
* A schema-driven editor for the two workflow arguments that are keyed on a
|
|
3
3
|
* model's columns: the Query that picks which records a component acts on,
|
|
4
4
|
* and the record of values a create/update writes.
|
|
5
5
|
*
|
|
6
6
|
* Both were bare JSON editors, with the column names — and, for a query, the
|
|
7
|
-
* operator syntax — left entirely to memory. The
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* operator syntax — left entirely to memory. The first attempt at fixing that
|
|
8
|
+
* borrowed the generic key/value row editor, which asked for a column name as
|
|
9
|
+
* free text and then asked, in a dropdown next to it, whether the value was
|
|
10
|
+
* Text, Number or Boolean. Both questions were already answered:
|
|
11
|
+
* /model-schema/:tableName says that `color` is a Color and `name` is a Name,
|
|
12
|
+
* so the builder could only agree with the schema or be wrong.
|
|
10
13
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
14
|
+
* So the rows are generated from the schema instead. A record is a form of the
|
|
15
|
+
* model's own fields, with their real titles and descriptions; a query is a
|
|
16
|
+
* list of conditions whose comparisons are filtered by the column's type. The
|
|
17
|
+
* JSON escape hatch stays for the values rows cannot express, and now it
|
|
18
|
+
* re-reads what was typed in it rather than discarding it.
|
|
16
19
|
*/
|
|
17
20
|
import CodeEditor from "../CodeEditor/CodeEditor";
|
|
18
21
|
import ComponentLoader from "../ComponentLoader/ComponentLoader";
|
|
19
|
-
import
|
|
22
|
+
import { getOperatorOption, } from "../Dictionary/DictionaryFilterOperator";
|
|
20
23
|
import Icon from "../Icon/Icon";
|
|
21
24
|
import { findColumn, requiredWritableColumns, useModelSchema, } from "./ModelSchema";
|
|
25
|
+
import { rowsFromParsedValue, seedRequiredRows, serializeColumnRows, } from "./ColumnEditor/ColumnRowSerialization";
|
|
26
|
+
import ModelQueryBuilder from "./ColumnEditor/ModelQueryBuilder";
|
|
27
|
+
import ModelRecordForm from "./ColumnEditor/ModelRecordForm";
|
|
22
28
|
import CodeType from "../../../Types/Code/CodeType";
|
|
23
29
|
import IconProp from "../../../Types/Icon/IconProp";
|
|
24
30
|
import { ObjectType } from "../../../Types/JSON";
|
|
25
31
|
import { maskTemplateExpressions } from "../../../Types/Workflow/TemplateSyntax";
|
|
26
|
-
import React, { useMemo, useState, } from "react";
|
|
32
|
+
import React, { useEffect, useMemo, useState, } from "react";
|
|
27
33
|
export var ModelColumnEditorMode;
|
|
28
34
|
(function (ModelColumnEditorMode) {
|
|
29
35
|
/** Conditions that select records: column, operator, value. */
|
|
@@ -31,6 +37,18 @@ export var ModelColumnEditorMode;
|
|
|
31
37
|
/** Values to write: column, value. No operators — you cannot save a ">". */
|
|
32
38
|
ModelColumnEditorMode["Record"] = "Record";
|
|
33
39
|
})(ModelColumnEditorMode || (ModelColumnEditorMode = {}));
|
|
40
|
+
/**
|
|
41
|
+
* Whether the record being edited creates a row or updates one.
|
|
42
|
+
*
|
|
43
|
+
* It decides one thing: whether the editor opens with a blank row for every
|
|
44
|
+
* column a create must supply. An update legitimately writes a single column,
|
|
45
|
+
* so seeding those rows there presents six fields where the builder wanted one.
|
|
46
|
+
*/
|
|
47
|
+
export var RecordIntent;
|
|
48
|
+
(function (RecordIntent) {
|
|
49
|
+
RecordIntent["Create"] = "Create";
|
|
50
|
+
RecordIntent["Update"] = "Update";
|
|
51
|
+
})(RecordIntent || (RecordIntent = {}));
|
|
34
52
|
/*
|
|
35
53
|
* Operator wrappers the row editor can show. Anything else in a stored query
|
|
36
54
|
* (an InBetween, a relation sub-object, a raw QueryHelper construct) keeps the
|
|
@@ -225,95 +243,196 @@ const ModelColumnEditor = (props) => {
|
|
|
225
243
|
const [jsonText, setJsonText] = useState(initial.text);
|
|
226
244
|
const [viewMode, setViewMode] = useState("builder");
|
|
227
245
|
/*
|
|
228
|
-
* The
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
* render after the schema resolves — the loader below returns early until
|
|
232
|
-
* then.
|
|
246
|
+
* The rows are the editor's own state, and both bodies are fully controlled
|
|
247
|
+
* from here. Null until the schema resolves, because a row cannot be built
|
|
248
|
+
* before it is known what kind of column it is for.
|
|
233
249
|
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
250
|
+
* Nothing in the seeding path calls props.onChange. That matters more than it
|
|
251
|
+
* looks: this component is mounted every time someone opens a step's
|
|
252
|
+
* settings, and a change fired during mount would rewrite the stored bytes of
|
|
253
|
+
* every workflow just for being looked at.
|
|
238
254
|
*/
|
|
239
|
-
const
|
|
240
|
-
const stored = (initial.parsed ||
|
|
241
|
-
{});
|
|
242
|
-
if (isQuery || !schema.columns) {
|
|
243
|
-
return stored;
|
|
244
|
-
}
|
|
245
|
-
const seeded = Object.assign({}, stored);
|
|
246
|
-
for (const column of requiredWritableColumns(schema.columns)) {
|
|
247
|
-
if (seeded[column.id] === undefined) {
|
|
248
|
-
seeded[column.id] = "";
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
return seeded;
|
|
252
|
-
}, [schema.columns, isQuery]);
|
|
255
|
+
const [rows, setRows] = useState(null);
|
|
253
256
|
/*
|
|
254
|
-
*
|
|
255
|
-
*
|
|
256
|
-
|
|
257
|
+
* Why the switch back from JSON is refused, when it is. Empty means it is
|
|
258
|
+
* allowed.
|
|
259
|
+
*/
|
|
260
|
+
const [returnToRowsBlockedBy, setReturnToRowsBlockedBy] = useState([]);
|
|
261
|
+
/*
|
|
262
|
+
* Whether the value can be shown as rows at all. Read from the value as it
|
|
263
|
+
* was loaded, deliberately: the decision has to be stable, or the editor
|
|
264
|
+
* would change shape under the builder's hands as they type.
|
|
257
265
|
*/
|
|
258
|
-
const valuePlaceholders = useMemo(() => {
|
|
259
|
-
const placeholders = {};
|
|
260
|
-
for (const column of schema.columns || []) {
|
|
261
|
-
const hint = column.example || column.placeholder;
|
|
262
|
-
if (hint) {
|
|
263
|
-
placeholders[column.id] = hint;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
return placeholders;
|
|
267
|
-
}, [schema.columns]);
|
|
268
266
|
const compatibility = useMemo(() => {
|
|
269
267
|
return classifyColumnValueCompatibility(initial.parsed, schema.columns || [], props.mode, initial.hasTemplateExpressions);
|
|
270
268
|
}, [schema.columns, props.mode]);
|
|
271
|
-
const
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
269
|
+
const columns = schema.columns || [];
|
|
270
|
+
/*
|
|
271
|
+
* A create opens with a blank row for every column it must be given, so the
|
|
272
|
+
* shape of the record is visible before anything is typed. Seeded rows hold
|
|
273
|
+
* "" and are dropped on the way out, so an untouched Create One still reads
|
|
274
|
+
* as empty to form validation and to the graph linter.
|
|
275
|
+
*
|
|
276
|
+
* Used by the JSON view's return trip as well as by the first load - built
|
|
277
|
+
* only on the way in, those rows disappeared the first time anyone looked at
|
|
278
|
+
* the JSON, and a create that had been read once no longer showed what it
|
|
279
|
+
* needed.
|
|
280
|
+
*/
|
|
281
|
+
const buildRows = (parsed) => {
|
|
282
|
+
const storedRows = rowsFromParsedValue(parsed, columns, props.mode);
|
|
283
|
+
const shouldSeed = !isQuery &&
|
|
284
|
+
(props.recordIntent || RecordIntent.Create) === RecordIntent.Create;
|
|
285
|
+
return shouldSeed ? seedRequiredRows(storedRows, columns) : storedRows;
|
|
286
|
+
};
|
|
287
|
+
useEffect(() => {
|
|
288
|
+
if (schema.isLoading || rows !== null) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
setRows(buildRows(initial.parsed));
|
|
292
|
+
}, [schema.isLoading, schema.columns]);
|
|
293
|
+
if (schema.isLoading || rows === null) {
|
|
277
294
|
return React.createElement(ComponentLoader, null);
|
|
278
295
|
}
|
|
279
296
|
const isLockedToJson = !compatibility.compatible;
|
|
280
297
|
const effectiveMode = isLockedToJson ? "json" : viewMode;
|
|
281
298
|
const onJsonChange = (value) => {
|
|
282
299
|
setJsonText(value);
|
|
300
|
+
/*
|
|
301
|
+
* Any block on returning to rows was about the previous text, so it is
|
|
302
|
+
* re-decided when the switch is next attempted rather than left standing.
|
|
303
|
+
*/
|
|
304
|
+
setReturnToRowsBlockedBy([]);
|
|
283
305
|
props.onChange(value);
|
|
284
306
|
};
|
|
285
307
|
const onRowsChange = (value) => {
|
|
286
|
-
|
|
308
|
+
setRows(value);
|
|
309
|
+
const asJson = serializeColumnRows(value, columns, props.mode);
|
|
287
310
|
setJsonText(asJson);
|
|
288
311
|
props.onChange(asJson);
|
|
289
312
|
};
|
|
313
|
+
const showJson = () => {
|
|
314
|
+
/*
|
|
315
|
+
* What is shown is what is stored. Handing the code editor the text the
|
|
316
|
+
* argument held before the rows were edited would be the same data loss as
|
|
317
|
+
* the other direction, one step later.
|
|
318
|
+
*/
|
|
319
|
+
setJsonText(serializeColumnRows(rows, columns, props.mode));
|
|
320
|
+
setViewMode("json");
|
|
321
|
+
};
|
|
322
|
+
const showRows = () => {
|
|
323
|
+
/*
|
|
324
|
+
* The JSON is re-read here, which is the fix for a real bug: the rows used
|
|
325
|
+
* to be seeded once and never again, so editing as JSON, adding a key and
|
|
326
|
+
* switching back silently dropped the key, and the next keystroke in any
|
|
327
|
+
* row overwrote the argument with the pre-edit content.
|
|
328
|
+
*/
|
|
329
|
+
const edited = normalizeInitialValue(jsonText);
|
|
330
|
+
const editedCompatibility = classifyColumnValueCompatibility(edited.parsed, columns, props.mode, edited.hasTemplateExpressions);
|
|
331
|
+
if (!editedCompatibility.compatible) {
|
|
332
|
+
// Refused rather than silently losing the edit.
|
|
333
|
+
setReturnToRowsBlockedBy(editedCompatibility.reasons);
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
setReturnToRowsBlockedBy([]);
|
|
337
|
+
setRows(buildRows(edited.parsed));
|
|
338
|
+
setViewMode("builder");
|
|
339
|
+
};
|
|
340
|
+
const filledRowCount = rows.filter((row) => {
|
|
341
|
+
if (row.columnId === "") {
|
|
342
|
+
return false;
|
|
343
|
+
}
|
|
344
|
+
/*
|
|
345
|
+
* "is set" and "is not set" carry no value by design, so counting only rows
|
|
346
|
+
* that hold one reported a query with three real conditions as having none.
|
|
347
|
+
*/
|
|
348
|
+
if (isQuery && getOperatorOption(row.operator).hidesValueInput) {
|
|
349
|
+
return true;
|
|
350
|
+
}
|
|
351
|
+
return row.text !== "" || row.values.length > 0;
|
|
352
|
+
}).length;
|
|
353
|
+
/*
|
|
354
|
+
* Recomputed from the rows on screen rather than from the value as it was
|
|
355
|
+
* loaded, so fixing the column name that caused the warning also clears it.
|
|
356
|
+
* Read from the frozen initial value, the "id isn't a known column" note
|
|
357
|
+
* stayed up after the builder had corrected it to "_id", which reads as the
|
|
358
|
+
* editor not having noticed.
|
|
359
|
+
*
|
|
360
|
+
* Only the non-blocking half is live. Whether the value can be rows at all is
|
|
361
|
+
* decided once, above.
|
|
362
|
+
*/
|
|
363
|
+
const unknownColumnWarnings = columns.length
|
|
364
|
+
? rows
|
|
365
|
+
.filter((row) => {
|
|
366
|
+
return row.columnId !== "" && !findColumn(columns, row.columnId);
|
|
367
|
+
})
|
|
368
|
+
.map((row) => {
|
|
369
|
+
return `"${row.columnId}" isn't a known column on this model.`;
|
|
370
|
+
})
|
|
371
|
+
: [];
|
|
372
|
+
const emptyRequiredCount = isQuery
|
|
373
|
+
? 0
|
|
374
|
+
: requiredWritableColumns(columns).filter((column) => {
|
|
375
|
+
return rows.some((row) => {
|
|
376
|
+
return row.columnId === column.id && row.text === "";
|
|
377
|
+
});
|
|
378
|
+
}).length;
|
|
379
|
+
const noun = isQuery ? "condition" : "field";
|
|
290
380
|
return (React.createElement("div", null,
|
|
291
|
-
schema.error && (React.createElement("
|
|
292
|
-
"
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
381
|
+
schema.error && (React.createElement("div", { className: "mb-2 flex items-start gap-2 rounded-md border border-red-200 bg-red-50/60 px-3 py-2.5" },
|
|
382
|
+
React.createElement(Icon, { icon: IconProp.Alert, className: "mt-0.5 h-3.5 w-3.5 shrink-0 text-red-500" }),
|
|
383
|
+
React.createElement("p", { className: "text-sm text-red-700" },
|
|
384
|
+
"Couldn't load this model's columns (",
|
|
385
|
+
schema.error,
|
|
386
|
+
"). You can still write ",
|
|
387
|
+
isQuery ? "the query" : "these fields",
|
|
388
|
+
" as JSON."))),
|
|
389
|
+
isLockedToJson && compatibility.reasons.length > 0 && (React.createElement("div", { className: "mb-2 rounded-md border border-amber-200 bg-amber-50/60 px-3 py-2.5" },
|
|
298
390
|
React.createElement("p", { className: "text-sm text-amber-800" }, "Editing as JSON, because:"),
|
|
299
391
|
React.createElement("ul", { className: "mt-1 list-disc pl-5 text-sm text-amber-700" }, compatibility.reasons.map((reason, i) => {
|
|
300
392
|
return React.createElement("li", { key: i }, reason);
|
|
301
393
|
})))),
|
|
302
|
-
!isLockedToJson &&
|
|
303
|
-
React.createElement("ul", { className: "list-disc pl-5 text-sm text-amber-700" },
|
|
394
|
+
!isLockedToJson && unknownColumnWarnings.length > 0 && (React.createElement("div", { className: "mb-2 rounded-md border border-amber-200 bg-amber-50/60 px-3 py-2.5" },
|
|
395
|
+
React.createElement("ul", { className: "list-disc pl-5 text-sm text-amber-700" }, unknownColumnWarnings.map((reason, i) => {
|
|
396
|
+
return React.createElement("li", { key: i }, reason);
|
|
397
|
+
})))),
|
|
398
|
+
returnToRowsBlockedBy.length > 0 && (React.createElement("div", { className: "mb-2 rounded-md border border-amber-200 bg-amber-50/60 px-3 py-2.5" },
|
|
399
|
+
React.createElement("p", { className: "text-sm text-amber-800" },
|
|
400
|
+
"This can't go back to ",
|
|
401
|
+
isQuery ? "conditions" : "fields",
|
|
402
|
+
", because:"),
|
|
403
|
+
React.createElement("ul", { className: "mt-1 list-disc pl-5 text-sm text-amber-700" }, returnToRowsBlockedBy.map((reason, i) => {
|
|
304
404
|
return React.createElement("li", { key: i }, reason);
|
|
305
405
|
})))),
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
406
|
+
React.createElement("div", { className: "mb-2 flex items-center justify-between gap-2" },
|
|
407
|
+
React.createElement("p", { className: "text-xs text-gray-500" }, effectiveMode === "builder" ? (React.createElement(React.Fragment, null,
|
|
408
|
+
filledRowCount,
|
|
409
|
+
" ",
|
|
410
|
+
noun,
|
|
411
|
+
filledRowCount === 1 ? "" : "s",
|
|
412
|
+
" set",
|
|
413
|
+
emptyRequiredCount > 0 && (React.createElement("span", { className: "text-amber-600" },
|
|
414
|
+
" ",
|
|
415
|
+
"\u00B7 ",
|
|
416
|
+
emptyRequiredCount,
|
|
417
|
+
" required field",
|
|
418
|
+
emptyRequiredCount === 1 ? "" : "s",
|
|
419
|
+
" still empty")))) : (React.createElement(React.Fragment, null, "Editing the raw JSON this step will send."))),
|
|
420
|
+
!isLockedToJson && (React.createElement("button", { type: "button", "data-testid": "model-column-json-toggle", className: "inline-flex items-center gap-1.5 rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-xs font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 focus:outline-none focus:ring-1 focus:ring-indigo-500", onClick: () => {
|
|
421
|
+
if (effectiveMode === "builder") {
|
|
422
|
+
showJson();
|
|
423
|
+
return;
|
|
424
|
+
}
|
|
425
|
+
showRows();
|
|
310
426
|
} },
|
|
311
|
-
React.createElement(Icon, { icon:
|
|
427
|
+
React.createElement(Icon, { icon: effectiveMode === "builder"
|
|
428
|
+
? IconProp.Code
|
|
429
|
+
: IconProp.ListBullet, className: "h-3.5 w-3.5 text-gray-500" }),
|
|
312
430
|
effectiveMode === "builder"
|
|
313
431
|
? "Edit as JSON"
|
|
314
432
|
: isQuery
|
|
315
433
|
? "Back to conditions"
|
|
316
434
|
: "Back to fields"))),
|
|
435
|
+
effectiveMode === "builder" ? (isQuery ? (React.createElement(ModelQueryBuilder, { rows: rows, columns: columns, suggestions: props.valueSuggestions, onChange: onRowsChange })) : (React.createElement(ModelRecordForm, { rows: rows, columns: columns, suggestions: props.valueSuggestions, onChange: onRowsChange }))) : (React.createElement(CodeEditor, { type: CodeType.JSON, tabIndex: props.tabIndex, error: props.error, initialValue: initial.text, value: jsonText, placeholder: props.placeholder, onChange: onJsonChange })),
|
|
317
436
|
props.error && effectiveMode === "builder" && (React.createElement("p", { className: "mt-1 text-sm text-red-400" }, props.error))));
|
|
318
437
|
};
|
|
319
438
|
export default ModelColumnEditor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelColumnEditor.js","sourceRoot":"","sources":["../../../../../UI/Components/Workflow/ModelColumnEditor.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ModelColumnEditor.js","sourceRoot":"","sources":["../../../../../UI/Components/Workflow/ModelColumnEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAEL,iBAAiB,GAClB,MAAM,wCAAwC,CAAC;AAChD,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,EAIL,UAAU,EACV,uBAAuB,EACvB,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,eAAe,MAAM,gCAAgC,CAAC;AAC7D,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAEpD,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAc,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,OAAO,EACP,QAAQ,GACT,MAAM,OAAO,CAAC;AAEf,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,+DAA+D;IAC/D,wCAAe,CAAA;IACf,4EAA4E;IAC5E,0CAAiB,CAAA;AACnB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAED;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;AACnB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAwBD;;;;GAIG;AACH,MAAM,4BAA4B,GAAkB;IAClD,UAAU,CAAC,OAAO;IAClB,UAAU,CAAC,QAAQ;IACnB,UAAU,CAAC,MAAM;IACjB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,UAAU;IACrB,UAAU,CAAC,QAAQ;IACnB,UAAU,CAAC,WAAW;IACtB,UAAU,CAAC,kBAAkB;IAC7B,UAAU,CAAC,QAAQ;IACnB,UAAU,CAAC,eAAe;IAC1B,UAAU,CAAC,MAAM;IACjB,UAAU,CAAC,OAAO;IAClB,UAAU,CAAC,QAAQ;IACnB,UAAU,CAAC,YAAY;CACxB,CAAC;AAsBF,MAAM,YAAY,GAAyB,CAAC,KAAc,EAAW,EAAE;IACrE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,qBAAqB,GAAkC,CAClE,KAA6C,EAChC,EAAE;IACf,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC;IACjE,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,MAAM,EAAE,KAAK;YACb,sBAAsB,EAAE,KAAK;SAC9B,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC;IAC9E,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,MAAoB;gBAC5B,sBAAsB,EAAE,KAAK;aAC9B,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;IAAC,WAAM,CAAC;QACP;;;;WAIG;QACH,MAAM,MAAM,GAAW,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAEtD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;oBACrC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;gBACrE,CAAC;YACH,CAAC;YAAC,WAAM,CAAC;gBACP,4EAA4E;YAC9E,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;AACH,CAAC,CAAC;AAeF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAkC,CAC7E,MAAyB,EACzB,OAAiC,EACjC,IAA2B,EAC3B,sBAA4C,EACvB,EAAE;IACvB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE;gBACP,sBAAsB;oBACpB,CAAC,CAAC,oGAAoG;oBACtG,CAAC,CAAC,wCAAwC;aAC7C;SACF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC;;;;;WAKG;QACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,uCAAuC,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,KAAK,GAAY,MAAM,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QAED,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,KAAK,SAAS,EAC1B,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB;;;;eAIG;YACH,OAAO,CAAC,IAAI,CACV,IAAI,KAAK,qBAAqB,CAAC,KAAK;gBAClC,CAAC,CAAC,IAAI,GAAG,gFAAgF;gBACzF,CAAC,CAAC,IAAI,GAAG,kEAAkE,CAC9E,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAa,KAAoB,CAAC,OAAO,CAAC,CAAC;YAE3D,IACE,IAAI,KAAK,qBAAqB,CAAC,KAAK;gBACpC,OAAO,UAAU,KAAK,QAAQ;gBAC9B,4BAA4B,CAAC,QAAQ,CAAC,UAAU,CAAC,EACjD,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,UAAU,UAAU,8BAA8B,CAAC,CAAC;gBACxE,SAAS;YACX,CAAC;YAED,OAAO,CAAC,IAAI,CACV,IAAI,GAAG,qDAAqD,CAC7D,CAAC;YACF,SAAS;QACX,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,MAAM,QAAQ,GAAkB,OAAO,CAAC,MAAM,CAAC,CAAC,MAAc,EAAE,EAAE;QAChE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACjE,CAAC,CAAC;AAOF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA2B,CAC1D,KAAuC,EACvC,IAA2B,EACnB,EAAE;IACV,MAAM,OAAO,GAAe,EAAE,CAAC;IAE/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACtB,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,qBAAqB,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;YAC/D,SAAS;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAU,CAAC;IACrC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACH,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAsC,CAC3D,KAAqB,EACP,EAAE;IAChB,MAAM,OAAO,GAAY,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,KAAK,CAAC;IAEpE;;;;;;OAMG;IACH,MAAM,MAAM,GAAsB,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAE7D,MAAM,MAAM,GAAqB,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEzE,MAAM,OAAO,GAAgB,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAS,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAW,SAAS,CAAC,CAAC;IAE9D;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAA+B,IAAI,CAAC,CAAC;IAErE;;;OAGG;IACH,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAEhE,EAAE,CAAC,CAAC;IAEN;;;;OAIG;IACH,MAAM,aAAa,GAAwB,OAAO,CAAC,GAAG,EAAE;QACtD,OAAO,gCAAgC,CACrC,OAAO,CAAC,MAAM,EACd,MAAM,CAAC,OAAO,IAAI,EAAE,EACpB,KAAK,CAAC,IAAI,EACV,OAAO,CAAC,sBAAsB,CAC/B,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjC,MAAM,OAAO,GAA6B,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAI/D;;;;;;;;;;OAUG;IACH,MAAM,SAAS,GAAsB,CACnC,MAAyB,EACF,EAAE;QACzB,MAAM,UAAU,GAA0B,mBAAmB,CAC3D,MAAM,EACN,OAAO,EACP,KAAK,CAAC,IAAI,CACX,CAAC;QAEF,MAAM,UAAU,GACd,CAAC,OAAO;YACR,CAAC,KAAK,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC;QAEtE,OAAO,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACzE,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvC,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACtC,OAAO,oBAAC,eAAe,OAAG,CAAC;IAC7B,CAAC;IAED,MAAM,cAAc,GAAY,CAAC,aAAa,CAAC,UAAU,CAAC;IAC1D,MAAM,aAAa,GAAa,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAInE,MAAM,YAAY,GAAyB,CAAC,KAAa,EAAQ,EAAE;QACjE,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB;;;WAGG;QACH,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC7B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC,CAAC;IAIF,MAAM,YAAY,GAAyB,CACzC,KAA4B,EACtB,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,CAAC;QAEf,MAAM,MAAM,GAAW,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvE,WAAW,CAAC,MAAM,CAAC,CAAC;QACpB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;IAIF,MAAM,QAAQ,GAAqB,GAAS,EAAE;QAC5C;;;;WAIG;QACH,WAAW,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,WAAW,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC;IAIF,MAAM,QAAQ,GAAqB,GAAS,EAAE;QAC5C;;;;;WAKG;QACH,MAAM,MAAM,GAAgB,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,mBAAmB,GACvB,gCAAgC,CAC9B,MAAM,CAAC,MAAM,EACb,OAAO,EACP,KAAK,CAAC,IAAI,EACV,MAAM,CAAC,sBAAsB,CAC9B,CAAC;QAEJ,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC;YACpC,gDAAgD;YAChD,wBAAwB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC7B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAClC,WAAW,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,MAAM,cAAc,GAAW,IAAI,CAAC,MAAM,CAAC,CAAC,GAAmB,EAAE,EAAE;QACjE,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED;;;WAGG;QACH,IAAI,OAAO,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,eAAe,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC,MAAM,CAAC;IAEV;;;;;;;;;OASG;IACH,MAAM,qBAAqB,GAAkB,OAAO,CAAC,MAAM;QACzD,CAAC,CAAC,IAAI;aACD,MAAM,CAAC,CAAC,GAAmB,EAAE,EAAE;YAC9B,OAAO,GAAG,CAAC,QAAQ,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnE,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,GAAmB,EAAE,EAAE;YAC3B,OAAO,IAAI,GAAG,CAAC,QAAQ,uCAAuC,CAAC;QACjE,CAAC,CAAC;QACN,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,kBAAkB,GAAW,OAAO;QACxC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,MAAyB,EAAE,EAAE;YACpE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAmB,EAAE,EAAE;gBACvC,OAAO,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,MAAM,CAAC;IAEd,MAAM,IAAI,GAAW,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;IAErD,OAAO,CACL;QACG,MAAM,CAAC,KAAK,IAAI,CACf,6BAAK,SAAS,EAAC,uFAAuF;YACpG,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,KAAK,EACpB,SAAS,EAAC,0CAA0C,GACpD;YACF,2BAAG,SAAS,EAAC,sBAAsB;;gBACc,MAAM,CAAC,KAAK;;gBAC1C,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;4BACrD,CACA,CACP;QAEA,cAAc,IAAI,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrD,6BAAK,SAAS,EAAC,oEAAoE;YACjF,2BAAG,SAAS,EAAC,wBAAwB,gCAA8B;YACnE,4BAAI,SAAS,EAAC,4CAA4C,IACvD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,CAAS,EAAE,EAAE;gBACvD,OAAO,4BAAI,GAAG,EAAE,CAAC,IAAG,MAAM,CAAM,CAAC;YACnC,CAAC,CAAC,CACC,CACD,CACP;QAEA,CAAC,cAAc,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,IAAI,CACtD,6BAAK,SAAS,EAAC,oEAAoE;YACjF,4BAAI,SAAS,EAAC,uCAAuC,IAClD,qBAAqB,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,CAAS,EAAE,EAAE;gBACvD,OAAO,4BAAI,GAAG,EAAE,CAAC,IAAG,MAAM,CAAM,CAAC;YACnC,CAAC,CAAC,CACC,CACD,CACP;QAEA,qBAAqB,CAAC,MAAM,GAAG,CAAC,IAAI,CACnC,6BAAK,SAAS,EAAC,oEAAoE;YACjF,2BAAG,SAAS,EAAC,wBAAwB;;gBACP,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;6BAE3D;YACJ,4BAAI,SAAS,EAAC,4CAA4C,IACvD,qBAAqB,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,CAAS,EAAE,EAAE;gBACvD,OAAO,4BAAI,GAAG,EAAE,CAAC,IAAG,MAAM,CAAM,CAAC;YACnC,CAAC,CAAC,CACC,CACD,CACP;QAED,6BAAK,SAAS,EAAC,8CAA8C;YAC3D,2BAAG,SAAS,EAAC,uBAAuB,IACjC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,CAC7B;gBACG,cAAc;;gBAAG,IAAI;gBACrB,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;;gBAC/B,kBAAkB,GAAG,CAAC,IAAI,CACzB,8BAAM,SAAS,EAAC,gBAAgB;oBAC7B,GAAG;;oBACD,kBAAkB;;oBACpB,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;mCAC/B,CACR,CACA,CACJ,CAAC,CAAC,CAAC,CACF,sFAA8C,CAC/C,CACC;YAEH,CAAC,cAAc,IAAI,CAClB,gCACE,IAAI,EAAC,QAAQ,iBACD,0BAA0B,EACtC,SAAS,EAAC,0NAA0N,EACpO,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;wBAChC,QAAQ,EAAE,CAAC;wBACX,OAAO;oBACT,CAAC;oBAED,QAAQ,EAAE,CAAC;gBACb,CAAC;gBAED,oBAAC,IAAI,IACH,IAAI,EACF,aAAa,KAAK,SAAS;wBACzB,CAAC,CAAC,QAAQ,CAAC,IAAI;wBACf,CAAC,CAAC,QAAQ,CAAC,UAAU,EAEzB,SAAS,EAAC,2BAA2B,GACrC;gBACD,aAAa,KAAK,SAAS;oBAC1B,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,OAAO;wBACP,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,gBAAgB,CACf,CACV,CACG;QAEL,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,CAC7B,OAAO,CAAC,CAAC,CAAC,CACR,oBAAC,iBAAiB,IAChB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,KAAK,CAAC,gBAAgB,EACnC,QAAQ,EAAE,YAAY,GACtB,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,eAAe,IACd,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,KAAK,CAAC,gBAAgB,EACnC,QAAQ,EAAE,YAAY,GACtB,CACH,CACF,CAAC,CAAC,CAAC,CACF,oBAAC,UAAU,IACT,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,YAAY,EAAE,OAAO,CAAC,IAAI,EAC1B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,QAAQ,EAAE,YAAY,GACtB,CACH;QAEA,KAAK,CAAC,KAAK,IAAI,aAAa,KAAK,SAAS,IAAI,CAC7C,2BAAG,SAAS,EAAC,2BAA2B,IAAE,KAAK,CAAC,KAAK,CAAK,CAC3D,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import URL from "../../../Types/API/URL";
|
|
2
|
+
import { RuleRunResultUtil } from "../../../Types/NetworkAutomation/RuleRunResult";
|
|
3
|
+
import RuleRunSummary from "../../../Utils/NetworkAutomation/RuleRunSummary";
|
|
4
|
+
import { APP_API_URL } from "../../Config";
|
|
5
|
+
import API from "../API/API";
|
|
6
|
+
/*
|
|
7
|
+
* Client for the two Network Automation "Run now" endpoints.
|
|
8
|
+
*
|
|
9
|
+
* Both rule kinds fire automatically only when a device is created (and, for
|
|
10
|
+
* site assignment, when its identity changes or on the next poll of a device
|
|
11
|
+
* with no site), so a rule written after an estate was imported never reaches
|
|
12
|
+
* it. These endpoints apply one rule to the devices that already exist —
|
|
13
|
+
* OneUptime/oneuptime#3191.
|
|
14
|
+
*
|
|
15
|
+
* The two differ only in the route they post to and in whether the run can
|
|
16
|
+
* overwrite something a person chose, so they share one client rather than
|
|
17
|
+
* two that drift.
|
|
18
|
+
*/
|
|
19
|
+
export var NetworkRuleKind;
|
|
20
|
+
(function (NetworkRuleKind) {
|
|
21
|
+
NetworkRuleKind["SiteAssignment"] = "SiteAssignment";
|
|
22
|
+
NetworkRuleKind["DeviceLabel"] = "DeviceLabel";
|
|
23
|
+
})(NetworkRuleKind || (NetworkRuleKind = {}));
|
|
24
|
+
const RULE_RUN_ROUTE = {
|
|
25
|
+
[NetworkRuleKind.SiteAssignment]: "/network-site-assignment-rule",
|
|
26
|
+
[NetworkRuleKind.DeviceLabel]: "/network-device-label-rule",
|
|
27
|
+
};
|
|
28
|
+
export default class RunNetworkRule {
|
|
29
|
+
static getRunRoute(data) {
|
|
30
|
+
return `${RULE_RUN_ROUTE[data.ruleKind]}/${data.ruleId}/run`;
|
|
31
|
+
}
|
|
32
|
+
static async run(data) {
|
|
33
|
+
/*
|
|
34
|
+
* Without this the request would go to `/…//run`, which matches no route
|
|
35
|
+
* and comes back as an unhelpful 404 rather than as the real problem.
|
|
36
|
+
*/
|
|
37
|
+
if (!data.ruleId) {
|
|
38
|
+
return {
|
|
39
|
+
isSuccess: false,
|
|
40
|
+
message: "This rule has no id, so it cannot be run.",
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const isSiteAssignment = data.ruleKind === NetworkRuleKind.SiteAssignment;
|
|
44
|
+
try {
|
|
45
|
+
const response = await API.post(Object.assign({ url: URL.fromString(APP_API_URL.toString()).addRoute(RunNetworkRule.getRunRoute({
|
|
46
|
+
ruleKind: data.ruleKind,
|
|
47
|
+
ruleId: data.ruleId,
|
|
48
|
+
})), data: isSiteAssignment
|
|
49
|
+
? {
|
|
50
|
+
reassignDevicesAlreadyInASite: Boolean(data.reassignDevicesAlreadyInASite),
|
|
51
|
+
}
|
|
52
|
+
: {} }, (data.headers ? { headers: data.headers } : {})));
|
|
53
|
+
if (response.isFailure()) {
|
|
54
|
+
return {
|
|
55
|
+
isSuccess: false,
|
|
56
|
+
message: API.getFriendlyMessage(response),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const body = (response.data || {});
|
|
60
|
+
return {
|
|
61
|
+
isSuccess: true,
|
|
62
|
+
message: isSiteAssignment
|
|
63
|
+
? RuleRunSummary.describeSiteAssignmentRun(RuleRunResultUtil.parseSiteAssignmentRuleRunResult(body))
|
|
64
|
+
: RuleRunSummary.describeLabelRun(RuleRunResultUtil.parseLabelRuleRunResult(body)),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
return {
|
|
69
|
+
isSuccess: false,
|
|
70
|
+
message: API.getFriendlyMessage(err),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=RunNetworkRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunNetworkRule.js","sourceRoot":"","sources":["../../../../../UI/Utils/NetworkAutomation/RunNetworkRule.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,wBAAwB,CAAC;AAKzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,cAAc,MAAM,iDAAiD,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,8CAA2B,CAAA;AAC7B,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,MAAM,cAAc,GAAoC;IACtD,CAAC,eAAe,CAAC,cAAc,CAAC,EAAE,+BAA+B;IACjE,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,4BAA4B;CAC5D,CAAC;AAWF,MAAM,CAAC,OAAO,OAAO,cAAc;IAC1B,MAAM,CAAC,WAAW,CAAC,IAGzB;QACC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,MAAM,CAAC;IAC/D,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAUvB;QACC;;;WAGG;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,2CAA2C;aACrD,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GACpB,IAAI,CAAC,QAAQ,KAAK,eAAe,CAAC,cAAc,CAAC;QAEnD,IAAI,CAAC;YACH,MAAM,QAAQ,GACZ,MAAM,GAAG,CAAC,IAAI,iBACZ,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAClD,cAAc,CAAC,WAAW,CAAC;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,CACH,EACD,IAAI,EAAE,gBAAgB;oBACpB,CAAC,CAAC;wBACE,6BAA6B,EAAE,OAAO,CACpC,IAAI,CAAC,6BAA6B,CACnC;qBACF;oBACH,CAAC,CAAC,EAAE,IACH,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAClD,CAAC;YAEL,IAAI,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;gBACzB,OAAO;oBACL,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC;iBAC1C,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAe,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAe,CAAC;YAE7D,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,gBAAgB;oBACvB,CAAC,CAAC,cAAc,CAAC,yBAAyB,CACtC,iBAAiB,CAAC,gCAAgC,CAAC,IAAI,CAAC,CACzD;oBACH,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAC7B,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAChD;aACN,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC;aACrC,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|