@sonisoft/now-sdk-ext-core 2.2.1 → 2.5.1
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/dist/comm/http/RequestHandler.js +7 -11
- package/dist/comm/http/RequestHandler.js.map +1 -1
- package/dist/comm/http/TableAPIRequest.js +3 -10
- package/dist/comm/http/TableAPIRequest.js.map +1 -1
- package/dist/index.d.ts +28 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -1
- package/dist/sn/BackgroundScriptExecutor.d.ts +34 -0
- package/dist/sn/BackgroundScriptExecutor.js +96 -0
- package/dist/sn/BackgroundScriptExecutor.js.map +1 -1
- package/dist/sn/aggregate/AggregateModels.d.ts +89 -0
- package/dist/sn/aggregate/AggregateModels.js +5 -0
- package/dist/sn/aggregate/AggregateModels.js.map +1 -0
- package/dist/sn/aggregate/AggregateQuery.d.ts +50 -0
- package/dist/sn/aggregate/AggregateQuery.js +144 -0
- package/dist/sn/aggregate/AggregateQuery.js.map +1 -0
- package/dist/sn/application/ApplicationManager.d.ts +58 -1
- package/dist/sn/application/ApplicationManager.js +202 -11
- package/dist/sn/application/ApplicationManager.js.map +1 -1
- package/dist/sn/application/StoreApplicationModels.d.ts +99 -0
- package/dist/sn/application/StoreApplicationModels.js +2 -0
- package/dist/sn/application/StoreApplicationModels.js.map +1 -0
- package/dist/sn/attachment/AttachmentManager.d.ts +32 -0
- package/dist/sn/attachment/AttachmentManager.js +87 -0
- package/dist/sn/attachment/AttachmentManager.js.map +1 -0
- package/dist/sn/attachment/AttachmentModels.d.ts +28 -0
- package/dist/sn/attachment/AttachmentModels.js +2 -0
- package/dist/sn/attachment/AttachmentModels.js.map +1 -0
- package/dist/sn/batch/BatchModels.d.ts +90 -0
- package/dist/sn/batch/BatchModels.js +5 -0
- package/dist/sn/batch/BatchModels.js.map +1 -0
- package/dist/sn/batch/BatchOperations.d.ts +40 -0
- package/dist/sn/batch/BatchOperations.js +169 -0
- package/dist/sn/batch/BatchOperations.js.map +1 -0
- package/dist/sn/batch/QueryBatchModels.d.ts +93 -0
- package/dist/sn/batch/QueryBatchModels.js +5 -0
- package/dist/sn/batch/QueryBatchModels.js.map +1 -0
- package/dist/sn/batch/QueryBatchOperations.d.ts +41 -0
- package/dist/sn/batch/QueryBatchOperations.js +195 -0
- package/dist/sn/batch/QueryBatchOperations.js.map +1 -0
- package/dist/sn/cmdb/CMDBModels.d.ts +141 -0
- package/dist/sn/cmdb/CMDBModels.js +5 -0
- package/dist/sn/cmdb/CMDBModels.js.map +1 -0
- package/dist/sn/cmdb/CMDBRelationships.d.ts +60 -0
- package/dist/sn/cmdb/CMDBRelationships.js +286 -0
- package/dist/sn/cmdb/CMDBRelationships.js.map +1 -0
- package/dist/sn/discovery/DiscoveryModels.d.ts +160 -0
- package/dist/sn/discovery/DiscoveryModels.js +5 -0
- package/dist/sn/discovery/DiscoveryModels.js.map +1 -0
- package/dist/sn/discovery/InstanceDiscovery.d.ts +45 -0
- package/dist/sn/discovery/InstanceDiscovery.js +163 -0
- package/dist/sn/discovery/InstanceDiscovery.js.map +1 -0
- package/dist/sn/health/HealthModels.d.ts +124 -0
- package/dist/sn/health/HealthModels.js +5 -0
- package/dist/sn/health/HealthModels.js.map +1 -0
- package/dist/sn/health/InstanceHealth.d.ts +58 -0
- package/dist/sn/health/InstanceHealth.js +221 -0
- package/dist/sn/health/InstanceHealth.js.map +1 -0
- package/dist/sn/schema/SchemaDiscovery.d.ts +68 -0
- package/dist/sn/schema/SchemaDiscovery.js +346 -0
- package/dist/sn/schema/SchemaDiscovery.js.map +1 -0
- package/dist/sn/schema/SchemaModels.d.ts +277 -0
- package/dist/sn/schema/SchemaModels.js +5 -0
- package/dist/sn/schema/SchemaModels.js.map +1 -0
- package/dist/sn/scope/ScopeManager.d.ts +51 -0
- package/dist/sn/scope/ScopeManager.js +182 -0
- package/dist/sn/scope/ScopeManager.js.map +1 -0
- package/dist/sn/scope/ScopeModels.d.ts +72 -0
- package/dist/sn/scope/ScopeModels.js +5 -0
- package/dist/sn/scope/ScopeModels.js.map +1 -0
- package/dist/sn/scriptsync/ScriptSync.d.ts +38 -0
- package/dist/sn/scriptsync/ScriptSync.js +266 -0
- package/dist/sn/scriptsync/ScriptSync.js.map +1 -0
- package/dist/sn/scriptsync/ScriptSyncModels.d.ts +55 -0
- package/dist/sn/scriptsync/ScriptSyncModels.js +8 -0
- package/dist/sn/scriptsync/ScriptSyncModels.js.map +1 -0
- package/dist/sn/scriptsync/ScriptWatcher.d.ts +30 -0
- package/dist/sn/scriptsync/ScriptWatcher.js +74 -0
- package/dist/sn/scriptsync/ScriptWatcher.js.map +1 -0
- package/dist/sn/task/TaskModels.d.ts +85 -0
- package/dist/sn/task/TaskModels.js +5 -0
- package/dist/sn/task/TaskModels.js.map +1 -0
- package/dist/sn/task/TaskOperations.d.ts +63 -0
- package/dist/sn/task/TaskOperations.js +195 -0
- package/dist/sn/task/TaskOperations.js.map +1 -0
- package/dist/sn/updateset/UpdateSetManager.d.ts +78 -0
- package/dist/sn/updateset/UpdateSetManager.js +396 -0
- package/dist/sn/updateset/UpdateSetManager.js.map +1 -0
- package/dist/sn/updateset/UpdateSetModels.d.ts +188 -0
- package/dist/sn/updateset/UpdateSetModels.js +5 -0
- package/dist/sn/updateset/UpdateSetModels.js.map +1 -0
- package/dist/sn/workflow/WorkflowManager.d.ts +81 -0
- package/dist/sn/workflow/WorkflowManager.js +388 -0
- package/dist/sn/workflow/WorkflowManager.js.map +1 -0
- package/dist/sn/workflow/WorkflowModels.d.ts +242 -0
- package/dist/sn/workflow/WorkflowModels.js +5 -0
- package/dist/sn/workflow/WorkflowModels.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { Logger } from "../../util/Logger.js";
|
|
2
|
+
import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
|
|
3
|
+
/**
|
|
4
|
+
* AggregateQuery provides aggregate operations (COUNT, AVG, MIN, MAX, SUM)
|
|
5
|
+
* against ServiceNow tables via the Stats API (/api/now/stats/).
|
|
6
|
+
* Supports GROUP BY for grouped aggregations.
|
|
7
|
+
*/
|
|
8
|
+
export class AggregateQuery {
|
|
9
|
+
static STATS_API_BASE = '/api/now/stats/';
|
|
10
|
+
_logger = new Logger("AggregateQuery");
|
|
11
|
+
_req;
|
|
12
|
+
_instance;
|
|
13
|
+
_headers = {
|
|
14
|
+
"Content-Type": "application/json",
|
|
15
|
+
"Accept": "application/json"
|
|
16
|
+
};
|
|
17
|
+
constructor(instance) {
|
|
18
|
+
this._instance = instance;
|
|
19
|
+
this._req = new ServiceNowRequest(instance);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Count records matching an optional query on a table.
|
|
23
|
+
* Convenience method that returns a parsed integer.
|
|
24
|
+
*
|
|
25
|
+
* @param options Count query options (table required, query optional)
|
|
26
|
+
* @returns The number of matching records
|
|
27
|
+
* @throws Error if table name is empty or the API call fails
|
|
28
|
+
*/
|
|
29
|
+
async count(options) {
|
|
30
|
+
if (!options.table || options.table.trim().length === 0) {
|
|
31
|
+
throw new Error('Table name is required');
|
|
32
|
+
}
|
|
33
|
+
this._logger.info(`Counting records in table: ${options.table}${options.query ? ` with query: ${options.query}` : ''}`);
|
|
34
|
+
const queryParams = {
|
|
35
|
+
sysparm_count: 'true'
|
|
36
|
+
};
|
|
37
|
+
if (options.query) {
|
|
38
|
+
queryParams.sysparm_query = options.query;
|
|
39
|
+
}
|
|
40
|
+
const response = await this._executeStatsRequest(options.table, queryParams);
|
|
41
|
+
if (response && response.status === 200 && response.bodyObject?.result?.stats) {
|
|
42
|
+
const count = parseInt(response.bodyObject.result.stats.count || '0', 10);
|
|
43
|
+
this._logger.info(`Count result for ${options.table}: ${count}`);
|
|
44
|
+
return count;
|
|
45
|
+
}
|
|
46
|
+
throw new Error(`Failed to count records in table '${options.table}'. Status: ${response?.status ?? 'unknown'}`);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Run an aggregate query (COUNT, AVG, MIN, MAX, SUM) without grouping.
|
|
50
|
+
*
|
|
51
|
+
* @param options Aggregate query options
|
|
52
|
+
* @returns AggregateResult containing the computed statistics
|
|
53
|
+
* @throws Error if table name is empty or the API call fails
|
|
54
|
+
*/
|
|
55
|
+
async aggregate(options) {
|
|
56
|
+
if (!options.table || options.table.trim().length === 0) {
|
|
57
|
+
throw new Error('Table name is required');
|
|
58
|
+
}
|
|
59
|
+
this._logger.info(`Running aggregate query on table: ${options.table}`);
|
|
60
|
+
const queryParams = this._buildQueryParams(options);
|
|
61
|
+
const response = await this._executeStatsRequest(options.table, queryParams);
|
|
62
|
+
if (response && response.status === 200 && response.bodyObject?.result?.stats) {
|
|
63
|
+
this._logger.info(`Aggregate query complete for ${options.table}`);
|
|
64
|
+
return { stats: response.bodyObject.result.stats };
|
|
65
|
+
}
|
|
66
|
+
throw new Error(`Failed to run aggregate query on table '${options.table}'. Status: ${response?.status ?? 'unknown'}`);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Run a grouped aggregate query with GROUP BY.
|
|
70
|
+
*
|
|
71
|
+
* @param options Aggregate query options (groupBy is required)
|
|
72
|
+
* @returns GroupedAggregateResult with groups and their stats
|
|
73
|
+
* @throws Error if table name is empty, groupBy is missing/empty, or the API call fails
|
|
74
|
+
*/
|
|
75
|
+
async groupBy(options) {
|
|
76
|
+
if (!options.table || options.table.trim().length === 0) {
|
|
77
|
+
throw new Error('Table name is required');
|
|
78
|
+
}
|
|
79
|
+
if (!options.groupBy || options.groupBy.length === 0) {
|
|
80
|
+
throw new Error('groupBy fields are required for grouped aggregation');
|
|
81
|
+
}
|
|
82
|
+
this._logger.info(`Running grouped aggregate on table: ${options.table}, groupBy: ${options.groupBy.join(',')}`);
|
|
83
|
+
const queryParams = this._buildQueryParams(options);
|
|
84
|
+
const response = await this._executeStatsRequest(options.table, queryParams);
|
|
85
|
+
if (response && response.status === 200 && response.bodyObject?.result) {
|
|
86
|
+
const groups = Array.isArray(response.bodyObject.result)
|
|
87
|
+
? response.bodyObject.result
|
|
88
|
+
: [];
|
|
89
|
+
this._logger.info(`Grouped aggregate complete for ${options.table}: ${groups.length} groups`);
|
|
90
|
+
return { groups };
|
|
91
|
+
}
|
|
92
|
+
throw new Error(`Failed to run grouped aggregate on table '${options.table}'. Status: ${response?.status ?? 'unknown'}`);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Build query parameters from aggregate options.
|
|
96
|
+
* @private
|
|
97
|
+
*/
|
|
98
|
+
_buildQueryParams(options) {
|
|
99
|
+
const params = {};
|
|
100
|
+
if (options.count) {
|
|
101
|
+
params.sysparm_count = 'true';
|
|
102
|
+
}
|
|
103
|
+
if (options.avgFields && options.avgFields.length > 0) {
|
|
104
|
+
params.sysparm_avg_fields = options.avgFields.join(',');
|
|
105
|
+
}
|
|
106
|
+
if (options.minFields && options.minFields.length > 0) {
|
|
107
|
+
params.sysparm_min_fields = options.minFields.join(',');
|
|
108
|
+
}
|
|
109
|
+
if (options.maxFields && options.maxFields.length > 0) {
|
|
110
|
+
params.sysparm_max_fields = options.maxFields.join(',');
|
|
111
|
+
}
|
|
112
|
+
if (options.sumFields && options.sumFields.length > 0) {
|
|
113
|
+
params.sysparm_sum_fields = options.sumFields.join(',');
|
|
114
|
+
}
|
|
115
|
+
if (options.groupBy && options.groupBy.length > 0) {
|
|
116
|
+
params.sysparm_group_by = options.groupBy.join(',');
|
|
117
|
+
}
|
|
118
|
+
if (options.query) {
|
|
119
|
+
params.sysparm_query = options.query;
|
|
120
|
+
}
|
|
121
|
+
if (options.having) {
|
|
122
|
+
params.sysparm_having = options.having;
|
|
123
|
+
}
|
|
124
|
+
if (options.displayValue) {
|
|
125
|
+
params.sysparm_display_value = options.displayValue;
|
|
126
|
+
}
|
|
127
|
+
return params;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Execute a GET request against the Stats API.
|
|
131
|
+
* @private
|
|
132
|
+
*/
|
|
133
|
+
async _executeStatsRequest(tableName, queryParams) {
|
|
134
|
+
const request = {
|
|
135
|
+
path: AggregateQuery.STATS_API_BASE + tableName,
|
|
136
|
+
method: 'get',
|
|
137
|
+
headers: this._headers,
|
|
138
|
+
query: queryParams,
|
|
139
|
+
body: null
|
|
140
|
+
};
|
|
141
|
+
return await this._req.executeRequest(request);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=AggregateQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AggregateQuery.js","sourceRoot":"","sources":["../../../src/sn/aggregate/AggregateQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,21 @@ import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
|
|
|
4
4
|
import { ApplicationDetailModel } from "./ApplicationDetailModel.js";
|
|
5
5
|
import { BatchInstallation } from "./BatchInstallation.js";
|
|
6
6
|
import { BatchDefinition } from "./BatchDefinition.js";
|
|
7
|
+
import { StoreAppSearchOptions, StoreAppInstallOptions, StoreAppUpdateOptions, StoreAppOperationResult, StoreAppFinalResult } from "./StoreApplicationModels.js";
|
|
8
|
+
export declare enum APP_TAB_CONTEXT {
|
|
9
|
+
AVAILABLE_FOR_YOU = "available_for_you",
|
|
10
|
+
INSTALLED = "installed",
|
|
11
|
+
UPDATES = "updates"
|
|
12
|
+
}
|
|
7
13
|
export declare class ApplicationManager {
|
|
8
14
|
BATCH_API_URL: string;
|
|
9
15
|
APP_DETAILS_API_URL: string;
|
|
10
|
-
|
|
16
|
+
APP_SEARCH_API_URL: string;
|
|
17
|
+
APP_INSTALL_API_URL: string;
|
|
18
|
+
APP_SEARCH_POST_API_URL: string;
|
|
19
|
+
APP_UPDATE_API_URL: string;
|
|
20
|
+
DEFAULT_INSTALL_TIMEOUT: number;
|
|
21
|
+
DEFAULT_POLL_INTERVAL: number;
|
|
11
22
|
BATCH_INSTALL_TIMEOUT: number;
|
|
12
23
|
_logger: Logger;
|
|
13
24
|
_req: ServiceNowRequest;
|
|
@@ -49,6 +60,52 @@ export declare class ApplicationManager {
|
|
|
49
60
|
* @returns Promise<ApplicationValidationResult[]> Array of applications needing action
|
|
50
61
|
*/
|
|
51
62
|
getApplicationsNeedingAction(batchDefinitionPath: string): Promise<ApplicationValidationResult[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Search/list store applications by tab context with optional search key and pagination.
|
|
65
|
+
* Uses POST /api/sn_appclient/appmanager/apps
|
|
66
|
+
* @param options Search options including tabContext, searchKey, limit, offset, requestBody
|
|
67
|
+
* @returns Array of ApplicationDetailModel matching the search criteria
|
|
68
|
+
*/
|
|
69
|
+
searchApplications(options: StoreAppSearchOptions): Promise<ApplicationDetailModel[]>;
|
|
70
|
+
/**
|
|
71
|
+
* Initiate installation of a store application.
|
|
72
|
+
* Uses GET /api/sn_appclient/appmanager/app/install
|
|
73
|
+
* @param options Install options including appId and version
|
|
74
|
+
* @returns StoreAppOperationResult with tracker info for monitoring progress
|
|
75
|
+
*/
|
|
76
|
+
installStoreApplication(options: StoreAppInstallOptions): Promise<StoreAppOperationResult>;
|
|
77
|
+
/**
|
|
78
|
+
* Install a store application and wait for completion by polling the tracker.
|
|
79
|
+
* @param options Install options including appId and version
|
|
80
|
+
* @param pollIntervalMs Polling interval in ms (default: 5000)
|
|
81
|
+
* @param timeoutMs Timeout in ms (default: 30 min)
|
|
82
|
+
* @returns StoreAppFinalResult with success status and details
|
|
83
|
+
*/
|
|
84
|
+
installStoreApplicationAndWait(options: StoreAppInstallOptions, pollIntervalMs?: number, timeoutMs?: number): Promise<StoreAppFinalResult>;
|
|
85
|
+
/**
|
|
86
|
+
* Initiate update of a store application.
|
|
87
|
+
* Uses GET /api/sn_appclient/appmanager/app/update
|
|
88
|
+
* @param options Update options including appId and version
|
|
89
|
+
* @returns StoreAppOperationResult with tracker info for monitoring progress
|
|
90
|
+
*/
|
|
91
|
+
updateStoreApplication(options: StoreAppUpdateOptions): Promise<StoreAppOperationResult>;
|
|
92
|
+
/**
|
|
93
|
+
* Update a store application and wait for completion by polling the tracker.
|
|
94
|
+
* @param options Update options including appId and version
|
|
95
|
+
* @param pollIntervalMs Polling interval in ms (default: 5000)
|
|
96
|
+
* @param timeoutMs Timeout in ms (default: 30 min)
|
|
97
|
+
* @returns StoreAppFinalResult with success status and details
|
|
98
|
+
*/
|
|
99
|
+
updateStoreApplicationAndWait(options: StoreAppUpdateOptions, pollIntervalMs?: number, timeoutMs?: number): Promise<StoreAppFinalResult>;
|
|
100
|
+
/**
|
|
101
|
+
* Poll installation progress via ProgressWorker until complete, timed out, or failed.
|
|
102
|
+
* Uses GET /api/sn_cicd/progress/{progressId}
|
|
103
|
+
* @param progressId Progress ID from an install/update operation
|
|
104
|
+
* @param pollIntervalMs Polling interval in ms
|
|
105
|
+
* @param timeoutMs Timeout in ms
|
|
106
|
+
* @returns StoreAppFinalResult with success status
|
|
107
|
+
*/
|
|
108
|
+
private waitForInstallationCompletion;
|
|
52
109
|
/**
|
|
53
110
|
* Compares two version strings
|
|
54
111
|
* @param version1 First version string (e.g., "1.2.3")
|
|
@@ -2,10 +2,21 @@ import { Logger } from "../../util/Logger.js";
|
|
|
2
2
|
import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
|
|
3
3
|
import * as fs from 'fs';
|
|
4
4
|
import { ProgressWorker } from "../ProgressWorker.js";
|
|
5
|
+
export var APP_TAB_CONTEXT;
|
|
6
|
+
(function (APP_TAB_CONTEXT) {
|
|
7
|
+
APP_TAB_CONTEXT["AVAILABLE_FOR_YOU"] = "available_for_you";
|
|
8
|
+
APP_TAB_CONTEXT["INSTALLED"] = "installed";
|
|
9
|
+
APP_TAB_CONTEXT["UPDATES"] = "updates";
|
|
10
|
+
})(APP_TAB_CONTEXT || (APP_TAB_CONTEXT = {}));
|
|
5
11
|
export class ApplicationManager {
|
|
6
12
|
BATCH_API_URL = "/api/sn_cicd/app/batch/install";
|
|
7
13
|
APP_DETAILS_API_URL = "/api/sn_appclient/appmanager/app/{appID}";
|
|
8
|
-
|
|
14
|
+
APP_SEARCH_API_URL = "/api/sn_appclient/appmanager/apps?search_key={searchKey}&sysparm_limit={limit}&tab_context={tabContext}";
|
|
15
|
+
APP_INSTALL_API_URL = "/api/sn_appclient/appmanager/app/install";
|
|
16
|
+
APP_SEARCH_POST_API_URL = "/api/sn_appclient/appmanager/apps";
|
|
17
|
+
APP_UPDATE_API_URL = "/api/sn_appclient/appmanager/app/update";
|
|
18
|
+
DEFAULT_INSTALL_TIMEOUT = 1000 * 60 * 30;
|
|
19
|
+
DEFAULT_POLL_INTERVAL = 5000;
|
|
9
20
|
BATCH_INSTALL_TIMEOUT = 1000 * 60 * 30;
|
|
10
21
|
_logger = new Logger("ApplicationManager");
|
|
11
22
|
_req;
|
|
@@ -16,16 +27,13 @@ export class ApplicationManager {
|
|
|
16
27
|
_instance;
|
|
17
28
|
async installBatch(batchDefinitionPath) {
|
|
18
29
|
const batchDefinitionRequest = fs.readFileSync(batchDefinitionPath, 'utf8');
|
|
19
|
-
|
|
30
|
+
this._logger.info(`Batch definition loaded from: ${batchDefinitionPath}`);
|
|
20
31
|
const batchInstall = JSON.parse(batchDefinitionRequest);
|
|
21
|
-
//let installablePackages = await this.getInstallableApplicationPackages(batchInstall);
|
|
22
|
-
// console.log(installablePackages);
|
|
23
|
-
//batchInstall.packages = installablePackages;
|
|
24
32
|
const batchDefinitionJson = JSON.stringify(batchInstall);
|
|
25
|
-
|
|
33
|
+
this._logger.info(`Batch definition: ${batchDefinitionJson}`);
|
|
26
34
|
const result = await this.executeBatchInstallRequest(batchInstall);
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
this._logger.info(`Batch install result: ${JSON.stringify(result)}`);
|
|
36
|
+
this._logger.info(`Batch install links: ${JSON.stringify(result.result.links)}`);
|
|
29
37
|
if (result.result.links && result.result.links.progress) {
|
|
30
38
|
await this.waitForBatchInstallCompletion(result.result);
|
|
31
39
|
}
|
|
@@ -34,7 +42,7 @@ export class ApplicationManager {
|
|
|
34
42
|
async getInstallableApplicationPackages(batchInstall) {
|
|
35
43
|
for (const appPackage of batchInstall.packages) {
|
|
36
44
|
const appDetails = await this.getApplicationDetails(appPackage.id);
|
|
37
|
-
|
|
45
|
+
this._logger.info(`App details for ${appPackage.id}: ${JSON.stringify(appDetails)}`);
|
|
38
46
|
if (appDetails && appDetails.version == appPackage.requested_version) {
|
|
39
47
|
batchInstall.packages.splice(batchInstall.packages.indexOf(appPackage), 1);
|
|
40
48
|
}
|
|
@@ -52,11 +60,11 @@ export class ApplicationManager {
|
|
|
52
60
|
async waitForBatchInstallCompletion(batchInstallResult) {
|
|
53
61
|
const startTime = Date.now();
|
|
54
62
|
let progressResult = await this.getBatchProgress(batchInstallResult);
|
|
55
|
-
|
|
63
|
+
this._logger.info(`Batch install progress: ${JSON.stringify(progressResult)}`);
|
|
56
64
|
while (progressResult.percent_complete < 100 && (Date.now() - startTime) < this.BATCH_INSTALL_TIMEOUT) {
|
|
57
65
|
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
58
66
|
progressResult = await this.getBatchProgress(batchInstallResult);
|
|
59
|
-
|
|
67
|
+
this._logger.info(`Batch install progress: ${progressResult.percent_complete}%`);
|
|
60
68
|
}
|
|
61
69
|
if (progressResult.percent_complete < 100) {
|
|
62
70
|
throw new Error("Batch install timed out");
|
|
@@ -215,6 +223,189 @@ export class ApplicationManager {
|
|
|
215
223
|
const validationResult = await this.validateBatchDefinition(batchDefinitionPath);
|
|
216
224
|
return validationResult.applications.filter(app => app.needsAction);
|
|
217
225
|
}
|
|
226
|
+
// ============================================================
|
|
227
|
+
// Store Application Management
|
|
228
|
+
// ============================================================
|
|
229
|
+
/**
|
|
230
|
+
* Search/list store applications by tab context with optional search key and pagination.
|
|
231
|
+
* Uses POST /api/sn_appclient/appmanager/apps
|
|
232
|
+
* @param options Search options including tabContext, searchKey, limit, offset, requestBody
|
|
233
|
+
* @returns Array of ApplicationDetailModel matching the search criteria
|
|
234
|
+
*/
|
|
235
|
+
async searchApplications(options) {
|
|
236
|
+
const queryParams = {
|
|
237
|
+
tab_context: options.tabContext
|
|
238
|
+
};
|
|
239
|
+
if (options.searchKey) {
|
|
240
|
+
queryParams.search_key = options.searchKey;
|
|
241
|
+
}
|
|
242
|
+
if (options.limit !== undefined) {
|
|
243
|
+
queryParams.sysparm_limit = String(options.limit);
|
|
244
|
+
}
|
|
245
|
+
if (options.offset !== undefined) {
|
|
246
|
+
queryParams.sysparm_offset = String(options.offset);
|
|
247
|
+
}
|
|
248
|
+
const request = {
|
|
249
|
+
method: 'POST',
|
|
250
|
+
path: this.APP_SEARCH_POST_API_URL,
|
|
251
|
+
headers: { 'Content-Type': 'application/json' },
|
|
252
|
+
query: queryParams,
|
|
253
|
+
json: options.requestBody || {},
|
|
254
|
+
body: null
|
|
255
|
+
};
|
|
256
|
+
const resp = await this._req.post(request);
|
|
257
|
+
if (resp.status === 200 && resp.bodyObject?.result?.apps) {
|
|
258
|
+
return resp.bodyObject.result.apps;
|
|
259
|
+
}
|
|
260
|
+
return [];
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Initiate installation of a store application.
|
|
264
|
+
* Uses GET /api/sn_appclient/appmanager/app/install
|
|
265
|
+
* @param options Install options including appId and version
|
|
266
|
+
* @returns StoreAppOperationResult with tracker info for monitoring progress
|
|
267
|
+
*/
|
|
268
|
+
async installStoreApplication(options) {
|
|
269
|
+
const queryParams = {
|
|
270
|
+
app_id: options.appId,
|
|
271
|
+
version: options.version
|
|
272
|
+
};
|
|
273
|
+
if (options.customizationVersion) {
|
|
274
|
+
queryParams.customization_version = options.customizationVersion;
|
|
275
|
+
}
|
|
276
|
+
if (options.loadDemoData !== undefined) {
|
|
277
|
+
queryParams.load_demo_data = String(options.loadDemoData);
|
|
278
|
+
}
|
|
279
|
+
const request = {
|
|
280
|
+
method: 'GET',
|
|
281
|
+
path: this.APP_INSTALL_API_URL,
|
|
282
|
+
headers: null,
|
|
283
|
+
query: queryParams,
|
|
284
|
+
body: null
|
|
285
|
+
};
|
|
286
|
+
const resp = await this._req.get(request);
|
|
287
|
+
if (resp.status === 200 && resp.bodyObject?.result) {
|
|
288
|
+
return resp.bodyObject.result;
|
|
289
|
+
}
|
|
290
|
+
throw new Error(`Failed to initiate store app install: HTTP ${resp.status}`);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Install a store application and wait for completion by polling the tracker.
|
|
294
|
+
* @param options Install options including appId and version
|
|
295
|
+
* @param pollIntervalMs Polling interval in ms (default: 5000)
|
|
296
|
+
* @param timeoutMs Timeout in ms (default: 30 min)
|
|
297
|
+
* @returns StoreAppFinalResult with success status and details
|
|
298
|
+
*/
|
|
299
|
+
async installStoreApplicationAndWait(options, pollIntervalMs, timeoutMs) {
|
|
300
|
+
const operationResult = await this.installStoreApplication(options);
|
|
301
|
+
const trackerId = operationResult.tracker_id || operationResult.trackerId || operationResult.links?.progress?.id;
|
|
302
|
+
if (!trackerId) {
|
|
303
|
+
throw new Error('No tracker ID returned from install operation');
|
|
304
|
+
}
|
|
305
|
+
return await this.waitForInstallationCompletion(trackerId, pollIntervalMs || this.DEFAULT_POLL_INTERVAL, timeoutMs || this.DEFAULT_INSTALL_TIMEOUT);
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Initiate update of a store application.
|
|
309
|
+
* Uses GET /api/sn_appclient/appmanager/app/update
|
|
310
|
+
* @param options Update options including appId and version
|
|
311
|
+
* @returns StoreAppOperationResult with tracker info for monitoring progress
|
|
312
|
+
*/
|
|
313
|
+
async updateStoreApplication(options) {
|
|
314
|
+
const queryParams = {
|
|
315
|
+
app_id: options.appId,
|
|
316
|
+
version: options.version
|
|
317
|
+
};
|
|
318
|
+
if (options.customizationVersion) {
|
|
319
|
+
queryParams.customization_version = options.customizationVersion;
|
|
320
|
+
}
|
|
321
|
+
if (options.loadDemoData !== undefined) {
|
|
322
|
+
queryParams.load_demo_data = String(options.loadDemoData);
|
|
323
|
+
}
|
|
324
|
+
const request = {
|
|
325
|
+
method: 'GET',
|
|
326
|
+
path: this.APP_UPDATE_API_URL,
|
|
327
|
+
headers: null,
|
|
328
|
+
query: queryParams,
|
|
329
|
+
body: null
|
|
330
|
+
};
|
|
331
|
+
const resp = await this._req.get(request);
|
|
332
|
+
if (resp.status === 200 && resp.bodyObject?.result) {
|
|
333
|
+
return resp.bodyObject.result;
|
|
334
|
+
}
|
|
335
|
+
throw new Error(`Failed to initiate store app update: HTTP ${resp.status}`);
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Update a store application and wait for completion by polling the tracker.
|
|
339
|
+
* @param options Update options including appId and version
|
|
340
|
+
* @param pollIntervalMs Polling interval in ms (default: 5000)
|
|
341
|
+
* @param timeoutMs Timeout in ms (default: 30 min)
|
|
342
|
+
* @returns StoreAppFinalResult with success status and details
|
|
343
|
+
*/
|
|
344
|
+
async updateStoreApplicationAndWait(options, pollIntervalMs, timeoutMs) {
|
|
345
|
+
const operationResult = await this.updateStoreApplication(options);
|
|
346
|
+
const trackerId = operationResult.tracker_id || operationResult.trackerId || operationResult.links?.progress?.id;
|
|
347
|
+
if (!trackerId) {
|
|
348
|
+
throw new Error('No tracker ID returned from update operation');
|
|
349
|
+
}
|
|
350
|
+
return await this.waitForInstallationCompletion(trackerId, pollIntervalMs || this.DEFAULT_POLL_INTERVAL, timeoutMs || this.DEFAULT_INSTALL_TIMEOUT);
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Poll installation progress via ProgressWorker until complete, timed out, or failed.
|
|
354
|
+
* Uses GET /api/sn_cicd/progress/{progressId}
|
|
355
|
+
* @param progressId Progress ID from an install/update operation
|
|
356
|
+
* @param pollIntervalMs Polling interval in ms
|
|
357
|
+
* @param timeoutMs Timeout in ms
|
|
358
|
+
* @returns StoreAppFinalResult with success status
|
|
359
|
+
*/
|
|
360
|
+
async waitForInstallationCompletion(progressId, pollIntervalMs, timeoutMs) {
|
|
361
|
+
const progressWorker = new ProgressWorker(this._instance);
|
|
362
|
+
const startTime = Date.now();
|
|
363
|
+
let progress = await progressWorker.getProgress(progressId);
|
|
364
|
+
this._logger.info(`Installation progress: ${JSON.stringify(progress)}`);
|
|
365
|
+
while (progress.percent_complete < 100 && (Date.now() - startTime) < timeoutMs) {
|
|
366
|
+
await new Promise(resolve => setTimeout(resolve, pollIntervalMs));
|
|
367
|
+
progress = await progressWorker.getProgress(progressId);
|
|
368
|
+
this._logger.info(`Installation progress: ${progress.percent_complete}%`);
|
|
369
|
+
}
|
|
370
|
+
if (progress.percent_complete < 100) {
|
|
371
|
+
return {
|
|
372
|
+
success: false,
|
|
373
|
+
status: progress.status,
|
|
374
|
+
status_label: progress.status_label,
|
|
375
|
+
status_message: progress.status_message,
|
|
376
|
+
error: 'Installation timed out',
|
|
377
|
+
percent_complete: progress.percent_complete
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
if (progress.error) {
|
|
381
|
+
return {
|
|
382
|
+
success: false,
|
|
383
|
+
status: progress.status,
|
|
384
|
+
status_label: progress.status_label,
|
|
385
|
+
status_message: progress.status_message,
|
|
386
|
+
error: progress.error,
|
|
387
|
+
percent_complete: progress.percent_complete
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
// Status "3" typically indicates failure in ServiceNow
|
|
391
|
+
if (progress.status === '3') {
|
|
392
|
+
return {
|
|
393
|
+
success: false,
|
|
394
|
+
status: progress.status,
|
|
395
|
+
status_label: progress.status_label,
|
|
396
|
+
status_message: progress.status_message,
|
|
397
|
+
error: `${progress.status_label}: ${progress.status_message}`,
|
|
398
|
+
percent_complete: progress.percent_complete
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
return {
|
|
402
|
+
success: true,
|
|
403
|
+
status: progress.status,
|
|
404
|
+
status_label: progress.status_label,
|
|
405
|
+
status_message: progress.status_message,
|
|
406
|
+
percent_complete: progress.percent_complete
|
|
407
|
+
};
|
|
408
|
+
}
|
|
218
409
|
/**
|
|
219
410
|
* Compares two version strings
|
|
220
411
|
* @param version1 First version string (e.g., "1.2.3")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationManager.js","sourceRoot":"","sources":["../../../src/sn/application/ApplicationManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ApplicationManager.js","sourceRoot":"","sources":["../../../src/sn/application/ApplicationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { APP_TAB_CONTEXT } from './ApplicationManager.js';
|
|
2
|
+
import { ApplicationDetailModel } from './ApplicationDetailModel.js';
|
|
3
|
+
/**
|
|
4
|
+
* Options for searching/listing store applications.
|
|
5
|
+
*/
|
|
6
|
+
export interface StoreAppSearchOptions {
|
|
7
|
+
/** Required: Tab context filter */
|
|
8
|
+
tabContext: APP_TAB_CONTEXT;
|
|
9
|
+
/** Optional: Search keyword to filter applications */
|
|
10
|
+
searchKey?: string;
|
|
11
|
+
/** Optional: Maximum number of results (default: 10,000) */
|
|
12
|
+
limit?: number;
|
|
13
|
+
/** Optional: Pagination offset (default: 0) */
|
|
14
|
+
offset?: number;
|
|
15
|
+
/** Optional: Request body for POST /apps endpoint (for advanced filtering) */
|
|
16
|
+
requestBody?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Response wrapper from POST /api/sn_appclient/appmanager/apps
|
|
20
|
+
*/
|
|
21
|
+
export interface StoreAppSearchResponse {
|
|
22
|
+
result: StoreAppSearchResult;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The result payload inside the search response.
|
|
26
|
+
*/
|
|
27
|
+
export interface StoreAppSearchResult {
|
|
28
|
+
apps: ApplicationDetailModel[];
|
|
29
|
+
total?: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Options for installing a store application.
|
|
33
|
+
*/
|
|
34
|
+
export interface StoreAppInstallOptions {
|
|
35
|
+
/** Required: The app_id (source app id) of the application */
|
|
36
|
+
appId: string;
|
|
37
|
+
/** Required: The version to install */
|
|
38
|
+
version: string;
|
|
39
|
+
/** Optional: Customization version to apply */
|
|
40
|
+
customizationVersion?: string;
|
|
41
|
+
/** Optional: Whether to load demo data */
|
|
42
|
+
loadDemoData?: boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Options for updating a store application.
|
|
46
|
+
*/
|
|
47
|
+
export interface StoreAppUpdateOptions {
|
|
48
|
+
/** Required: The app_id (source app id) of the application */
|
|
49
|
+
appId: string;
|
|
50
|
+
/** Required: The version to update to */
|
|
51
|
+
version: string;
|
|
52
|
+
/** Optional: Customization version to apply */
|
|
53
|
+
customizationVersion?: string;
|
|
54
|
+
/** Optional: Whether to load demo data */
|
|
55
|
+
loadDemoData?: boolean;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Response from store app install or update.
|
|
59
|
+
*/
|
|
60
|
+
export interface StoreAppOperationResponse {
|
|
61
|
+
result: StoreAppOperationResult;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Result of initiating an install or update operation.
|
|
65
|
+
*/
|
|
66
|
+
export interface StoreAppOperationResult {
|
|
67
|
+
/** Tracker ID for monitoring progress (snake_case variant) */
|
|
68
|
+
tracker_id?: string;
|
|
69
|
+
/** Tracker ID for monitoring progress (camelCase variant) */
|
|
70
|
+
trackerId?: string;
|
|
71
|
+
/** Status of the initiated operation */
|
|
72
|
+
status?: string;
|
|
73
|
+
/** Any message from the server */
|
|
74
|
+
message?: string;
|
|
75
|
+
/** Links (may include progress link) */
|
|
76
|
+
links?: {
|
|
77
|
+
progress?: {
|
|
78
|
+
id: string;
|
|
79
|
+
url: string;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Final result after an install/update operation completes.
|
|
85
|
+
*/
|
|
86
|
+
export interface StoreAppFinalResult {
|
|
87
|
+
/** Whether the operation completed successfully */
|
|
88
|
+
success: boolean;
|
|
89
|
+
/** Final status */
|
|
90
|
+
status: string;
|
|
91
|
+
/** Status label */
|
|
92
|
+
status_label: string;
|
|
93
|
+
/** Status message */
|
|
94
|
+
status_message: string;
|
|
95
|
+
/** Error message if any */
|
|
96
|
+
error?: string;
|
|
97
|
+
/** Completion percentage */
|
|
98
|
+
percent_complete: number;
|
|
99
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreApplicationModels.js","sourceRoot":"","sources":["../../../src/sn/application/StoreApplicationModels.ts"],"names":[],"mappings":""}
|