@sonisoft/now-sdk-ext-core 6.16.0 → 6.17.0
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/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/policy/internal/Classify.js +51 -4
- package/dist/policy/internal/Classify.js.map +1 -1
- package/dist/sn/application/ApplicationManager.d.ts +59 -1
- package/dist/sn/application/ApplicationManager.js +272 -0
- package/dist/sn/application/ApplicationManager.js.map +1 -1
- package/dist/sn/application/StoreAppRepairError.d.ts +14 -0
- package/dist/sn/application/StoreAppRepairError.js +32 -0
- package/dist/sn/application/StoreAppRepairError.js.map +1 -0
- package/dist/sn/application/StoreApplicationModels.d.ts +97 -0
- package/dist/sn/application/StoreApplicationModels.js +2 -1
- package/dist/sn/application/StoreApplicationModels.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -61,6 +61,7 @@ export * from './sn/application/BatchDefinition.js';
|
|
|
61
61
|
export * from './sn/application/BatchInstallation.js';
|
|
62
62
|
export * from './sn/application/CompanyApplications.js';
|
|
63
63
|
export * from './sn/application/StoreApplicationModels.js';
|
|
64
|
+
export * from './sn/application/StoreAppRepairError.js';
|
|
64
65
|
export * from './sn/atf/ATFTest.js';
|
|
65
66
|
export * from './sn/atf/ATFTestExecutor.js';
|
|
66
67
|
export * from './sn/atf/TestFactory.js';
|
package/dist/index.js
CHANGED
|
@@ -61,6 +61,7 @@ export * from './sn/application/BatchDefinition.js';
|
|
|
61
61
|
export * from './sn/application/BatchInstallation.js';
|
|
62
62
|
export * from './sn/application/CompanyApplications.js';
|
|
63
63
|
export * from './sn/application/StoreApplicationModels.js';
|
|
64
|
+
export * from './sn/application/StoreAppRepairError.js';
|
|
64
65
|
export * from './sn/atf/ATFTest.js';
|
|
65
66
|
export * from './sn/atf/ATFTestExecutor.js';
|
|
66
67
|
export * from './sn/atf/TestFactory.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
const pathIs = (needle) => (path) => path.split("?")[0].endsWith(needle);
|
|
2
2
|
const pathHas = (needle) => (path) => path.includes(needle);
|
|
3
3
|
const pathMatches = (pattern) => (path) => pattern.test(path.split("?")[0]);
|
|
4
|
+
/** An sn_appclient appmanager route, versioned or not, followed by anything but more of its name. */
|
|
5
|
+
const appClientRoute = (route) => pathMatches(new RegExp(`/api/+sn_appclient/+(?:v\\d+/+)?appmanager/+${route}(?![\\w-])`, "i"));
|
|
4
6
|
/** Every method except GET: the debugger reads its breakpoints over the same paths. */
|
|
5
7
|
const NOT_GET = ["post", "put", "patch", "delete"];
|
|
6
8
|
/**
|
|
@@ -40,15 +42,30 @@ const FLOOR = [
|
|
|
40
42
|
// Coverage instead comes from three narrower places: the sysparm_delete_all rule
|
|
41
43
|
// below catches the uninstall, the tier-3 default makes every other POST a write,
|
|
42
44
|
// and the two callers that read or execute through it declare so explicitly.
|
|
45
|
+
// The App Client starts installs, updates, repairs and plugin changes with GETs, on
|
|
46
|
+
// both the unversioned path and /v1/. Matching one spelling left the other a read. The
|
|
47
|
+
// routes are those of the sn_appclient appmanager REST API (sys_ws_operation, Zurich).
|
|
48
|
+
// Not anchored at the end, and case-insensitive: these are minimums, so a spelling the
|
|
49
|
+
// server would still route (a trailing ;param, a doubled slash) must not become a read.
|
|
43
50
|
{
|
|
44
51
|
why: "store application install (issued as a GET)",
|
|
45
52
|
verbs: ["write"],
|
|
46
|
-
matches: (p) =>
|
|
53
|
+
matches: (p) => appClientRoute("app/+install")(p),
|
|
47
54
|
},
|
|
48
55
|
{
|
|
49
56
|
why: "store application update (issued as a GET)",
|
|
50
57
|
verbs: ["write"],
|
|
51
|
-
matches: (p) =>
|
|
58
|
+
matches: (p) => appClientRoute("app/+update")(p),
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
why: "store application repair (issued as a GET)",
|
|
62
|
+
verbs: ["write"],
|
|
63
|
+
matches: (p) => appClientRoute("app/+repair")(p),
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
why: "plugin activation, repair or rollback, demo data load or store sync (issued as a GET)",
|
|
67
|
+
verbs: ["write"],
|
|
68
|
+
matches: (p) => appClientRoute("(?:plugin/+(?:activate|repair|rollback)|loadDemoData|sync_apps)")(p),
|
|
52
69
|
},
|
|
53
70
|
{
|
|
54
71
|
why: "sys_trigger scheduled job — persisting a job outlives the request that made it",
|
|
@@ -97,9 +114,39 @@ function normalizeQuery(request) {
|
|
|
97
114
|
}
|
|
98
115
|
return out;
|
|
99
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* The spellings of a path a floor rule is checked against: as given, and as it will be sent.
|
|
119
|
+
* The request goes out as `new URL(path, instanceUrl)`, which resolves `.` and `..` segments
|
|
120
|
+
* and turns `\` into `/`; the server may decode percent-escapes and drop `;param` path
|
|
121
|
+
* parameters from any segment. Checking only the raw text
|
|
122
|
+
* let `/api/sn_appclient/./appmanager/app/install` through as a read. Either spelling
|
|
123
|
+
* matching is enough, so normalizing can only ever add floor matches, never remove one.
|
|
124
|
+
*/
|
|
125
|
+
function pathSpellings(path) {
|
|
126
|
+
const spellings = new Set([path]);
|
|
127
|
+
const [pathPart, ...rest] = path.split("?");
|
|
128
|
+
const suffix = rest.length ? `?${rest.join("?")}` : "";
|
|
129
|
+
let decoded = pathPart;
|
|
130
|
+
try {
|
|
131
|
+
decoded = decodeURIComponent(pathPart);
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// A malformed escape is sent as-is; the raw and URL-resolved spellings still apply.
|
|
135
|
+
}
|
|
136
|
+
const withoutParams = (text) => text.replace(/;[^/]*/g, "");
|
|
137
|
+
for (const candidate of [pathPart, decoded, withoutParams(pathPart), withoutParams(decoded)]) {
|
|
138
|
+
try {
|
|
139
|
+
spellings.add(new URL(candidate.replace(/\\/g, "/"), "http://policy.invalid").pathname + suffix);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
// Not resolvable as a URL path; the raw spelling is still checked.
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return [...spellings];
|
|
146
|
+
}
|
|
100
147
|
/** Matched floor rules, for the audit log and for tests. */
|
|
101
148
|
export function floorFor(request) {
|
|
102
|
-
const
|
|
149
|
+
const paths = pathSpellings(typeof request.path === "string" ? request.path : "");
|
|
103
150
|
const query = normalizeQuery(request);
|
|
104
151
|
const method = (request.method ?? "get").toLowerCase();
|
|
105
152
|
const verbs = new Set();
|
|
@@ -108,7 +155,7 @@ export function floorFor(request) {
|
|
|
108
155
|
if (rule.methods && !rule.methods.includes(method)) {
|
|
109
156
|
continue;
|
|
110
157
|
}
|
|
111
|
-
if (rule.matches(path, query)) {
|
|
158
|
+
if (paths.some((path) => rule.matches(path, query))) {
|
|
112
159
|
rule.verbs.forEach((v) => verbs.add(v));
|
|
113
160
|
reasons.push(rule.why);
|
|
114
161
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Classify.js","sourceRoot":"","sources":["../../../src/policy/internal/Classify.ts"],"names":[],"mappings":"AAqCA,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACzF,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5F,uFAAuF;AACvF,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,KAAK,GAAyB;IAChC;QACI,GAAG,EAAE,6BAA6B;QAClC,KAAK,EAAE,CAAC,SAAS,CAAC;QAClB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC/C;IACD,+EAA+E;IAC/E,kFAAkF;IAClF,+EAA+E;IAC/E,gFAAgF;IAChF;QACI,GAAG,EAAE,wBAAwB;QAC7B,KAAK,EAAE,CAAC,SAAS,CAAC;QAClB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,yEAAyE,CAAC,CAAC,CAAC,CAAC;KAC5G;IACD;QACI,GAAG,EAAE,yBAAyB;QAC9B,KAAK,EAAE,CAAC,SAAS,CAAC;QAClB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,qDAAqD,CAAC,CAAC,CAAC,CAAC;KACxF;IACD,2EAA2E;IAC3E,oFAAoF;IACpF,qFAAqF;IACrF,gFAAgF;IAChF,iFAAiF;IACjF,kFAAkF;IAClF,6EAA6E;IAC7E;QACI,GAAG,EAAE,6CAA6C;QAClD,KAAK,EAAE,CAAC,OAAO,CAAC;QAChB,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Classify.js","sourceRoot":"","sources":["../../../src/policy/internal/Classify.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ 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";
|
|
7
|
+
import { StoreAppSearchOptions, StoreAppInstallOptions, StoreAppUpdateOptions, StoreAppOperationResult, StoreAppFinalResult, StoreAppRepairOptions, StoreAppRepairResult, StoreAppRepairStart } from "./StoreApplicationModels.js";
|
|
8
8
|
import { OperationProgressCallback } from "../OperationProgress.js";
|
|
9
9
|
export declare enum APP_TAB_CONTEXT {
|
|
10
10
|
AVAILABLE_FOR_YOU = "available_for_you",
|
|
@@ -18,12 +18,17 @@ export declare class ApplicationManager {
|
|
|
18
18
|
APP_INSTALL_API_URL: string;
|
|
19
19
|
APP_SEARCH_POST_API_URL: string;
|
|
20
20
|
APP_UPDATE_API_URL: string;
|
|
21
|
+
APP_REPAIR_API_URL: string;
|
|
22
|
+
/** Reads of the upgrade history after a repair reports success, and the pause between them. */
|
|
23
|
+
REPAIR_HISTORY_ATTEMPTS: number;
|
|
24
|
+
REPAIR_HISTORY_SETTLE_MS: number;
|
|
21
25
|
DEFAULT_INSTALL_TIMEOUT: number;
|
|
22
26
|
DEFAULT_POLL_INTERVAL: number;
|
|
23
27
|
BATCH_INSTALL_TIMEOUT: number;
|
|
24
28
|
_logger: Logger;
|
|
25
29
|
_req: ServiceNowRequest;
|
|
26
30
|
constructor(instance: ServiceNowInstance);
|
|
31
|
+
private _tableAPI;
|
|
27
32
|
private _instance;
|
|
28
33
|
installBatch(batchDefinitionPath: string): Promise<boolean>;
|
|
29
34
|
private getInstallableApplicationPackages;
|
|
@@ -98,6 +103,59 @@ export declare class ApplicationManager {
|
|
|
98
103
|
* @returns StoreAppFinalResult with success status and details
|
|
99
104
|
*/
|
|
100
105
|
updateStoreApplicationAndWait(options: StoreAppUpdateOptions, pollIntervalMs?: number, timeoutMs?: number, onProgress?: OperationProgressCallback): Promise<StoreAppFinalResult>;
|
|
106
|
+
/**
|
|
107
|
+
* Start a repair of an installed store or company application: the platform's Repair
|
|
108
|
+
* Application link on sys_store_app. It reinstalls the INSTALLED version from the
|
|
109
|
+
* application repository without uninstalling the app, reapplying its files and its
|
|
110
|
+
* customization version, if any.
|
|
111
|
+
*
|
|
112
|
+
* Refused before anything is sent, as the platform refuses it, for an inactive app, an
|
|
113
|
+
* app that contains plugins, an app developed on this instance, and demo data the app
|
|
114
|
+
* does not have.
|
|
115
|
+
*
|
|
116
|
+
* Uses GET /api/sn_appclient/appmanager/app/repair, or app/install with isReinstall=true
|
|
117
|
+
* when the instance has queued installation off (see StoreAppRepairEndpoint).
|
|
118
|
+
* @returns The started repair, for waitForStoreApplicationRepair
|
|
119
|
+
* @throws StoreAppRepairError when the repair is refused or the App Client does not start it
|
|
120
|
+
*/
|
|
121
|
+
repairStoreApplication(options: StoreAppRepairOptions): Promise<StoreAppRepairStart>;
|
|
122
|
+
/**
|
|
123
|
+
* Repair an installed store or company application and wait for it to finish.
|
|
124
|
+
* See repairStoreApplication.
|
|
125
|
+
* @param pollIntervalMs Polling interval in ms (default: 5000)
|
|
126
|
+
* @param timeoutMs Timeout in ms (default: 30 min). A queued repair can wait minutes before it runs.
|
|
127
|
+
*/
|
|
128
|
+
repairStoreApplicationAndWait(options: StoreAppRepairOptions, pollIntervalMs?: number, timeoutMs?: number, onProgress?: OperationProgressCallback): Promise<StoreAppRepairResult>;
|
|
129
|
+
/**
|
|
130
|
+
* Wait for a started repair, then read the upgrade history it wrote.
|
|
131
|
+
*
|
|
132
|
+
* `repaired` is true only when the App Client reported success and a new
|
|
133
|
+
* sys_upgrade_history row appeared for the app and finished: the App Client also
|
|
134
|
+
* reports success when it decided no reinstall was necessary, and its tracker can end
|
|
135
|
+
* seconds before the row's counts are filled.
|
|
136
|
+
*/
|
|
137
|
+
waitForStoreApplicationRepair(started: StoreAppRepairStart, pollIntervalMs?: number, timeoutMs?: number, onProgress?: OperationProgressCallback): Promise<StoreAppRepairResult>;
|
|
138
|
+
private _repairTarget;
|
|
139
|
+
private _queuedInstallation;
|
|
140
|
+
/**
|
|
141
|
+
* What the app's upgrade history held before the repair. sys_created_on has whole-second
|
|
142
|
+
* precision, so every row from the newest second is remembered, not only the first returned.
|
|
143
|
+
*/
|
|
144
|
+
private _historyBefore;
|
|
145
|
+
/**
|
|
146
|
+
* The newest upgrade history row the repair can have written: created no earlier than the
|
|
147
|
+
* newest row before it, and not one of those. Another install of the same scope while the
|
|
148
|
+
* repair waited in the queue would be indistinguishable; the history row names no tracker.
|
|
149
|
+
*/
|
|
150
|
+
private _repairHistoryRow;
|
|
151
|
+
/**
|
|
152
|
+
* The repair's history row, with the files it did not apply. Files that were not applied
|
|
153
|
+
* for a reason other than apply-once are read first, so a long list of apply-once files
|
|
154
|
+
* cannot push a fatal error out of the list. `notApplied` counts those, up to the limit + 1.
|
|
155
|
+
*/
|
|
156
|
+
private _repairHistory;
|
|
157
|
+
private _repairStartFailure;
|
|
158
|
+
private _rows;
|
|
101
159
|
/**
|
|
102
160
|
* Poll installation progress via ProgressWorker until complete, timed out, or failed.
|
|
103
161
|
* Uses GET /api/sn_cicd/progress/{progressId}
|
|
@@ -2,6 +2,9 @@ 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
|
+
import { STORE_APP_REPAIR_SKIPPED_LIMIT } from "./StoreApplicationModels.js";
|
|
6
|
+
import { StoreAppRepairError } from "./StoreAppRepairError.js";
|
|
7
|
+
import { TableAPIRequest } from "../../comm/http/TableAPIRequest.js";
|
|
5
8
|
import { createProgressEmitter, toOperationProgress } from "../OperationProgress.js";
|
|
6
9
|
export var APP_TAB_CONTEXT;
|
|
7
10
|
(function (APP_TAB_CONTEXT) {
|
|
@@ -16,6 +19,10 @@ export class ApplicationManager {
|
|
|
16
19
|
APP_INSTALL_API_URL = "/api/sn_appclient/appmanager/app/install";
|
|
17
20
|
APP_SEARCH_POST_API_URL = "/api/sn_appclient/appmanager/apps";
|
|
18
21
|
APP_UPDATE_API_URL = "/api/sn_appclient/appmanager/app/update";
|
|
22
|
+
APP_REPAIR_API_URL = "/api/sn_appclient/appmanager/app/repair";
|
|
23
|
+
/** Reads of the upgrade history after a repair reports success, and the pause between them. */
|
|
24
|
+
REPAIR_HISTORY_ATTEMPTS = 15;
|
|
25
|
+
REPAIR_HISTORY_SETTLE_MS = 2000;
|
|
19
26
|
DEFAULT_INSTALL_TIMEOUT = 1000 * 60 * 30;
|
|
20
27
|
DEFAULT_POLL_INTERVAL = 5000;
|
|
21
28
|
BATCH_INSTALL_TIMEOUT = 1000 * 60 * 30;
|
|
@@ -24,7 +31,9 @@ export class ApplicationManager {
|
|
|
24
31
|
constructor(instance) {
|
|
25
32
|
this._instance = instance;
|
|
26
33
|
this._req = new ServiceNowRequest(instance);
|
|
34
|
+
this._tableAPI = new TableAPIRequest(instance);
|
|
27
35
|
}
|
|
36
|
+
_tableAPI;
|
|
28
37
|
_instance;
|
|
29
38
|
async installBatch(batchDefinitionPath) {
|
|
30
39
|
const batchDefinitionRequest = fs.readFileSync(batchDefinitionPath, 'utf8');
|
|
@@ -350,6 +359,252 @@ export class ApplicationManager {
|
|
|
350
359
|
}
|
|
351
360
|
return await this.waitForInstallationCompletion(trackerId, pollIntervalMs || this.DEFAULT_POLL_INTERVAL, timeoutMs || this.DEFAULT_INSTALL_TIMEOUT, onProgress);
|
|
352
361
|
}
|
|
362
|
+
// ============================================================
|
|
363
|
+
// Store Application Repair
|
|
364
|
+
// ============================================================
|
|
365
|
+
/**
|
|
366
|
+
* Start a repair of an installed store or company application: the platform's Repair
|
|
367
|
+
* Application link on sys_store_app. It reinstalls the INSTALLED version from the
|
|
368
|
+
* application repository without uninstalling the app, reapplying its files and its
|
|
369
|
+
* customization version, if any.
|
|
370
|
+
*
|
|
371
|
+
* Refused before anything is sent, as the platform refuses it, for an inactive app, an
|
|
372
|
+
* app that contains plugins, an app developed on this instance, and demo data the app
|
|
373
|
+
* does not have.
|
|
374
|
+
*
|
|
375
|
+
* Uses GET /api/sn_appclient/appmanager/app/repair, or app/install with isReinstall=true
|
|
376
|
+
* when the instance has queued installation off (see StoreAppRepairEndpoint).
|
|
377
|
+
* @returns The started repair, for waitForStoreApplicationRepair
|
|
378
|
+
* @throws StoreAppRepairError when the repair is refused or the App Client does not start it
|
|
379
|
+
*/
|
|
380
|
+
async repairStoreApplication(options) {
|
|
381
|
+
const app = await this._repairTarget(options);
|
|
382
|
+
const previousHistory = await this._historyBefore(app.scope);
|
|
383
|
+
const endpoint = await this._queuedInstallation() ? 'repair' : 'install';
|
|
384
|
+
const query = {
|
|
385
|
+
app_id: app.sysId,
|
|
386
|
+
version: app.version,
|
|
387
|
+
load_demo_data: String(options.loadDemoData === true)
|
|
388
|
+
};
|
|
389
|
+
if (app.customizationVersion)
|
|
390
|
+
query.customization_version = app.customizationVersion;
|
|
391
|
+
if (endpoint === 'install')
|
|
392
|
+
query.isReinstall = 'true';
|
|
393
|
+
let resp;
|
|
394
|
+
try {
|
|
395
|
+
resp = await this._req.get({
|
|
396
|
+
path: endpoint === 'repair' ? this.APP_REPAIR_API_URL : this.APP_INSTALL_API_URL,
|
|
397
|
+
headers: null,
|
|
398
|
+
query,
|
|
399
|
+
body: null
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
catch (error) {
|
|
403
|
+
throw this._repairStartFailure(error, app);
|
|
404
|
+
}
|
|
405
|
+
const operation = resp.bodyObject?.result;
|
|
406
|
+
const trackerId = operation?.trackerId || operation?.tracker_id || operation?.links?.progress?.id;
|
|
407
|
+
if (resp.status !== 200 || !operation || !trackerId) {
|
|
408
|
+
throw new StoreAppRepairError('start_failed', { app: app.sysId, status: resp.status, serverMessage: operation?.message });
|
|
409
|
+
}
|
|
410
|
+
this._logger.info(`Repair of ${app.scope} ${app.version} started (${endpoint}), tracker ${trackerId}`);
|
|
411
|
+
return { app, trackerId, endpoint, ...previousHistory, operation };
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Repair an installed store or company application and wait for it to finish.
|
|
415
|
+
* See repairStoreApplication.
|
|
416
|
+
* @param pollIntervalMs Polling interval in ms (default: 5000)
|
|
417
|
+
* @param timeoutMs Timeout in ms (default: 30 min). A queued repair can wait minutes before it runs.
|
|
418
|
+
*/
|
|
419
|
+
async repairStoreApplicationAndWait(options, pollIntervalMs, timeoutMs, onProgress) {
|
|
420
|
+
const started = await this.repairStoreApplication(options);
|
|
421
|
+
return await this.waitForStoreApplicationRepair(started, pollIntervalMs, timeoutMs, onProgress);
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Wait for a started repair, then read the upgrade history it wrote.
|
|
425
|
+
*
|
|
426
|
+
* `repaired` is true only when the App Client reported success and a new
|
|
427
|
+
* sys_upgrade_history row appeared for the app and finished: the App Client also
|
|
428
|
+
* reports success when it decided no reinstall was necessary, and its tracker can end
|
|
429
|
+
* seconds before the row's counts are filled.
|
|
430
|
+
*/
|
|
431
|
+
async waitForStoreApplicationRepair(started, pollIntervalMs, timeoutMs, onProgress) {
|
|
432
|
+
const final = await this.waitForInstallationCompletion(started.trackerId, pollIntervalMs || this.DEFAULT_POLL_INTERVAL, timeoutMs || this.DEFAULT_INSTALL_TIMEOUT, onProgress);
|
|
433
|
+
// The tracker can report success before the history row is finished: on dev206299 the
|
|
434
|
+
// row appeared mid-install and its counts were filled seconds after the tracker ended.
|
|
435
|
+
let row = await this._repairHistoryRow(started);
|
|
436
|
+
for (let attempt = 0; final.success && !historyComplete(row) && attempt < this.REPAIR_HISTORY_ATTEMPTS; attempt++) {
|
|
437
|
+
await new Promise(resolve => setTimeout(resolve, this.REPAIR_HISTORY_SETTLE_MS));
|
|
438
|
+
row = await this._repairHistoryRow(started);
|
|
439
|
+
}
|
|
440
|
+
const read = row ? await this._repairHistory(row) : undefined;
|
|
441
|
+
const history = read?.history;
|
|
442
|
+
const complete = historyComplete(row);
|
|
443
|
+
const warnings = [];
|
|
444
|
+
if (final.success && !history) {
|
|
445
|
+
warnings.push('The App Client reported success but wrote no upgrade history for this application, so it may not have reinstalled anything.');
|
|
446
|
+
}
|
|
447
|
+
if (row && !complete) {
|
|
448
|
+
warnings.push(final.success
|
|
449
|
+
? 'The App Client reported success, but the upgrade history was still being written when the wait ended, so the repair probably ran and its counts may be incomplete. Check the history before repairing again.'
|
|
450
|
+
: 'The upgrade history was still being written when the wait ended, so its counts may be incomplete.');
|
|
451
|
+
}
|
|
452
|
+
if (read) {
|
|
453
|
+
// The counts leave out Table Not Found, Fatal Error and Not Loaded; the listed files do not.
|
|
454
|
+
// Apply-once files are expected to be left alone on a reinstall.
|
|
455
|
+
const c = read.history.counts;
|
|
456
|
+
const counted = c.skipped + c.skippedError + c.skippedManualMerge;
|
|
457
|
+
const listed = Math.min(read.notApplied, STORE_APP_REPAIR_SKIPPED_LIMIT);
|
|
458
|
+
const total = Math.max(counted, listed);
|
|
459
|
+
if (total > 0) {
|
|
460
|
+
const more = read.notApplied > STORE_APP_REPAIR_SKIPPED_LIMIT && listed >= counted ? ' or more' : '';
|
|
461
|
+
warnings.push(`${total}${more} file(s) were not applied (skipped ${c.skipped}, errors ${c.skippedError}, manual merge ${c.skippedManualMerge}). See the skipped files and the upgrade history.`);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
return {
|
|
465
|
+
...final,
|
|
466
|
+
app: started.app,
|
|
467
|
+
trackerId: started.trackerId,
|
|
468
|
+
endpoint: started.endpoint,
|
|
469
|
+
history,
|
|
470
|
+
repaired: final.success && history !== undefined && complete,
|
|
471
|
+
warnings
|
|
472
|
+
};
|
|
473
|
+
}
|
|
474
|
+
async _repairTarget(options) {
|
|
475
|
+
const given = typeof options?.app === 'string' ? options.app.trim() : '';
|
|
476
|
+
const bySysId = /^[a-f0-9]{32}$/i.test(given);
|
|
477
|
+
const key = bySysId ? given.toLowerCase() : given;
|
|
478
|
+
// Validated before it goes into an encoded query: a ^ would add conditions.
|
|
479
|
+
if (!bySysId && !/^[a-z0-9_]{1,40}$/i.test(key))
|
|
480
|
+
throw new StoreAppRepairError('invalid_app');
|
|
481
|
+
const match = bySysId ? `sys_id=${key}` : `scope=${key}`;
|
|
482
|
+
const [app] = await this._rows('sys_store_app', match, 'sys_id,name,scope,version,active,contains_plugins,demo_data', 1);
|
|
483
|
+
if (!app) {
|
|
484
|
+
const [local] = await this._rows('sys_app', match, 'sys_id', 1);
|
|
485
|
+
throw new StoreAppRepairError(local ? 'not_a_store_app' : 'app_not_found', { app: key });
|
|
486
|
+
}
|
|
487
|
+
if (app.active !== 'true')
|
|
488
|
+
throw new StoreAppRepairError('app_inactive', { app: app.sys_id, scope: app.scope });
|
|
489
|
+
if (app.contains_plugins === 'true')
|
|
490
|
+
throw new StoreAppRepairError('contains_plugins', { app: app.sys_id, scope: app.scope });
|
|
491
|
+
const hasDemoData = app.demo_data !== 'no_demo_data';
|
|
492
|
+
if (options.loadDemoData && !hasDemoData)
|
|
493
|
+
throw new StoreAppRepairError('no_demo_data', { app: app.sys_id, scope: app.scope });
|
|
494
|
+
// As the Repair dialog does: an app under source control has no customization to
|
|
495
|
+
// reapply; otherwise the installed customization version goes with it.
|
|
496
|
+
let customizationVersion;
|
|
497
|
+
const [repoConfig] = await this._rows('sys_repo_config', `sys_app=${app.sys_id}`, 'sys_id', 1);
|
|
498
|
+
if (!repoConfig) {
|
|
499
|
+
const [customization] = await this._rows('sys_app_customization', `vendor_app=${app.sys_id}^version!=none`, 'version', 1);
|
|
500
|
+
if (customization?.version)
|
|
501
|
+
customizationVersion = customization.version;
|
|
502
|
+
}
|
|
503
|
+
return {
|
|
504
|
+
sysId: app.sys_id,
|
|
505
|
+
name: app.name,
|
|
506
|
+
scope: app.scope,
|
|
507
|
+
version: app.version,
|
|
508
|
+
customizationVersion,
|
|
509
|
+
hasDemoData
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
async _queuedInstallation() {
|
|
513
|
+
const [property] = await this._rows('sys_properties', 'name=sn_appclient.use_queued_installation', 'value', 1);
|
|
514
|
+
return property?.value === 'true';
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* What the app's upgrade history held before the repair. sys_created_on has whole-second
|
|
518
|
+
* precision, so every row from the newest second is remembered, not only the first returned.
|
|
519
|
+
*/
|
|
520
|
+
async _historyBefore(scope) {
|
|
521
|
+
const [newest] = await this._rows('sys_upgrade_history', `to_version=${scope}^ORDERBYDESCsys_created_on`, 'sys_id,sys_created_on', 1);
|
|
522
|
+
if (!newest)
|
|
523
|
+
return { previousHistoryIds: [] };
|
|
524
|
+
const sameSecond = await this._rows('sys_upgrade_history', `to_version=${scope}^sys_created_on=${newest.sys_created_on}`, 'sys_id', 100);
|
|
525
|
+
return {
|
|
526
|
+
previousHistoryIds: [...new Set([newest.sys_id, ...sameSecond.map(row => row.sys_id)])],
|
|
527
|
+
previousHistoryCreated: newest.sys_created_on
|
|
528
|
+
};
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* The newest upgrade history row the repair can have written: created no earlier than the
|
|
532
|
+
* newest row before it, and not one of those. Another install of the same scope while the
|
|
533
|
+
* repair waited in the queue would be indistinguishable; the history row names no tracker.
|
|
534
|
+
*/
|
|
535
|
+
async _repairHistoryRow(started) {
|
|
536
|
+
const since = started.previousHistoryCreated ? `^sys_created_on>=${started.previousHistoryCreated}` : '';
|
|
537
|
+
const rows = await this._rows('sys_upgrade_history', `to_version=${started.app.scope}${since}^ORDERBYDESCsys_created_on`, 'sys_id,sys_created_on,upgrade_started,upgrade_finished,summary_complete_status,added,updated,deleted,unchanged,skipped,skipped_error,skipped_manual_merge,skipped_apply_once', started.previousHistoryIds.length + 1);
|
|
538
|
+
return rows.find(row => !started.previousHistoryIds.includes(row.sys_id));
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* The repair's history row, with the files it did not apply. Files that were not applied
|
|
542
|
+
* for a reason other than apply-once are read first, so a long list of apply-once files
|
|
543
|
+
* cannot push a fatal error out of the list. `notApplied` counts those, up to the limit + 1.
|
|
544
|
+
*/
|
|
545
|
+
async _repairHistory(row) {
|
|
546
|
+
const fields = 'file_name,type,target_name,disposition,reason';
|
|
547
|
+
const problems = Object.keys(SKIPPED_DISPOSITIONS).filter(code => code !== APPLY_ONCE_DISPOSITION).join(',');
|
|
548
|
+
const notApplied = await this._rows('sys_upgrade_history_log', `upgrade_history=${row.sys_id}^dispositionIN${problems}^ORDERBYfile_name`, fields, STORE_APP_REPAIR_SKIPPED_LIMIT + 1);
|
|
549
|
+
const room = STORE_APP_REPAIR_SKIPPED_LIMIT + 1 - notApplied.length;
|
|
550
|
+
const applyOnce = room > 0
|
|
551
|
+
? await this._rows('sys_upgrade_history_log', `upgrade_history=${row.sys_id}^disposition=${APPLY_ONCE_DISPOSITION}^ORDERBYfile_name`, fields, room)
|
|
552
|
+
: [];
|
|
553
|
+
const skippedRows = [...notApplied, ...applyOnce];
|
|
554
|
+
const count = (value) => Number.parseInt(value ?? '', 10) || 0;
|
|
555
|
+
const history = {
|
|
556
|
+
sysId: row.sys_id,
|
|
557
|
+
started: row.upgrade_started || undefined,
|
|
558
|
+
finished: row.upgrade_finished || undefined,
|
|
559
|
+
status: row.summary_complete_status || undefined,
|
|
560
|
+
counts: {
|
|
561
|
+
added: count(row.added),
|
|
562
|
+
updated: count(row.updated),
|
|
563
|
+
deleted: count(row.deleted),
|
|
564
|
+
unchanged: count(row.unchanged),
|
|
565
|
+
skipped: count(row.skipped),
|
|
566
|
+
skippedError: count(row.skipped_error),
|
|
567
|
+
skippedManualMerge: count(row.skipped_manual_merge),
|
|
568
|
+
skippedApplyOnce: count(row.skipped_apply_once)
|
|
569
|
+
},
|
|
570
|
+
skippedFiles: skippedRows.slice(0, STORE_APP_REPAIR_SKIPPED_LIMIT).map(file => ({
|
|
571
|
+
fileName: file.file_name,
|
|
572
|
+
type: file.type,
|
|
573
|
+
targetName: file.target_name,
|
|
574
|
+
disposition: file.disposition,
|
|
575
|
+
dispositionLabel: SKIPPED_DISPOSITIONS[file.disposition] ?? file.disposition,
|
|
576
|
+
reason: file.reason || undefined
|
|
577
|
+
})),
|
|
578
|
+
skippedFilesTruncated: skippedRows.length > STORE_APP_REPAIR_SKIPPED_LIMIT
|
|
579
|
+
};
|
|
580
|
+
return { history, notApplied: notApplied.length };
|
|
581
|
+
}
|
|
582
|
+
_repairStartFailure(error, app) {
|
|
583
|
+
// Policy refusals and session errors say what is wrong themselves.
|
|
584
|
+
const message = error instanceof Error ? error.message : '';
|
|
585
|
+
const failed = /^(?:Error during request\. Status: |Request failed with status )(\d{3})/.exec(message);
|
|
586
|
+
if (!failed)
|
|
587
|
+
return error;
|
|
588
|
+
let serverMessage;
|
|
589
|
+
const body = /Body: (.*)$/s.exec(message)?.[1];
|
|
590
|
+
try {
|
|
591
|
+
const parsed = (body ? JSON.parse(body) : undefined);
|
|
592
|
+
serverMessage = parsed?.error?.message || parsed?.error?.detail || undefined;
|
|
593
|
+
}
|
|
594
|
+
catch {
|
|
595
|
+
serverMessage = undefined;
|
|
596
|
+
}
|
|
597
|
+
return new StoreAppRepairError('start_failed', { app: app.sysId, status: Number(failed[1]), serverMessage }, error);
|
|
598
|
+
}
|
|
599
|
+
async _rows(table, query, fields, limit) {
|
|
600
|
+
const resp = await this._tableAPI.get(table, {
|
|
601
|
+
sysparm_query: query,
|
|
602
|
+
sysparm_fields: fields,
|
|
603
|
+
sysparm_limit: String(limit),
|
|
604
|
+
sysparm_exclude_reference_link: 'true'
|
|
605
|
+
});
|
|
606
|
+
return resp.bodyObject?.result ?? [];
|
|
607
|
+
}
|
|
353
608
|
/**
|
|
354
609
|
* Poll installation progress via ProgressWorker until complete, timed out, or failed.
|
|
355
610
|
* Uses GET /api/sn_cicd/progress/{progressId}
|
|
@@ -437,6 +692,23 @@ export class ApplicationManager {
|
|
|
437
692
|
return 0;
|
|
438
693
|
}
|
|
439
694
|
}
|
|
695
|
+
/** sys_upgrade_history_log dispositions a repair reports as not applied. */
|
|
696
|
+
const SKIPPED_DISPOSITIONS = {
|
|
697
|
+
"4": "Skipped",
|
|
698
|
+
"6": "Table Not Found",
|
|
699
|
+
"9": "Skipped Error",
|
|
700
|
+
"10": "Skipped Manual Merge",
|
|
701
|
+
"11": "Skipped Apply Once",
|
|
702
|
+
"104": "Skipped (second pass)",
|
|
703
|
+
"106": "Table Not Found (second pass)",
|
|
704
|
+
"301": "Fatal Error",
|
|
705
|
+
"302": "Not Loaded"
|
|
706
|
+
};
|
|
707
|
+
const APPLY_ONCE_DISPOSITION = "11";
|
|
708
|
+
/** A history row is finished once it has an end time and its summary is complete. */
|
|
709
|
+
function historyComplete(row) {
|
|
710
|
+
return !!row?.upgrade_finished && row.summary_complete_status === "complete";
|
|
711
|
+
}
|
|
440
712
|
export class BatchInstallResultResponse {
|
|
441
713
|
result;
|
|
442
714
|
}
|
|
@@ -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,14 @@
|
|
|
1
|
+
import type { StoreAppRepairErrorCode } from './StoreApplicationModels.js';
|
|
2
|
+
/** Values a StoreAppRepairError may carry: ids and scopes are checked, server text is bounded. */
|
|
3
|
+
export interface StoreAppRepairErrorDetail {
|
|
4
|
+
app?: string;
|
|
5
|
+
scope?: string;
|
|
6
|
+
status?: number;
|
|
7
|
+
serverMessage?: string;
|
|
8
|
+
}
|
|
9
|
+
/** A repair that was refused before it started, or that the App Client would not start. */
|
|
10
|
+
export declare class StoreAppRepairError extends Error {
|
|
11
|
+
readonly code: StoreAppRepairErrorCode;
|
|
12
|
+
readonly detail?: StoreAppRepairErrorDetail;
|
|
13
|
+
constructor(code: StoreAppRepairErrorCode, detail?: StoreAppRepairErrorDetail, cause?: unknown);
|
|
14
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const MESSAGES = {
|
|
2
|
+
invalid_app: 'Give the installed application as its sys_store_app sys_id or its scope.',
|
|
3
|
+
app_not_found: 'No installed store or company application matches.',
|
|
4
|
+
not_a_store_app: 'The application was developed on this instance (sys_app), so there is no repository copy to repair it from.',
|
|
5
|
+
app_inactive: 'The application is not active. The platform offers Repair only for an active application.',
|
|
6
|
+
contains_plugins: 'The application contains plugins. Repair it from its sys_store_app record in the UI, which sends the plugin list.',
|
|
7
|
+
no_demo_data: 'The application has no demo data to load.',
|
|
8
|
+
start_failed: 'The App Client did not start the repair.',
|
|
9
|
+
};
|
|
10
|
+
const SYS_ID = /^[a-f0-9]{32}$/;
|
|
11
|
+
const SCOPE = /^[a-z0-9_]{1,40}$/i;
|
|
12
|
+
/** A repair that was refused before it started, or that the App Client would not start. */
|
|
13
|
+
export class StoreAppRepairError extends Error {
|
|
14
|
+
code;
|
|
15
|
+
detail;
|
|
16
|
+
constructor(code, detail, cause) {
|
|
17
|
+
super(`Store application repair refused (${code}): ${MESSAGES[code]}`, cause === undefined ? undefined : { cause });
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.name = 'StoreAppRepairError';
|
|
20
|
+
const safe = {};
|
|
21
|
+
if (detail?.app && (SYS_ID.test(detail.app) || SCOPE.test(detail.app)))
|
|
22
|
+
safe.app = detail.app;
|
|
23
|
+
if (detail?.scope && SCOPE.test(detail.scope))
|
|
24
|
+
safe.scope = detail.scope;
|
|
25
|
+
if (detail?.status !== undefined && Number.isInteger(detail.status))
|
|
26
|
+
safe.status = detail.status;
|
|
27
|
+
if (detail?.serverMessage)
|
|
28
|
+
safe.serverMessage = String(detail.serverMessage).slice(0, 300);
|
|
29
|
+
this.detail = Object.keys(safe).length ? safe : undefined;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=StoreAppRepairError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreAppRepairError.js","sourceRoot":"","sources":["../../../src/sn/application/StoreAppRepairError.ts"],"names":[],"mappings":"AAUA,MAAM,QAAQ,GAA4C;IACtD,WAAW,EAAE,0EAA0E;IACvF,aAAa,EAAE,oDAAoD;IACnE,eAAe,EAAE,6GAA6G;IAC9H,YAAY,EAAE,2FAA2F;IACzG,gBAAgB,EAAE,mHAAmH;IACrI,YAAY,EAAE,2CAA2C;IACzD,YAAY,EAAE,0CAA0C;CAC3D,CAAC;AAEF,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAChC,MAAM,KAAK,GAAG,oBAAoB,CAAC;AAEnC,2FAA2F;AAC3F,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAGP;IAFnB,MAAM,CAA6B;IAEnD,YAAmC,IAA6B,EAAE,MAAkC,EAAE,KAAe;QACjH,KAAK,CAAC,qCAAqC,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QADrF,SAAI,GAAJ,IAAI,CAAyB;QAE5D,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,MAAM,IAAI,GAA8B,EAAE,CAAC;QAC3C,IAAI,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QAC9F,IAAI,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACzE,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QACjG,IAAI,MAAM,EAAE,aAAa;YAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,CAAC;CACJ"}
|
|
@@ -97,3 +97,100 @@ export interface StoreAppFinalResult {
|
|
|
97
97
|
/** Completion percentage */
|
|
98
98
|
percent_complete: number;
|
|
99
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Options for repairing an installed store or company application: reinstalling the
|
|
102
|
+
* installed version from its repository without uninstalling it, as the platform's
|
|
103
|
+
* Repair Application link on sys_store_app does.
|
|
104
|
+
*/
|
|
105
|
+
export interface StoreAppRepairOptions {
|
|
106
|
+
/** The installed application's sys_store_app sys_id, or its scope (e.g. "x_acme_app"). */
|
|
107
|
+
app: string;
|
|
108
|
+
/** Load the application's demo data as well. Refused for an app that has none. */
|
|
109
|
+
loadDemoData?: boolean;
|
|
110
|
+
}
|
|
111
|
+
/** The installed application a repair reinstalls. */
|
|
112
|
+
export interface StoreAppRepairTarget {
|
|
113
|
+
/** sys_store_app sys_id, which the App Client takes as app_id. */
|
|
114
|
+
sysId: string;
|
|
115
|
+
name: string;
|
|
116
|
+
scope: string;
|
|
117
|
+
/** The installed version: a repair reinstalls this version, never another. */
|
|
118
|
+
version: string;
|
|
119
|
+
/** The customization version reapplied with it, when the app has one. */
|
|
120
|
+
customizationVersion?: string;
|
|
121
|
+
/** Whether the application ships demo data. */
|
|
122
|
+
hasDemoData: boolean;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Which App Client endpoint started the repair.
|
|
126
|
+
* - `repair`: GET appmanager/app/repair, used when the property
|
|
127
|
+
* sn_appclient.use_queued_installation is "true".
|
|
128
|
+
* - `install`: GET appmanager/app/install with isReinstall=true, used otherwise (the App
|
|
129
|
+
* Client treats a missing property as off). With queued installation off, the repair
|
|
130
|
+
* endpoint passes its reinstall flag on as a boolean where a string is compared, and the
|
|
131
|
+
* repair silently becomes "no upgrade necessary"; this path does not.
|
|
132
|
+
*/
|
|
133
|
+
export type StoreAppRepairEndpoint = 'repair' | 'install';
|
|
134
|
+
/** A repair that has been started: pass it to waitForStoreApplicationRepair. */
|
|
135
|
+
export interface StoreAppRepairStart {
|
|
136
|
+
app: StoreAppRepairTarget;
|
|
137
|
+
trackerId: string;
|
|
138
|
+
endpoint: StoreAppRepairEndpoint;
|
|
139
|
+
/** The app's sys_upgrade_history rows from the newest second before the repair, to tell the repair's own row apart. */
|
|
140
|
+
previousHistoryIds: string[];
|
|
141
|
+
/** sys_created_on of the newest of those rows; absent when the app had no history. */
|
|
142
|
+
previousHistoryCreated?: string;
|
|
143
|
+
/** The App Client's response. */
|
|
144
|
+
operation: StoreAppOperationResult;
|
|
145
|
+
}
|
|
146
|
+
/** Counts from the repair's sys_upgrade_history row. */
|
|
147
|
+
export interface StoreAppRepairCounts {
|
|
148
|
+
added: number;
|
|
149
|
+
updated: number;
|
|
150
|
+
deleted: number;
|
|
151
|
+
unchanged: number;
|
|
152
|
+
skipped: number;
|
|
153
|
+
skippedError: number;
|
|
154
|
+
skippedManualMerge: number;
|
|
155
|
+
skippedApplyOnce: number;
|
|
156
|
+
}
|
|
157
|
+
/** A file the repair did not apply, from sys_upgrade_history_log. Payloads are never read. */
|
|
158
|
+
export interface StoreAppRepairSkippedFile {
|
|
159
|
+
fileName: string;
|
|
160
|
+
type: string;
|
|
161
|
+
targetName: string;
|
|
162
|
+
disposition: string;
|
|
163
|
+
dispositionLabel: string;
|
|
164
|
+
reason?: string;
|
|
165
|
+
}
|
|
166
|
+
/** The upgrade history the repair wrote. */
|
|
167
|
+
export interface StoreAppRepairHistory {
|
|
168
|
+
sysId: string;
|
|
169
|
+
started?: string;
|
|
170
|
+
finished?: string;
|
|
171
|
+
status?: string;
|
|
172
|
+
counts: StoreAppRepairCounts;
|
|
173
|
+
/** Skipped and failed files, at most STORE_APP_REPAIR_SKIPPED_LIMIT of them. */
|
|
174
|
+
skippedFiles: StoreAppRepairSkippedFile[];
|
|
175
|
+
/** True when there were more skipped files than skippedFiles holds. */
|
|
176
|
+
skippedFilesTruncated: boolean;
|
|
177
|
+
}
|
|
178
|
+
/** A finished (or timed-out) repair. */
|
|
179
|
+
export interface StoreAppRepairResult extends StoreAppFinalResult {
|
|
180
|
+
app: StoreAppRepairTarget;
|
|
181
|
+
trackerId: string;
|
|
182
|
+
endpoint: StoreAppRepairEndpoint;
|
|
183
|
+
/** The sys_upgrade_history row this repair wrote; absent when it wrote none. */
|
|
184
|
+
history?: StoreAppRepairHistory;
|
|
185
|
+
/**
|
|
186
|
+
* True only when the App Client reported success AND a new upgrade history row was
|
|
187
|
+
* written and finished. The App Client reports success for "no upgrade necessary" too,
|
|
188
|
+
* so success alone does not show that anything was reinstalled.
|
|
189
|
+
*/
|
|
190
|
+
repaired: boolean;
|
|
191
|
+
warnings: string[];
|
|
192
|
+
}
|
|
193
|
+
/** Why a repair was refused or could not start. */
|
|
194
|
+
export type StoreAppRepairErrorCode = 'invalid_app' | 'app_not_found' | 'not_a_store_app' | 'app_inactive' | 'contains_plugins' | 'no_demo_data' | 'start_failed';
|
|
195
|
+
/** Most skipped files a repair result lists. */
|
|
196
|
+
export declare const STORE_APP_REPAIR_SKIPPED_LIMIT = 50;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreApplicationModels.js","sourceRoot":"","sources":["../../../src/sn/application/StoreApplicationModels.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"StoreApplicationModels.js","sourceRoot":"","sources":["../../../src/sn/application/StoreApplicationModels.ts"],"names":[],"mappings":"AA2PA,gDAAgD;AAChD,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sonisoft/now-sdk-ext-core",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.17.0",
|
|
4
4
|
"description": "Comprehensive TypeScript library extending ServiceNow SDK with application management, ATF testing, real-time log monitoring, AMB event subscriptions, and automation tools",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"servicenow",
|