@sonisoft/now-sdk-ext-core 3.6.0 → 3.8.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.
@@ -1,6 +1,6 @@
1
1
  import { ServiceNowInstance } from "../ServiceNowInstance.js";
2
2
  import { BackgroundScriptExecutionResult } from "../BackgroundScriptExecutor.js";
3
- import { ExecuteFlowOptions, ExecuteFlowByNameOptions, ExecuteSubflowOptions, ExecuteActionOptions, FlowExecutionResult, FlowScriptResultEnvelope, FlowContextStatusResult, FlowOutputsResult, FlowErrorResult, FlowCancelResult, FlowSendMessageResult, FlowPublishResult, TestFlowOptions, FlowTestResult, FlowDefinitionResult } from './FlowModels.js';
3
+ import { ExecuteFlowOptions, ExecuteFlowByNameOptions, ExecuteSubflowOptions, ExecuteActionOptions, FlowExecutionResult, FlowScriptResultEnvelope, FlowContextStatusResult, FlowOutputsResult, FlowErrorResult, FlowCancelResult, FlowSendMessageResult, FlowPublishResult, TestFlowOptions, FlowTestResult, FlowDefinitionResult, CopyFlowOptions, FlowCopyResult, FlowContextDetailsResult, FlowLogOptions, FlowLogResult } from './FlowModels.js';
4
4
  /**
5
5
  * Provides operations for executing ServiceNow Flow Designer flows,
6
6
  * subflows, and actions remotely via BackgroundScriptExecutor.
@@ -72,6 +72,66 @@ export declare class FlowManager {
72
72
  * @returns FlowTestResult with the execution context sys_id on success
73
73
  */
74
74
  testFlow(options: TestFlowOptions): Promise<FlowTestResult>;
75
+ /**
76
+ * Copy an existing flow into a target scoped application.
77
+ *
78
+ * This uses the ProcessFlow REST API (`POST /api/now/processflow/flow/{id}/copy`)
79
+ * to create a duplicate of a flow in a specified scope. The copied flow lands in
80
+ * draft/unpublished state and can then be modified, tested, and published.
81
+ *
82
+ * @param options Copy flow options including sourceFlowId, name, and targetScope
83
+ * @returns FlowCopyResult with the new flow's sys_id on success
84
+ */
85
+ copyFlow(options: CopyFlowOptions): Promise<FlowCopyResult>;
86
+ /**
87
+ * Get detailed flow execution context via the ProcessFlow operations API.
88
+ *
89
+ * Returns rich execution data including per-action timing, inputs, outputs,
90
+ * execution metadata (who ran it, test vs production, runtime, etc.), and
91
+ * optionally the full flow definition snapshot.
92
+ *
93
+ * This uses `GET /api/now/processflow/operations/flow/context/{id}` which is
94
+ * the same endpoint Flow Designer uses to display execution details.
95
+ *
96
+ * Note: The execution report (`flowReport`) requires operations view / flow
97
+ * logging to be enabled. If not available, `flowReportAvailabilityDetails`
98
+ * will contain information about why.
99
+ *
100
+ * @param contextId The sys_id of the flow context (from sys_flow_context)
101
+ * @param scope Optional scope sys_id for the transaction scope query parameter
102
+ * @param includeFlowDefinition Whether to include the full flow definition snapshot (default: false)
103
+ * @returns FlowContextDetailsResult with execution context and report
104
+ */
105
+ getFlowContextDetails(contextId: string, scope?: string, includeFlowDefinition?: boolean): Promise<FlowContextDetailsResult>;
106
+ /**
107
+ * Retrieve flow execution logs from the sys_flow_log table.
108
+ *
109
+ * Returns log entries associated with a flow context, including error messages,
110
+ * step-level logs, and cancellation reasons. Log entries may be empty for
111
+ * simple successful executions.
112
+ *
113
+ * @param contextId The sys_id of the flow context to get logs for
114
+ * @param options Optional query options (limit, order direction)
115
+ * @returns FlowLogResult with array of log entries
116
+ */
117
+ getFlowLogs(contextId: string, options?: FlowLogOptions): Promise<FlowLogResult>;
118
+ /**
119
+ * Map the raw flowContext object from the operations API to a typed FlowContextInfo.
120
+ * @internal
121
+ */
122
+ private _mapFlowContextInfo;
123
+ /**
124
+ * Map the raw flowReport object from the operations API to a typed FlowExecutionReport.
125
+ * Cross-references with the flow definition to resolve human-readable step names.
126
+ * @internal
127
+ */
128
+ private _mapFlowExecutionReport;
129
+ /**
130
+ * Build a lookup map from action instance ID to human-readable names
131
+ * by scanning the flow definition's actionInstances array.
132
+ * @internal
133
+ */
134
+ private _buildActionInstanceLookup;
75
135
  /**
76
136
  * Extract the result from a ProcessFlow API response, handling both
77
137
  * Axios-style (data.result) and RequestHandler-style (bodyObject.result) response shapes.
@@ -93,7 +153,7 @@ export declare class FlowManager {
93
153
  _extractResultEnvelope(bgResult: BackgroundScriptExecutionResult): FlowScriptResultEnvelope | null;
94
154
  /** Parse BackgroundScriptExecutionResult into FlowExecutionResult. */
