@uipath/gov-tool 1.198.0-preview.95 → 1.198.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/tool.js +257 -150
- package/package.json +2 -2
package/dist/tool.js
CHANGED
|
@@ -21230,7 +21230,7 @@ var require_commander = __commonJS((exports) => {
|
|
|
21230
21230
|
var package_default = {
|
|
21231
21231
|
name: "@uipath/gov-tool",
|
|
21232
21232
|
license: "MIT",
|
|
21233
|
-
version: "1.198.0
|
|
21233
|
+
version: "1.198.0",
|
|
21234
21234
|
description: "Manage UiPath governance — AOps policies, Access policies, and compliance packs.",
|
|
21235
21235
|
private: false,
|
|
21236
21236
|
repository: {
|
|
@@ -29604,11 +29604,36 @@ class NodeContextStorage {
|
|
|
29604
29604
|
return this.storage.getStore();
|
|
29605
29605
|
}
|
|
29606
29606
|
}
|
|
29607
|
+
// ../../common/src/telemetry/trace-context.ts
|
|
29608
|
+
var TELEMETRY_TRACEPARENT_ENV = "TRACEPARENT";
|
|
29609
|
+
var TRACEPARENT_PATTERN = /^00-([0-9a-f]{32})-([0-9a-f]{16})-[0-9a-f]{2}$/;
|
|
29610
|
+
function getProcessEnv() {
|
|
29611
|
+
return globalThis.process?.env;
|
|
29612
|
+
}
|
|
29613
|
+
function parseInboundTraceparent(value) {
|
|
29614
|
+
if (!value) {
|
|
29615
|
+
return;
|
|
29616
|
+
}
|
|
29617
|
+
const match = TRACEPARENT_PATTERN.exec(value.trim().toLowerCase());
|
|
29618
|
+
if (!match) {
|
|
29619
|
+
return;
|
|
29620
|
+
}
|
|
29621
|
+
const [, traceId, parentSpanId] = match;
|
|
29622
|
+
if (/^0+$/.test(traceId) || /^0+$/.test(parentSpanId)) {
|
|
29623
|
+
return;
|
|
29624
|
+
}
|
|
29625
|
+
return { traceId, parentSpanId };
|
|
29626
|
+
}
|
|
29627
|
+
function getInboundTraceContext() {
|
|
29628
|
+
return parseInboundTraceparent(getProcessEnv()?.[TELEMETRY_TRACEPARENT_ENV]);
|
|
29629
|
+
}
|
|
29630
|
+
|
|
29607
29631
|
// ../../common/src/telemetry/session-id.ts
|
|
29608
29632
|
var TELEMETRY_SESSION_ID_ENV = "UIPATH_SESSION_ID";
|
|
29609
29633
|
var TELEMETRY_SESSION_ID_PROPERTY = "session_id";
|
|
29610
29634
|
var telemetrySessionIdSlot = singleton("TelemetrySessionId");
|
|
29611
|
-
|
|
29635
|
+
var telemetryOperationIdSlot = singleton("TelemetryOperationId");
|
|
29636
|
+
function getProcessEnv2() {
|
|
29612
29637
|
return globalThis.process?.env;
|
|
29613
29638
|
}
|
|
29614
29639
|
function normalizeSessionId(value) {
|
|
@@ -29619,12 +29644,159 @@ function normalizeSessionId(value) {
|
|
|
29619
29644
|
return trimmed || undefined;
|
|
29620
29645
|
}
|
|
29621
29646
|
function getConfiguredTelemetrySessionId() {
|
|
29622
|
-
return normalizeSessionId(
|
|
29647
|
+
return normalizeSessionId(getProcessEnv2()?.[TELEMETRY_SESSION_ID_ENV]);
|
|
29623
29648
|
}
|
|
29624
29649
|
function resolveTelemetrySessionId(existingSessionId) {
|
|
29625
29650
|
return getConfiguredTelemetrySessionId() ?? normalizeSessionId(existingSessionId);
|
|
29626
29651
|
}
|
|
29652
|
+
function getTelemetryOperationId() {
|
|
29653
|
+
const existing = telemetryOperationIdSlot.get();
|
|
29654
|
+
if (existing) {
|
|
29655
|
+
return existing;
|
|
29656
|
+
}
|
|
29657
|
+
const inboundTraceId = getInboundTraceContext()?.traceId;
|
|
29658
|
+
const generated = inboundTraceId ?? crypto.randomUUID().replaceAll("-", "");
|
|
29659
|
+
telemetryOperationIdSlot.set(generated);
|
|
29660
|
+
return generated;
|
|
29661
|
+
}
|
|
29662
|
+
// ../../common/src/telemetry/pii-redactor.ts
|
|
29663
|
+
var REDACTED = "[REDACTED]";
|
|
29664
|
+
var MAX_VALUE_LENGTH = 200;
|
|
29665
|
+
var SENSITIVE_NAME_TOKENS = new Set([
|
|
29666
|
+
"token",
|
|
29667
|
+
"tokens",
|
|
29668
|
+
"secret",
|
|
29669
|
+
"secrets",
|
|
29670
|
+
"password",
|
|
29671
|
+
"passwords",
|
|
29672
|
+
"pwd",
|
|
29673
|
+
"credential",
|
|
29674
|
+
"credentials",
|
|
29675
|
+
"auth",
|
|
29676
|
+
"authentication",
|
|
29677
|
+
"authorization",
|
|
29678
|
+
"authority",
|
|
29679
|
+
"cert",
|
|
29680
|
+
"certificate",
|
|
29681
|
+
"certificates"
|
|
29682
|
+
]);
|
|
29683
|
+
var SENSITIVE_KEY_PREFIXES = new Set([
|
|
29684
|
+
"api",
|
|
29685
|
+
"access",
|
|
29686
|
+
"client",
|
|
29687
|
+
"private",
|
|
29688
|
+
"public",
|
|
29689
|
+
"signing",
|
|
29690
|
+
"encryption",
|
|
29691
|
+
"session",
|
|
29692
|
+
"master",
|
|
29693
|
+
"shared",
|
|
29694
|
+
"root",
|
|
29695
|
+
"ssh",
|
|
29696
|
+
"rsa",
|
|
29697
|
+
"aes",
|
|
29698
|
+
"hmac",
|
|
29699
|
+
"oauth"
|
|
29700
|
+
]);
|
|
29701
|
+
var UUID_PATTERN = /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi;
|
|
29702
|
+
var EMAIL_PATTERN = /\b[^\s@]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g;
|
|
29703
|
+
var JWT_PATTERN = /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g;
|
|
29704
|
+
var LONG_TOKEN_PATTERN = /\b[A-Za-z0-9_-]{40,}\b/g;
|
|
29705
|
+
var USER_HOME_PATTERN = /([/\\])(Users|home)([/\\])([^/\\]+)/gi;
|
|
29706
|
+
var URL_PATTERN = /\bhttps?:\/\/[^\s,;]+/gi;
|
|
29707
|
+
var URL_TRAILING_PUNCT = /[.,;:!?)\]}>'"]+$/;
|
|
29708
|
+
function shortHash(input) {
|
|
29709
|
+
let hash = 2166136261;
|
|
29710
|
+
for (let i = 0;i < input.length; i++) {
|
|
29711
|
+
hash ^= input.charCodeAt(i);
|
|
29712
|
+
hash = Math.imul(hash, 16777619);
|
|
29713
|
+
}
|
|
29714
|
+
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
29715
|
+
}
|
|
29716
|
+
function redactUrl(raw) {
|
|
29717
|
+
try {
|
|
29718
|
+
const url = new URL(raw);
|
|
29719
|
+
return `${url.protocol}//${url.host}`;
|
|
29720
|
+
} catch {
|
|
29721
|
+
return `url#${shortHash(raw)}`;
|
|
29722
|
+
}
|
|
29723
|
+
}
|
|
29724
|
+
function redactValueDetectors(value) {
|
|
29725
|
+
let out = value;
|
|
29726
|
+
out = out.replace(JWT_PATTERN, () => REDACTED);
|
|
29727
|
+
out = out.replace(URL_PATTERN, (match) => {
|
|
29728
|
+
const trailing = match.match(URL_TRAILING_PUNCT)?.[0] ?? "";
|
|
29729
|
+
const core2 = trailing ? match.slice(0, -trailing.length) : match;
|
|
29730
|
+
return `${redactUrl(core2)}${trailing}`;
|
|
29731
|
+
});
|
|
29732
|
+
out = out.replace(USER_HOME_PATTERN, (_match, sep1, folder, sep2) => `${sep1}${folder}${sep2}<user>`);
|
|
29733
|
+
out = out.replace(EMAIL_PATTERN, (match) => `email#${shortHash(match)}`);
|
|
29734
|
+
out = out.replace(UUID_PATTERN, (match) => `uuid#${shortHash(match)}`);
|
|
29735
|
+
out = out.replace(LONG_TOKEN_PATTERN, () => REDACTED);
|
|
29736
|
+
if (out.length > MAX_VALUE_LENGTH) {
|
|
29737
|
+
out = `${out.slice(0, MAX_VALUE_LENGTH)}…`;
|
|
29738
|
+
}
|
|
29739
|
+
return out;
|
|
29740
|
+
}
|
|
29741
|
+
function redactValue(value) {
|
|
29742
|
+
return redactValueDetectors(value);
|
|
29743
|
+
}
|
|
29744
|
+
function redactError(error) {
|
|
29745
|
+
const safe = new Error(redactValueDetectors(error.message ?? ""));
|
|
29746
|
+
safe.name = error.name;
|
|
29747
|
+
safe.stack = typeof error.stack === "string" ? redactValueDetectors(error.stack) : undefined;
|
|
29748
|
+
return safe;
|
|
29749
|
+
}
|
|
29750
|
+
function nameTokens(name) {
|
|
29751
|
+
return name.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").split(/[\s._-]+/).map((t) => t.toLowerCase()).filter(Boolean);
|
|
29752
|
+
}
|
|
29753
|
+
function isSensitiveName(name) {
|
|
29754
|
+
const tokens = nameTokens(name);
|
|
29755
|
+
for (let i = 0;i < tokens.length; i++) {
|
|
29756
|
+
const token = tokens[i];
|
|
29757
|
+
if (SENSITIVE_NAME_TOKENS.has(token)) {
|
|
29758
|
+
return true;
|
|
29759
|
+
}
|
|
29760
|
+
if (token === "key" || token === "keys") {
|
|
29761
|
+
const prev = tokens[i - 1];
|
|
29762
|
+
if (prev && SENSITIVE_KEY_PREFIXES.has(prev)) {
|
|
29763
|
+
return true;
|
|
29764
|
+
}
|
|
29765
|
+
}
|
|
29766
|
+
}
|
|
29767
|
+
return false;
|
|
29768
|
+
}
|
|
29769
|
+
function redactProperty(name, value) {
|
|
29770
|
+
if (value === undefined || value === null) {
|
|
29771
|
+
return;
|
|
29772
|
+
}
|
|
29773
|
+
if (isSensitiveName(name)) {
|
|
29774
|
+
return REDACTED;
|
|
29775
|
+
}
|
|
29776
|
+
if (typeof value === "boolean" || typeof value === "number") {
|
|
29777
|
+
return value;
|
|
29778
|
+
}
|
|
29779
|
+
if (typeof value !== "string") {
|
|
29780
|
+
return "[OBJECT]";
|
|
29781
|
+
}
|
|
29782
|
+
return redactValueDetectors(value);
|
|
29783
|
+
}
|
|
29784
|
+
function redactProperties(properties) {
|
|
29785
|
+
const out = {};
|
|
29786
|
+
for (const [name, value] of Object.entries(properties)) {
|
|
29787
|
+
const redacted = redactProperty(name, value);
|
|
29788
|
+
if (redacted !== undefined) {
|
|
29789
|
+
out[name] = redacted;
|
|
29790
|
+
}
|
|
29791
|
+
}
|
|
29792
|
+
return out;
|
|
29793
|
+
}
|
|
29794
|
+
|
|
29627
29795
|
// ../../common/src/telemetry/telemetry-service.ts
|
|
29796
|
+
var TELEMETRY_OPERATION_ID_PROPERTY = "uip.trace.operation_id";
|
|
29797
|
+
var TELEMETRY_PARENT_ID_PROPERTY = "uip.trace.parent_id";
|
|
29798
|
+
var TELEMETRY_SPAN_ID_PROPERTY = "uip.trace.span_id";
|
|
29799
|
+
|
|
29628
29800
|
class TelemetryService {
|
|
29629
29801
|
telemetryProvider;
|
|
29630
29802
|
contextStorage;
|
|
@@ -29651,11 +29823,15 @@ class TelemetryService {
|
|
|
29651
29823
|
trackException(error, properties) {
|
|
29652
29824
|
const context = this.getCurrentContext();
|
|
29653
29825
|
const enrichedProperties = this.enrichPropertiesWithContext(properties, context);
|
|
29654
|
-
this.telemetryProvider.trackException(error, enrichedProperties);
|
|
29826
|
+
this.telemetryProvider.trackException(redactError(error), enrichedProperties);
|
|
29655
29827
|
}
|
|
29656
29828
|
async trackRequest(name, fn, properties) {
|
|
29829
|
+
const parentContext = this.getCurrentContext();
|
|
29830
|
+
const operationId = parentContext?.operationId ?? this.operationId ?? getTelemetryOperationId();
|
|
29831
|
+
const parentId = parentContext ? parentContext.id : this.inboundParentIdFor(operationId);
|
|
29657
29832
|
const context = {
|
|
29658
|
-
operationId
|
|
29833
|
+
operationId,
|
|
29834
|
+
...parentId !== undefined ? { parentId } : {},
|
|
29659
29835
|
id: this.generateId()
|
|
29660
29836
|
};
|
|
29661
29837
|
const startTime = performance.now();
|
|
@@ -29673,6 +29849,45 @@ class TelemetryService {
|
|
|
29673
29849
|
throw error;
|
|
29674
29850
|
}
|
|
29675
29851
|
}
|
|
29852
|
+
trackRequestResult(name, durationMs, success, properties, context) {
|
|
29853
|
+
const requestContext = context ?? {
|
|
29854
|
+
operationId: this.operationId ?? getTelemetryOperationId(),
|
|
29855
|
+
id: this.generateId()
|
|
29856
|
+
};
|
|
29857
|
+
const enrichedProperties = this.enrichPropertiesWithContext(properties, requestContext);
|
|
29858
|
+
this.telemetryProvider.trackRequest(name, durationMs, success, enrichedProperties);
|
|
29859
|
+
}
|
|
29860
|
+
createRequestContext() {
|
|
29861
|
+
const operationId = this.operationId ?? getTelemetryOperationId();
|
|
29862
|
+
const parentId = this.inboundParentIdFor(operationId);
|
|
29863
|
+
return {
|
|
29864
|
+
operationId,
|
|
29865
|
+
...parentId !== undefined ? { parentId } : {},
|
|
29866
|
+
id: this.generateId()
|
|
29867
|
+
};
|
|
29868
|
+
}
|
|
29869
|
+
inboundParentIdFor(operationId) {
|
|
29870
|
+
const inbound = getInboundTraceContext();
|
|
29871
|
+
return inbound && inbound.traceId === operationId ? inbound.parentSpanId : undefined;
|
|
29872
|
+
}
|
|
29873
|
+
runWithContext(context, fn) {
|
|
29874
|
+
return this.contextStorage.run(context, fn);
|
|
29875
|
+
}
|
|
29876
|
+
createDependencyContext() {
|
|
29877
|
+
const parentContext = this.getCurrentContext();
|
|
29878
|
+
if (!parentContext) {
|
|
29879
|
+
return;
|
|
29880
|
+
}
|
|
29881
|
+
return {
|
|
29882
|
+
operationId: parentContext.operationId,
|
|
29883
|
+
parentId: parentContext.id,
|
|
29884
|
+
id: this.generateId()
|
|
29885
|
+
};
|
|
29886
|
+
}
|
|
29887
|
+
trackDependencyResult(name, type2, durationMs, success, properties, context, resultCode) {
|
|
29888
|
+
const enrichedProperties = this.enrichPropertiesWithContext(properties, context);
|
|
29889
|
+
this.telemetryProvider.trackDependency(redactValue(name), type2, durationMs, success, enrichedProperties, resultCode);
|
|
29890
|
+
}
|
|
29676
29891
|
async trackDependencyOperation(name, type2, fn, properties) {
|
|
29677
29892
|
const parentContext = this.getCurrentContext();
|
|
29678
29893
|
if (!parentContext) {
|
|
@@ -29709,8 +29924,12 @@ class TelemetryService {
|
|
|
29709
29924
|
...getExecutionContextTelemetryProperties(),
|
|
29710
29925
|
...globalProperties,
|
|
29711
29926
|
...this.defaultProperties,
|
|
29712
|
-
...properties,
|
|
29713
|
-
...context
|
|
29927
|
+
...redactProperties(properties ?? {}),
|
|
29928
|
+
...context ? {
|
|
29929
|
+
[TELEMETRY_OPERATION_ID_PROPERTY]: context.operationId,
|
|
29930
|
+
...context.parentId !== undefined ? { [TELEMETRY_PARENT_ID_PROPERTY]: context.parentId } : {},
|
|
29931
|
+
[TELEMETRY_SPAN_ID_PROPERTY]: context.id
|
|
29932
|
+
} : {}
|
|
29714
29933
|
};
|
|
29715
29934
|
if (sessionId === undefined) {
|
|
29716
29935
|
delete enriched[TELEMETRY_SESSION_ID_PROPERTY];
|
|
@@ -29720,7 +29939,16 @@ class TelemetryService {
|
|
|
29720
29939
|
return enriched;
|
|
29721
29940
|
}
|
|
29722
29941
|
generateId() {
|
|
29723
|
-
|
|
29942
|
+
const bytes = new Uint8Array(8);
|
|
29943
|
+
let hex = "";
|
|
29944
|
+
do {
|
|
29945
|
+
crypto.getRandomValues(bytes);
|
|
29946
|
+
hex = "";
|
|
29947
|
+
for (const byte of bytes) {
|
|
29948
|
+
hex += byte.toString(16).padStart(2, "0");
|
|
29949
|
+
}
|
|
29950
|
+
} while (/^0+$/.test(hex));
|
|
29951
|
+
return hex;
|
|
29724
29952
|
}
|
|
29725
29953
|
}
|
|
29726
29954
|
// ../../common/src/telemetry/node-appinsights-telemetry-provider.ts
|
|
@@ -30422,134 +30650,11 @@ function buildCommandTelemetryAttribution(commandPath, skillSource) {
|
|
|
30422
30650
|
};
|
|
30423
30651
|
}
|
|
30424
30652
|
|
|
30425
|
-
// ../../common/src/telemetry/pii-redactor.ts
|
|
30426
|
-
var REDACTED = "[REDACTED]";
|
|
30427
|
-
var MAX_VALUE_LENGTH = 200;
|
|
30428
|
-
var SENSITIVE_NAME_TOKENS = new Set([
|
|
30429
|
-
"token",
|
|
30430
|
-
"tokens",
|
|
30431
|
-
"secret",
|
|
30432
|
-
"secrets",
|
|
30433
|
-
"password",
|
|
30434
|
-
"passwords",
|
|
30435
|
-
"pwd",
|
|
30436
|
-
"credential",
|
|
30437
|
-
"credentials",
|
|
30438
|
-
"auth",
|
|
30439
|
-
"authentication",
|
|
30440
|
-
"authorization",
|
|
30441
|
-
"authority",
|
|
30442
|
-
"cert",
|
|
30443
|
-
"certificate",
|
|
30444
|
-
"certificates"
|
|
30445
|
-
]);
|
|
30446
|
-
var SENSITIVE_KEY_PREFIXES = new Set([
|
|
30447
|
-
"api",
|
|
30448
|
-
"access",
|
|
30449
|
-
"client",
|
|
30450
|
-
"private",
|
|
30451
|
-
"public",
|
|
30452
|
-
"signing",
|
|
30453
|
-
"encryption",
|
|
30454
|
-
"session",
|
|
30455
|
-
"master",
|
|
30456
|
-
"shared",
|
|
30457
|
-
"root",
|
|
30458
|
-
"ssh",
|
|
30459
|
-
"rsa",
|
|
30460
|
-
"aes",
|
|
30461
|
-
"hmac",
|
|
30462
|
-
"oauth"
|
|
30463
|
-
]);
|
|
30464
|
-
var UUID_PATTERN = /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi;
|
|
30465
|
-
var EMAIL_PATTERN = /\b[^\s@]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g;
|
|
30466
|
-
var JWT_PATTERN = /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g;
|
|
30467
|
-
var LONG_TOKEN_PATTERN = /\b[A-Za-z0-9_-]{40,}\b/g;
|
|
30468
|
-
var USER_HOME_PATTERN = /([/\\])(Users|home)([/\\])([^/\\]+)/gi;
|
|
30469
|
-
var URL_PATTERN = /\bhttps?:\/\/[^\s,;]+/gi;
|
|
30470
|
-
var URL_TRAILING_PUNCT = /[.,;:!?)\]}>'"]+$/;
|
|
30471
|
-
function shortHash(input) {
|
|
30472
|
-
let hash = 2166136261;
|
|
30473
|
-
for (let i = 0;i < input.length; i++) {
|
|
30474
|
-
hash ^= input.charCodeAt(i);
|
|
30475
|
-
hash = Math.imul(hash, 16777619);
|
|
30476
|
-
}
|
|
30477
|
-
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
30478
|
-
}
|
|
30479
|
-
function redactUrl(raw) {
|
|
30480
|
-
try {
|
|
30481
|
-
const url = new URL(raw);
|
|
30482
|
-
return `${url.protocol}//${url.host}`;
|
|
30483
|
-
} catch {
|
|
30484
|
-
return `url#${shortHash(raw)}`;
|
|
30485
|
-
}
|
|
30486
|
-
}
|
|
30487
|
-
function redactValueDetectors(value) {
|
|
30488
|
-
let out = value;
|
|
30489
|
-
out = out.replace(JWT_PATTERN, () => REDACTED);
|
|
30490
|
-
out = out.replace(URL_PATTERN, (match) => {
|
|
30491
|
-
const trailing = match.match(URL_TRAILING_PUNCT)?.[0] ?? "";
|
|
30492
|
-
const core2 = trailing ? match.slice(0, -trailing.length) : match;
|
|
30493
|
-
return `${redactUrl(core2)}${trailing}`;
|
|
30494
|
-
});
|
|
30495
|
-
out = out.replace(USER_HOME_PATTERN, (_match, sep1, folder, sep2) => `${sep1}${folder}${sep2}<user>`);
|
|
30496
|
-
out = out.replace(EMAIL_PATTERN, (match) => `email#${shortHash(match)}`);
|
|
30497
|
-
out = out.replace(UUID_PATTERN, (match) => `uuid#${shortHash(match)}`);
|
|
30498
|
-
out = out.replace(LONG_TOKEN_PATTERN, () => REDACTED);
|
|
30499
|
-
if (out.length > MAX_VALUE_LENGTH) {
|
|
30500
|
-
out = `${out.slice(0, MAX_VALUE_LENGTH)}…`;
|
|
30501
|
-
}
|
|
30502
|
-
return out;
|
|
30503
|
-
}
|
|
30504
|
-
function nameTokens(name) {
|
|
30505
|
-
return name.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").split(/[\s_-]+/).map((t) => t.toLowerCase()).filter(Boolean);
|
|
30506
|
-
}
|
|
30507
|
-
function isSensitiveName(name) {
|
|
30508
|
-
const tokens = nameTokens(name);
|
|
30509
|
-
for (let i = 0;i < tokens.length; i++) {
|
|
30510
|
-
const token = tokens[i];
|
|
30511
|
-
if (SENSITIVE_NAME_TOKENS.has(token)) {
|
|
30512
|
-
return true;
|
|
30513
|
-
}
|
|
30514
|
-
if (token === "key" || token === "keys") {
|
|
30515
|
-
const prev = tokens[i - 1];
|
|
30516
|
-
if (prev && SENSITIVE_KEY_PREFIXES.has(prev)) {
|
|
30517
|
-
return true;
|
|
30518
|
-
}
|
|
30519
|
-
}
|
|
30520
|
-
}
|
|
30521
|
-
return false;
|
|
30522
|
-
}
|
|
30523
|
-
function redactProperty(name, value) {
|
|
30524
|
-
if (value === undefined || value === null) {
|
|
30525
|
-
return;
|
|
30526
|
-
}
|
|
30527
|
-
if (isSensitiveName(name)) {
|
|
30528
|
-
return REDACTED;
|
|
30529
|
-
}
|
|
30530
|
-
if (typeof value === "boolean" || typeof value === "number") {
|
|
30531
|
-
return value;
|
|
30532
|
-
}
|
|
30533
|
-
if (typeof value !== "string") {
|
|
30534
|
-
return "[OBJECT]";
|
|
30535
|
-
}
|
|
30536
|
-
return redactValueDetectors(value);
|
|
30537
|
-
}
|
|
30538
|
-
function redactProperties(properties) {
|
|
30539
|
-
const out = {};
|
|
30540
|
-
for (const [name, value] of Object.entries(properties)) {
|
|
30541
|
-
const redacted = redactProperty(name, value);
|
|
30542
|
-
if (redacted !== undefined) {
|
|
30543
|
-
out[name] = redacted;
|
|
30544
|
-
}
|
|
30545
|
-
}
|
|
30546
|
-
return out;
|
|
30547
|
-
}
|
|
30548
|
-
|
|
30549
30653
|
// ../../common/src/trackedAction.ts
|
|
30550
30654
|
var pollSignalSlot = singleton("PollSignal");
|
|
30551
30655
|
var cliErrorCodeValues = new Set(CLI_ERROR_CODES);
|
|
30552
30656
|
var retryHintValues = new Set(RETRY_HINTS);
|
|
30657
|
+
var TELEMETRY_COMMAND_ARG_PREFIX = "uip.cmd.arg.";
|
|
30553
30658
|
var processContext = {
|
|
30554
30659
|
exit: (code) => {
|
|
30555
30660
|
process.exitCode = code;
|
|
@@ -30560,22 +30665,18 @@ var processContext = {
|
|
|
30560
30665
|
};
|
|
30561
30666
|
function extractCommandParams(cmd) {
|
|
30562
30667
|
const params = {};
|
|
30668
|
+
const add2 = (name, value) => {
|
|
30669
|
+
if (name && value !== undefined) {
|
|
30670
|
+
params[`${TELEMETRY_COMMAND_ARG_PREFIX}${name}`] = value;
|
|
30671
|
+
}
|
|
30672
|
+
};
|
|
30563
30673
|
const registered = cmd.registeredArguments ?? [];
|
|
30564
30674
|
const processed = cmd.processedArgs ?? [];
|
|
30565
30675
|
for (let i = 0;i < registered.length; i++) {
|
|
30566
|
-
|
|
30567
|
-
if (value === undefined) {
|
|
30568
|
-
continue;
|
|
30569
|
-
}
|
|
30570
|
-
const name = registered[i].name();
|
|
30571
|
-
if (name) {
|
|
30572
|
-
params[name] = value;
|
|
30573
|
-
}
|
|
30676
|
+
add2(registered[i].name(), processed[i]);
|
|
30574
30677
|
}
|
|
30575
30678
|
for (const [key, value] of Object.entries(cmd.opts())) {
|
|
30576
|
-
|
|
30577
|
-
params[key] = value;
|
|
30578
|
-
}
|
|
30679
|
+
add2(key, value);
|
|
30579
30680
|
}
|
|
30580
30681
|
return params;
|
|
30581
30682
|
}
|
|
@@ -30618,11 +30719,12 @@ Command.prototype.trackedAction = function(context, fn, properties) {
|
|
|
30618
30719
|
return this.action(async (...args) => {
|
|
30619
30720
|
const telemetryName = deriveCommandPath(command);
|
|
30620
30721
|
const props = typeof properties === "function" ? properties(...args) : properties;
|
|
30722
|
+
const requestContext = telemetry.createRequestContext();
|
|
30621
30723
|
const startTime = performance.now();
|
|
30622
30724
|
let errorMessage2;
|
|
30623
30725
|
let fallbackExitCode = EXIT_CODES.Success;
|
|
30624
30726
|
clearRecordedCommandFailureTelemetry();
|
|
30625
|
-
const [error] = await catchError2(fn(...args));
|
|
30727
|
+
const [error] = await catchError2(telemetry.runWithContext(requestContext, () => fn(...args)));
|
|
30626
30728
|
if (error) {
|
|
30627
30729
|
errorMessage2 = error instanceof Error ? error.message : String(error);
|
|
30628
30730
|
logger.debug(`[trackedAction] ${telemetryName} failed: ${errorMessage2}`);
|
|
@@ -30658,16 +30760,21 @@ Command.prototype.trackedAction = function(context, fn, properties) {
|
|
|
30658
30760
|
recordedFailure,
|
|
30659
30761
|
pollSignal: context.pollSignal
|
|
30660
30762
|
});
|
|
30661
|
-
|
|
30662
|
-
|
|
30763
|
+
const commandParams = extractCommandParams(command);
|
|
30764
|
+
if (props) {
|
|
30765
|
+
for (const key of Object.keys(props)) {
|
|
30766
|
+
delete commandParams[`${TELEMETRY_COMMAND_ARG_PREFIX}${key}`];
|
|
30767
|
+
}
|
|
30768
|
+
}
|
|
30769
|
+
const baseProperties = redactProperties({
|
|
30770
|
+
...commandParams,
|
|
30663
30771
|
...props,
|
|
30664
30772
|
...buildCommandTelemetryAttribution(telemetryName, process.env.UIPATH_SKILL),
|
|
30665
30773
|
command: "true",
|
|
30666
|
-
duration: String(durationMs),
|
|
30667
|
-
success: String(success),
|
|
30668
30774
|
...terminalTelemetry,
|
|
30669
30775
|
...errorMessage2 ? { errorMessage: errorMessage2 } : {}
|
|
30670
|
-
})
|
|
30776
|
+
});
|
|
30777
|
+
telemetry.trackRequestResult(telemetryName, durationMs, success, baseProperties, requestContext);
|
|
30671
30778
|
});
|
|
30672
30779
|
};
|
|
30673
30780
|
// ../../common/src/console-guard.ts
|
|
@@ -59309,4 +59416,4 @@ export {
|
|
|
59309
59416
|
metadata
|
|
59310
59417
|
};
|
|
59311
59418
|
|
|
59312
|
-
//# debugId=
|
|
59419
|
+
//# debugId=5ABF940933D9DB6864756E2164756E21
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uipath/gov-tool",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "1.198.0
|
|
4
|
+
"version": "1.198.0",
|
|
5
5
|
"description": "Manage UiPath governance — AOps policies, Access policies, and compliance packs.",
|
|
6
6
|
"private": false,
|
|
7
7
|
"repository": {
|
|
@@ -23,5 +23,5 @@
|
|
|
23
23
|
"files": [
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "1fadf03d7a8dd102742571dff569fdac11808afb"
|
|
27
27
|
}
|