95
155
  _parseFlowResult(bgResult: BackgroundScriptExecutionResult, options: ExecuteFlowOptions): FlowExecutionResult;
96
- /** Validate that a context ID is non-empty. */
156
+ /** Validate that a context ID is a non-empty 32-character hex sys_id. */
97
157
  private _validateContextId;
98
158
  /** Escape a string for embedding in a generated SN script single-quoted string. */
99
159
  private _escapeForScript;
@@ -352,7 +352,7 @@ export class FlowManager {
352
352
  try {
353
353
  const response = await pfr.get('flow/{flow_sys_id}', { flow_sys_id: flowSysId }, query);
354
354
  const apiResult = this._extractProcessFlowResult(response);
355
- if (apiResult.errorCode !== 0 || (apiResult.errorCode == null && apiResult.errorMessage)) {
355
+ if ((apiResult.errorCode != null && apiResult.errorCode !== 0) || (apiResult.errorCode == null && apiResult.errorMessage)) {
356
356
  return {
357
357
  success: false,
358
358
  errorMessage: apiResult.errorMessage || 'Unknown error from processflow API',
@@ -436,7 +436,7 @@ export class FlowManager {
436
436
  try {
437
437
  const response = await pfr.post('flow/{flow_sys_id}/test', { flow_sys_id: resolved.sysId }, query, payload);
438
438
  const apiResult = this._extractProcessFlowResult(response);
439
- if (apiResult.errorCode !== 0 || (apiResult.errorCode == null && apiResult.errorMessage)) {
439
+ if ((apiResult.errorCode != null && apiResult.errorCode !== 0) || (apiResult.errorCode == null && apiResult.errorMessage)) {
440
440
  this._logger.error(`Test flow failed: ${apiResult.errorMessage}`);
441
441
  return {
442
442
  success: false,
@@ -463,6 +463,307 @@ export class FlowManager {
463
463
  };
464
464
  }
465
465
  }
466
+ /**
467
+ * Copy an existing flow into a target scoped application.
468
+ *
469
+ * This uses the ProcessFlow REST API (`POST /api/now/processflow/flow/{id}/copy`)
470
+ * to create a duplicate of a flow in a specified scope. The copied flow lands in
471
+ * draft/unpublished state and can then be modified, tested, and published.
472
+ *
473
+ * @param options Copy flow options including sourceFlowId, name, and targetScope
474
+ * @returns FlowCopyResult with the new flow's sys_id on success
475
+ */
476
+ async copyFlow(options) {
477
+ if (!options.sourceFlowId || options.sourceFlowId.trim().length === 0) {
478
+ throw new Error('Source flow identifier is required (sys_id or scoped_name)');
479
+ }
480
+ if (!options.name || options.name.trim().length === 0) {
481
+ throw new Error('Name is required for the copied flow');
482
+ }
483
+ if (!options.targetScope || options.targetScope.trim().length === 0) {
484
+ throw new Error('Target scope sys_id is required');
485
+ }
486
+ this._logger.info(`Copying flow "${options.sourceFlowId}" as "${options.name}" into scope ${options.targetScope}`);
487
+ // Resolve source flow identifier to sys_id
488
+ let resolved;
489
+ try {
490
+ resolved = await this._resolveFlowIdentifier(options.sourceFlowId);
491
+ }
492
+ catch (error) {
493
+ const err = error;
494
+ return {
495
+ success: false,
496
+ errorMessage: err.message
497
+ };
498
+ }
499
+ const pfr = new ProcessFlowRequest(this._instance);
500
+ const query = { sysparm_transaction_scope: options.targetScope };
501
+ const payload = { name: options.name, scope: options.targetScope };
502
+ try {
503
+ const response = await pfr.post('flow/{flow_sys_id}/copy', { flow_sys_id: resolved.sysId }, query, payload);
504
+ const apiResult = this._extractProcessFlowResult(response);
505
+ if ((apiResult.errorCode != null && apiResult.errorCode !== 0) || (apiResult.errorCode == null && apiResult.errorMessage)) {
506
+ this._logger.error(`Copy flow failed: ${apiResult.errorMessage}`);
507
+ return {
508
+ success: false,
509
+ errorMessage: apiResult.errorMessage || 'Unknown error from processflow copy API',
510
+ errorCode: apiResult.errorCode,
511
+ rawResponse: apiResult
512
+ };
513
+ }
514
+ const newFlowSysId = apiResult.data;
515
+ if (!newFlowSysId || typeof newFlowSysId !== 'string' || newFlowSysId.trim().length === 0) {
516
+ return {
517
+ success: false,
518
+ errorMessage: 'ProcessFlow copy API returned no flow sys_id',
519
+ rawResponse: apiResult
520
+ };
521
+ }
522
+ this._logger.info(`Flow copied successfully, new sys_id: ${newFlowSysId}`);
523
+ return {
524
+ success: true,
525
+ newFlowSysId,
526
+ errorCode: 0,
527
+ rawResponse: apiResult
528
+ };
529
+ }
530
+ catch (error) {
531
+ const err = error;
532
+ this._logger.error(`Error copying flow "${options.sourceFlowId}": ${err.message}`);
533
+ return {
534
+ success: false,
535
+ errorMessage: `Failed to copy flow: ${err.message}`,
536
+ rawResponse: null
537
+ };
538
+ }
539
+ }
540
+ // ================================================================
541
+ // Flow Context Details API (ProcessFlow Operations)
542
+ // ================================================================
543
+ /**
544
+ * Get detailed flow execution context via the ProcessFlow operations API.
545
+ *
546
+ * Returns rich execution data including per-action timing, inputs, outputs,
547
+ * execution metadata (who ran it, test vs production, runtime, etc.), and
548
+ * optionally the full flow definition snapshot.
549
+ *
550
+ * This uses `GET /api/now/processflow/operations/flow/context/{id}` which is
551
+ * the same endpoint Flow Designer uses to display execution details.
552
+ *
553
+ * Note: The execution report (`flowReport`) requires operations view / flow
554
+ * logging to be enabled. If not available, `flowReportAvailabilityDetails`
555
+ * will contain information about why.
556
+ *
557
+ * @param contextId The sys_id of the flow context (from sys_flow_context)
558
+ * @param scope Optional scope sys_id for the transaction scope query parameter
559
+ * @param includeFlowDefinition Whether to include the full flow definition snapshot (default: false)
560
+ * @returns FlowContextDetailsResult with execution context and report
561
+ */
562
+ async getFlowContextDetails(contextId, scope, includeFlowDefinition = false) {
563
+ this._validateContextId(contextId);
564
+ this._logger.info(`Getting flow context details: ${contextId}`);
565
+ const pfr = new ProcessFlowRequest(this._instance);
566
+ const query = scope ? { sysparm_transaction_scope: scope } : undefined;
567
+ try {
568
+ const response = await pfr.get('operations/flow/context/{context_id}', { context_id: contextId }, query);
569
+ const result = response?.data?.result ?? response?.bodyObject?.result;
570
+ if (!result) {
571
+ return {
572
+ success: false,
573
+ contextId,
574
+ errorMessage: 'Unexpected response structure from processflow operations API: no result field',
575
+ rawResponse: response
576
+ };
577
+ }
578
+ const flowContext = this._mapFlowContextInfo(result.flowContext);
579
+ const flowDef = result.flow;
580
+ const flowReport = this._mapFlowExecutionReport(result.flowReport, flowDef);
581
+ const reportAvailability = result.flowReportAvailabilityDetails;
582
+ this._logger.info(`Flow context details fetched: state=${flowContext?.state ?? 'unknown'}`);
583
+ return {
584
+ success: true,
585
+ contextId,
586
+ flowContext,
587
+ flowReport,
588
+ flowReportAvailabilityDetails: reportAvailability,
589
+ flowDefinition: includeFlowDefinition ? result.flow : undefined,
590
+ rawResponse: result
591
+ };
592
+ }
593
+ catch (error) {
594
+ const err = error;
595
+ this._logger.error(`Error fetching flow context details "${contextId}": ${err.message}`);
596
+ return {
597
+ success: false,
598
+ contextId,
599
+ errorMessage: `Failed to fetch flow context details: ${err.message}`
600
+ };
601
+ }
602
+ }
603
+ // ================================================================
604
+ // Flow Logs API (sys_flow_log Table)
605
+ // ================================================================
606
+ /**
607
+ * Retrieve flow execution logs from the sys_flow_log table.
608
+ *
609
+ * Returns log entries associated with a flow context, including error messages,
610
+ * step-level logs, and cancellation reasons. Log entries may be empty for
611
+ * simple successful executions.
612
+ *
613
+ * @param contextId The sys_id of the flow context to get logs for
614
+ * @param options Optional query options (limit, order direction)
615
+ * @returns FlowLogResult with array of log entries
616
+ */
617
+ async getFlowLogs(contextId, options) {
618
+ this._validateContextId(contextId);
619
+ if (options?.limit !== undefined && (options.limit < 1 || !Number.isInteger(options.limit))) {
620
+ throw new Error('Limit must be a positive integer');
621
+ }
622
+ this._logger.info(`Getting flow logs for context: ${contextId}`);
623
+ const limit = options?.limit ?? 100;
624
+ const orderDir = options?.orderDirection ?? 'asc';
625
+ const orderBy = orderDir === 'desc' ? 'ORDERBYDESCorder' : 'ORDERBYorder';
626
+ const tableRequest = new TableAPIRequest(this._instance);
627
+ try {
628
+ const response = await tableRequest.get('sys_flow_log', {
629
+ sysparm_query: `context=${contextId}^${orderBy}`,
630
+ sysparm_fields: 'sys_id,level,message,action,operation,order,sys_created_on,sys_created_by',
631
+ sysparm_limit: String(limit)
632
+ });
633
+ const records = response?.data?.result ?? response?.bodyObject?.result ?? [];
634
+ const entries = records.map((r) => ({
635
+ sysId: r.sys_id,
636
+ level: r.level,
637
+ message: r.message,
638
+ action: r.action,
639
+ operation: r.operation,
640
+ order: r.order,
641
+ createdOn: r.sys_created_on,
642
+ createdBy: r.sys_created_by
643
+ }));
644
+ this._logger.info(`Flow logs fetched: ${entries.length} entries`);
645
+ return {
646
+ success: true,
647
+ contextId,
648
+ entries,
649
+ rawResponse: records
650
+ };
651
+ }
652
+ catch (error) {
653
+ const err = error;
654
+ this._logger.error(`Error fetching flow logs for "${contextId}": ${err.message}`);
655
+ return {
656
+ success: false,
657
+ contextId,
658
+ entries: [],
659
+ errorMessage: `Failed to fetch flow logs: ${err.message}`
660
+ };
661
+ }
662
+ }
663
+ /**
664
+ * Map the raw flowContext object from the operations API to a typed FlowContextInfo.
665
+ * @internal
666
+ */
667
+ _mapFlowContextInfo(raw) {
668
+ if (!raw)
669
+ return undefined;
670
+ const execSource = raw.executionSource;
671
+ return {
672
+ flowId: String(raw.flowId ?? ''),
673
+ name: String(raw.name ?? ''),
674
+ state: String(raw.state ?? ''),
675
+ runTime: String(raw.runTime ?? ''),
676
+ isTestRun: raw.isTestRun === true,
677
+ executedAs: String(raw.executedAs ?? ''),
678
+ flowInitiatedBy: String(raw.flowInitiatedBy ?? ''),
679
+ reporting: String(raw.reporting ?? ''),
680
+ debugMode: raw.debugMode === true,
681
+ executionSource: {
682
+ callingSource: execSource?.callingSource ?? '',
683
+ executionSourceTable: execSource?.executionSourceTable ?? '',
684
+ executionSourceRecord: execSource?.executionSourceRecord ?? '',
685
+ executionSourceRecordDisplay: execSource?.executionSourceRecordDisplay ?? ''
686
+ },
687
+ enableOpsViewExpansion: raw.enableOpsViewExpansion === true,
688
+ flowRetentionPolicyCandidate: raw.flowRetentionPolicyCandidate === true
689
+ };
690
+ }
691
+ /**
692
+ * Map the raw flowReport object from the operations API to a typed FlowExecutionReport.
693
+ * Cross-references with the flow definition to resolve human-readable step names.
694
+ * @internal
695
+ */
696
+ _mapFlowExecutionReport(raw, flowDef) {
697
+ if (!raw)
698
+ return undefined;
699
+ // Build a lookup from action instance ID → { actionTypeName, comment }
700
+ const actionLookup = this._buildActionInstanceLookup(flowDef);
701
+ const mapActionReports = (reports) => {
702
+ if (!reports)
703
+ return {};
704
+ const result = {};
705
+ for (const [key, report] of Object.entries(reports)) {
706
+ const lookup = actionLookup.get(key);
707
+ const actionTypeName = lookup?.actionTypeName;
708
+ const stepComment = lookup?.comment;
709
+ const stepLabel = actionTypeName
710
+ ? (stepComment ? `${actionTypeName} (${stepComment})` : actionTypeName)
711
+ : (stepComment || undefined);
712
+ result[key] = {
713
+ fStepCount: String(report.fStepCount ?? ''),
714
+ actionName: String(report.actionName ?? ''),
715
+ instanceReference: String(report.instanceReference ?? ''),
716
+ stepLabel,
717
+ actionTypeName,
718
+ stepComment,
719
+ operationsCore: (report.operationsCore ?? { error: '', state: '', startTime: '', order: '', runTime: '' }),
720
+ relatedLinks: (report.relatedLinks ?? {}),
721
+ operationsOutput: (report.operationsOutput ?? { data: {} }),
722
+ operationsInput: (report.operationsInput ?? { data: {} }),
723
+ reportId: String(report.reportId ?? '')
724
+ };
725
+ }
726
+ return result;
727
+ };
728
+ return {
729
+ flowId: String(raw.flowId ?? ''),
730
+ domainSeparationEnabled: raw.domainSeparationEnabled === true,
731
+ executionDomain: String(raw.executionDomain ?? ''),
732
+ actionOperationsReports: mapActionReports(raw.actionOperationsReports),
733
+ subflowOperationsReports: mapActionReports(raw.subflowOperationsReports),
734
+ iterationOperationsReports: (raw.iterationOperationsReports ?? {}),
735
+ instanceReference: String(raw.instanceReference ?? ''),
736
+ operationsCore: (raw.operationsCore ?? { error: '', state: '', startTime: '', order: '', runTime: '' }),
737
+ relatedLinks: (raw.relatedLinks ?? {}),
738
+ operationsOutput: (raw.operationsOutput ?? { data: {} }),
739
+ operationsInput: (raw.operationsInput ?? { data: {} }),
740
+ reportId: String(raw.reportId ?? '')
741
+ };
742
+ }
743
+ /**
744
+ * Build a lookup map from action instance ID to human-readable names
745
+ * by scanning the flow definition's actionInstances array.
746
+ * @internal
747
+ */
748
+ _buildActionInstanceLookup(flowDef) {
749
+ const lookup = new Map();
750
+ if (!flowDef)
751
+ return lookup;
752
+ const actionInstances = flowDef.actionInstances;
753
+ if (!Array.isArray(actionInstances))
754
+ return lookup;
755
+ for (const instance of actionInstances) {
756
+ const id = instance.id;
757
+ if (!id)
758
+ continue;
759
+ const actionType = instance.actionType;
760
+ const actionTypeName = (actionType?.displayName ?? actionType?.name)
761
+ || undefined;
762
+ const comment = instance.comment || undefined;
763
+ lookup.set(id, { actionTypeName, comment });
764
+ }
765
+ return lookup;
766
+ }
466
767
  /**
467
768
  * Extract the result from a ProcessFlow API response, handling both
468
769
  * Axios-style (data.result) and RequestHandler-style (bodyObject.result) response shapes.
@@ -643,11 +944,14 @@ export class FlowManager {
643
944
  // ================================================================
644
945
  // Lifecycle Script Builders
645
946
  // ================================================================
646
- /** Validate that a context ID is non-empty. */
947
+ /** Validate that a context ID is a non-empty 32-character hex sys_id. */
647
948
  _validateContextId(contextId) {
648
949
  if (!contextId || contextId.trim().length === 0) {
649
950
  throw new Error('Context ID is required');
650
951
  }
952
+ if (!/^[0-9a-f]{32}$/i.test(contextId.trim())) {
953
+ throw new Error(`Invalid context ID format: "${contextId}". Expected a 32-character hex sys_id.`);
954
+ }
651
955
  }
652
956
  /** Escape a string for embedding in a generated SN script single-quoted string. */
653
957
  _escapeForScript(str) {
@@ -1 +1 @@
1
- {"version":3,"file":"FlowManager.js","sourceRoot":"","sources":["../../../src/sn/flow/FlowManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FlowManager.js","sourceRoot":"","sources":["../../../src/sn/flow/FlowManager.ts"],"names":[],"mappings":"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"}
@@ -244,3 +244,238 @@ export interface ProcessFlowTestPayload {
244
244
  outputMap: Record<string, string>;
245
245
  runOnThread: boolean;
246
246
  }
247
+ /**
248
+ * Options for copying a flow into a target scoped application via the ProcessFlow REST API.
249
+ */
250
+ export interface CopyFlowOptions {
251
+ /** Source flow identifier: either a 32-char hex sys_id or a scoped name (e.g. "global.change__standard") */
252
+ sourceFlowId: string;
253
+ /** Display name for the new copied flow */
254
+ name: string;
255
+ /** Target scope sys_id to copy the flow into */
256
+ targetScope: string;
257
+ }
258
+ /** Result from copying a flow via the ProcessFlow REST API. */
259
+ export interface FlowCopyResult {
260
+ /** Whether the copy operation completed successfully */
261
+ success: boolean;
262
+ /** sys_id of the newly created flow copy */
263
+ newFlowSysId?: string;
264
+ /** Error message from the API or from local processing */
265
+ errorMessage?: string;
266
+ /** Numeric error code from the API (0 = no error) */
267
+ errorCode?: number;
268
+ /** The raw API response for advanced inspection */
269
+ rawResponse?: unknown;
270
+ }
271
+ /**
272
+ * Core execution timing and state for a flow or action operation.
273
+ * Common shape returned within flowReport at both flow and action level.
274
+ */
275
+ export interface FlowOperationsCore {
276
+ /** Error message if the operation failed (empty string if no error) */
277
+ error: string;
278
+ /** Execution state: COMPLETE, IN_PROGRESS, WAITING, ERROR, CANCELLED, etc. */
279
+ state: string;
280
+ /** Start time as a date-time string from the SN server */
281
+ startTime: string;
282
+ /** Execution order within the flow */
283
+ order: string;
284
+ /** Runtime in milliseconds */
285
+ runTime: string;
286
+ /** Flow context sys_id (present at the top-level operationsCore) */
287
+ context?: string;
288
+ }
289
+ /**
290
+ * Input or output data for a flow operation.
291
+ * Keys are variable names; values contain the raw value, display value, and metadata.
292
+ */
293
+ export interface FlowOperationsData {
294
+ data: Record<string, {
295
+ value: unknown;
296
+ displayValue: string;
297
+ inputUsed?: boolean;
298
+ }>;
299
+ }
300
+ /** Per-action execution report within the flow execution report. */
301
+ export interface FlowActionReport {
302
+ /** Number of steps executed in this action */
303
+ fStepCount: string;
304
+ /** Action instance name/identifier (raw sys_id from the API) */
305
+ actionName: string;
306
+ /** Reference to the action instance */
307
+ instanceReference: string;
308
+ /**
309
+ * Human-readable step label resolved from the flow definition.
310
+ * Combines the action type name and comment, e.g. "Update Record (Approve Change)".
311
+ * Only populated when the flow definition is available in the response.
312
+ */
313
+ stepLabel?: string;
314
+ /**
315
+ * Action type name from the flow definition, e.g. "Update Record", "Look Up Record".
316
+ * Only populated when the flow definition is available in the response.
317
+ */
318
+ actionTypeName?: string;
319
+ /**
320
+ * Step comment from the flow definition, e.g. "Approve Change".
321
+ * Only populated when the flow definition is available in the response.
322
+ */
323
+ stepComment?: string;
324
+ /** Core execution timing and state */
325
+ operationsCore: FlowOperationsCore;
326
+ /** Links to detailed action operation reports */
327
+ relatedLinks: Record<string, string>;
328
+ /** Output data from the action */
329
+ operationsOutput: FlowOperationsData;
330
+ /** Input data fed to the action */
331
+ operationsInput: FlowOperationsData;
332
+ /** Report record sys_id */
333
+ reportId: string;
334
+ }
335
+ /** Full execution report for a flow context. */
336
+ export interface FlowExecutionReport {
337
+ /** Flow snapshot sys_id */
338
+ flowId: string;
339
+ /** Whether domain separation is enabled on the instance */
340
+ domainSeparationEnabled: boolean;
341
+ /** Domain in which the flow executed */
342
+ executionDomain: string;
343
+ /** Per-action execution reports, keyed by action instance sys_id */
344
+ actionOperationsReports: Record<string, FlowActionReport>;
345
+ /** Per-subflow execution reports, keyed by subflow instance sys_id */
346
+ subflowOperationsReports: Record<string, FlowActionReport>;
347
+ /** Per-iteration execution reports (for loops) */
348
+ iterationOperationsReports: Record<string, unknown>;
349
+ /** Reference to the flow instance */
350
+ instanceReference: string;
351
+ /** Top-level execution timing and state */
352
+ operationsCore: FlowOperationsCore;
353
+ /** Links to related resources */
354
+ relatedLinks: Record<string, string>;
355
+ /** Flow-level output data */
356
+ operationsOutput: FlowOperationsData;
357
+ /** Flow-level input data (trigger inputs) */
358
+ operationsInput: FlowOperationsData;
359
+ /** Report record sys_id */
360
+ reportId: string;
361
+ }
362
+ /** Execution source information from the flow context. */
363
+ export interface FlowExecutionSource {
364
+ /** How the flow was triggered (e.g. "TEST_BUTTON", "RECORD_TRIGGER") */
365
+ callingSource: string;
366
+ /** Source table that triggered the flow (if record-triggered) */
367
+ executionSourceTable: string;
368
+ /** Source record sys_id */
369
+ executionSourceRecord: string;
370
+ /** Display value of the source record */
371
+ executionSourceRecordDisplay: string;
372
+ }
373
+ /** High-level flow context metadata from the operations API. */
374
+ export interface FlowContextInfo {
375
+ /** Parent flow sys_id */
376
+ flowId: string;
377
+ /** Flow name */
378
+ name: string;
379
+ /** Execution state: COMPLETE, IN_PROGRESS, WAITING, ERROR, CANCELLED, etc. */
380
+ state: FlowContextState;
381
+ /** Total runtime in milliseconds */
382
+ runTime: string;
383
+ /** Whether this was a test execution */
384
+ isTestRun: boolean;
385
+ /** User who executed the flow */
386
+ executedAs: string;
387
+ /** User who initiated the flow */
388
+ flowInitiatedBy: string;
389
+ /** Reporting level (e.g. "TRACE", "NONE") */
390
+ reporting: string;
391
+ /** Whether debug mode was enabled */
392
+ debugMode: boolean;
393
+ /** How the flow was triggered */
394
+ executionSource: FlowExecutionSource;
395
+ /** Whether operations view expansion is enabled */
396
+ enableOpsViewExpansion: boolean;
397
+ /** Flow retention policy candidate flag */
398
+ flowRetentionPolicyCandidate: boolean;
399
+ }
400
+ /** Availability details for the flow execution report. */
401
+ export interface FlowReportAvailabilityDetails {
402
+ /** Message about report availability (may be an error) */
403
+ errorMessage: string;
404
+ /** Severity level (e.g. "notification-danger", "notification-info") */
405
+ errorLevel: string;
406
+ /** Link text for the context record */
407
+ linkMessage: string;
408
+ /** URL to the context record */
409
+ linkURL: string;
410
+ }
411
+ /** Result from getting detailed flow context via the operations API. */
412
+ export interface FlowContextDetailsResult {
413
+ /** Whether the API call completed successfully */
414
+ success: boolean;
415
+ /** The context sys_id that was queried */
416
+ contextId: string;
417
+ /** High-level execution metadata */
418
+ flowContext?: FlowContextInfo;
419
+ /** Detailed execution report with per-action timing, inputs, outputs */
420
+ flowReport?: FlowExecutionReport;
421
+ /** Availability details for the execution report */
422
+ flowReportAvailabilityDetails?: FlowReportAvailabilityDetails;
423
+ /** Full flow definition snapshot (only if requested) */
424
+ flowDefinition?: Record<string, unknown>;
425
+ /** Error message if the API call failed */
426
+ errorMessage?: string;
427
+ /** The raw API response for advanced inspection */
428
+ rawResponse?: unknown;
429
+ }
430
+ /** Options for querying flow execution logs. */
431
+ export interface FlowLogOptions {
432
+ /** Maximum number of log entries to return (default: 100) */
433
+ limit?: number;
434
+ /** Order direction: 'asc' or 'desc' (default: 'asc' by order) */
435
+ orderDirection?: 'asc' | 'desc';
436
+ }
437
+ /** Individual flow log entry from sys_flow_log. */
438
+ export interface FlowLogEntry {
439
+ /** Log entry sys_id */
440
+ sysId: string;
441
+ /** Log level (numeric string, e.g. "2" for info, "-1" for error) */
442
+ level: string;
443
+ /** Log message text */
444
+ message: string;
445
+ /** Dot-path reference to the flow action that generated the log */
446
+ action: string;
447
+ /** Operation type */
448
+ operation: string;
449
+ /** Execution order */
450
+ order: string;
451
+ /** When the log entry was created */
452
+ createdOn: string;
453
+ /** Who created the log entry */
454
+ createdBy: string;
455
+ }
456
+ /** Result from querying flow execution logs. */
457
+ export interface FlowLogResult {
458
+ /** Whether the query completed successfully */
459
+ success: boolean;
460
+ /** The context sys_id that was queried */
461
+ contextId: string;
462
+ /** Array of log entries */
463
+ entries: FlowLogEntry[];
464
+ /** Error message if the query failed */
465
+ errorMessage?: string;
466
+ /** The raw API response for advanced inspection */
467
+ rawResponse?: unknown;
468
+ }
469
+ /**
470
+ * JSON envelope structure returned by the ProcessFlow operations API
471
+ * for flow context details.
472
+ * @internal
473
+ */
474
+ export interface FlowContextOperationsResponse {
475
+ result: {
476
+ flowContext: Record<string, unknown>;
477
+ flow: Record<string, unknown>;
478
+ flowReportAvailabilityDetails: FlowReportAvailabilityDetails;
479
+ flowReport: Record<string, unknown>;
480
+ };
481
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonisoft/now-sdk-ext-core",
3
- "version": "3.6.0",
3
+ "version": "3.8.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",