@diia-inhouse/workflow 1.15.2 → 1.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/checkWorkflowDeterminism.js +145 -303
- package/dist/cli/checkWorkflowDeterminism.js.map +1 -1
- package/dist/cli/determinism/errorClassifier.js +65 -0
- package/dist/cli/determinism/errorClassifier.js.map +1 -0
- package/dist/cli/determinism/historyFiles.js +107 -0
- package/dist/cli/determinism/historyFiles.js.map +1 -0
- package/dist/cli/determinism/index.js +19 -0
- package/dist/cli/determinism/index.js.map +1 -0
- package/dist/cli/determinism/replayExecutor.js +139 -0
- package/dist/cli/determinism/replayExecutor.js.map +1 -0
- package/dist/cli/determinism/replayOptions.js +26 -0
- package/dist/cli/determinism/replayOptions.js.map +1 -0
- package/dist/cli/determinism/report.js +45 -0
- package/dist/cli/determinism/report.js.map +1 -0
- package/dist/cli/determinism/reportPrinter.js +152 -0
- package/dist/cli/determinism/reportPrinter.js.map +1 -0
- package/dist/cli/determinism/types.js +3 -0
- package/dist/cli/determinism/types.js.map +1 -0
- package/dist/cli/index.js +13 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/types/cli/checkWorkflowDeterminism.d.ts +5 -8
- package/dist/types/cli/determinism/errorClassifier.d.ts +15 -0
- package/dist/types/cli/determinism/historyFiles.d.ts +18 -0
- package/dist/types/cli/determinism/index.d.ts +10 -0
- package/dist/types/cli/determinism/replayExecutor.d.ts +9 -0
- package/dist/types/cli/determinism/replayOptions.d.ts +7 -0
- package/dist/types/cli/determinism/report.d.ts +16 -0
- package/dist/types/cli/determinism/reportPrinter.d.ts +5 -0
- package/dist/types/cli/determinism/types.d.ts +44 -0
- package/package.json +6 -6
package/dist/cli/index.js
CHANGED
|
@@ -87,19 +87,30 @@ async function main() {
|
|
|
87
87
|
.option('taskQueue', {
|
|
88
88
|
type: 'string',
|
|
89
89
|
describe: 'Task queue name',
|
|
90
|
+
})
|
|
91
|
+
.option('historyDir', {
|
|
92
|
+
type: 'string',
|
|
93
|
+
describe: 'Path to directory with dumped history JSON files (skips Temporal server connection)',
|
|
94
|
+
})
|
|
95
|
+
.option('limit', {
|
|
96
|
+
type: 'number',
|
|
97
|
+
describe: 'Max number of history files to check (default: all)',
|
|
90
98
|
})
|
|
91
99
|
.positional('workflowId', {
|
|
92
100
|
type: 'string',
|
|
93
101
|
describe: 'Specific workflow ID to check (optional)',
|
|
94
102
|
})
|
|
95
103
|
.example('diia-workflow check-determinism', 'Check recent completed or failed workflows for determinism issues')
|
|
96
|
-
.example('diia-workflow check-determinism my-workflow-id', 'Check a specific workflow by ID for determinism issues')
|
|
104
|
+
.example('diia-workflow check-determinism my-workflow-id', 'Check a specific workflow by ID for determinism issues')
|
|
105
|
+
.example('diia-workflow check-determinism --historyDir ./temporal-dumps', 'Check determinism against local history files'), async (argv) => {
|
|
97
106
|
const logger = new diia_logger_1.default();
|
|
98
107
|
const envService = new env_1.EnvService(logger);
|
|
99
108
|
await envService.init();
|
|
100
109
|
try {
|
|
101
110
|
const command = new checkWorkflowDeterminism_1.CheckWorkflowDeterminismCommand(logger, envService);
|
|
102
|
-
await
|
|
111
|
+
await (argv.historyDir
|
|
112
|
+
? command.runFromFiles(argv.workflowsPath, argv.historyDir, argv.limit)
|
|
113
|
+
: command.run(argv.workflowsPath, argv.taskQueue, argv.workflowId));
|
|
103
114
|
}
|
|
104
115
|
finally {
|
|
105
116
|
await envService.onDestroy();
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;AACA,kDAAyB;AACzB,2CAAuC;AAEvC,4EAAkD;AAClD,2CAA8C;AAE9C,yEAA4E;AAC5E,mEAAsE;AACtE,qEAAwE;AAExE,KAAK,UAAU,IAAI;IACf,MAAM,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC7B,OAAO,CACJ,gBAAgB,EAChB,qCAAqC,EACrC,CAAC,IAAI,EAAE,EAAE,CACL,IAAI;SACC,MAAM,CAAC,eAAe,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,6BAA6B;KAC1C,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,iBAAiB;KAC9B,CAAC,EACV,KAAK,EAAE,IAAI,EAAE,EAAE;QACX,MAAM,MAAM,GAAG,IAAI,qBAAU,EAAE,CAAA;QAC/B,MAAM,UAAU,GAAG,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAA;QAEzC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAA;QACvB,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,oDAA4B,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YAEpE,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACzD,CAAC;gBAAS,CAAC;YACP,MAAM,UAAU,CAAC,SAAS,EAAE,CAAA;QAChC,CAAC;IACL,CAAC,CACJ;SACA,OAAO,CACJ,2CAA2C,EAC3C,4BAA4B,EAC5B,CAAC,IAAI,EAAE,EAAE,CACL,IAAI;SACC,UAAU,CAAC,YAAY,EAAE;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,8BAA8B;KAC3C,CAAC;SACD,UAAU,CAAC,YAAY,EAAE;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,yCAAyC;KACtD,CAAC;SACD,OAAO,CACJ,4FAA4F,EAC5F,0CAA0C,CAC7C;SACA,OAAO,CAAC,2EAA2E,EAAE,kBAAkB,CAAC;SACxG,OAAO,CAAC,4EAA4E,EAAE,0BAA0B,CAAC;SACjH,OAAO,CACJ,6FAA6F,EAC7F,6CAA6C,CAChD;SACA,OAAO,CACJ,iLAAiL,EACjL,4CAA4C,CAC/C,EACT,KAAK,EAAE,IAAI,EAAE,EAAE;QACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC7C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC7C,CAAC;QAED,IAAI,UAAmC,CAAA;QACvC,IAAI,CAAC;YACD,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACxC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;YAC9D,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,mEAAoE,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;QAChH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,qBAAU,EAAE,CAAA;QAC/B,MAAM,UAAU,GAAG,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAA;QAEzC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAA;QACvB,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,sDAA6B,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YAErE,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAClD,CAAC;gBAAS,CAAC;YACP,MAAM,UAAU,CAAC,SAAS,EAAE,CAAA;QAChC,CAAC;IACL,CAAC,CACJ;SACA,OAAO,CACJ,gCAAgC,EAChC,4DAA4D,EAC5D,CAAC,IAAI,EAAE,EAAE,CACL,IAAI;SACC,MAAM,CAAC,eAAe,EAAE;QACrB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,6BAA6B;KAC1C,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,iBAAiB;KAC9B,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,qFAAqF;KAClG,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,qDAAqD;KAClE,CAAC;SACD,UAAU,CAAC,YAAY,EAAE;QACtB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,0CAA0C;KACvD,CAAC;SACD,OAAO,CAAC,iCAAiC,EAAE,mEAAmE,CAAC;SAC/G,OAAO,CAAC,gDAAgD,EAAE,wDAAwD,CAAC;SACnH,OAAO,CACJ,+DAA+D,EAC/D,+CAA+C,CAClD,EACT,KAAK,EAAE,IAAI,EAAE,EAAE;QACX,MAAM,MAAM,GAAG,IAAI,qBAAU,EAAE,CAAA;QAC/B,MAAM,UAAU,GAAG,IAAI,gBAAU,CAAC,MAAM,CAAC,CAAA;QAEzC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAA;QACvB,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,0DAA+B,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YAEvE,MAAM,CAAC,IAAI,CAAC,UAAU;gBAClB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC;gBACvE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;QAC3E,CAAC;gBAAS,CAAC;YACP,MAAM,UAAU,CAAC,SAAS,EAAE,CAAA;QAChC,CAAC;IACL,CAAC,CACJ;SACA,IAAI,EAAE,CAAC,IAAI,CAAA;AACpB,CAAC;AAED,KAAK,IAAI,EAAE,CAAA"}
|
|
@@ -3,20 +3,17 @@ import { Logger } from '@diia-inhouse/types';
|
|
|
3
3
|
export declare class CheckWorkflowDeterminismCommand {
|
|
4
4
|
private readonly logger;
|
|
5
5
|
private readonly envService;
|
|
6
|
-
private temporalConfig;
|
|
7
|
-
private report;
|
|
8
6
|
private readonly maxWorkflowsPerType;
|
|
9
7
|
private readonly maxRetries;
|
|
10
|
-
private readonly
|
|
8
|
+
private readonly retryDelayMs;
|
|
9
|
+
private readonly replayTimeoutMs;
|
|
10
|
+
private readonly delayBetweenWorkflows;
|
|
11
11
|
constructor(logger: Logger, envService: EnvService);
|
|
12
12
|
run(workflowsPath?: string, taskQueueParam?: string, workflowId?: string): Promise<void>;
|
|
13
|
-
|
|
14
|
-
private
|
|
15
|
-
private runReplayHistoryWithRetry;
|
|
13
|
+
runFromFiles(workflowsPath: string | undefined, historyDir: string, limit?: number): Promise<void>;
|
|
14
|
+
private checkFromServer;
|
|
16
15
|
private checkSingleWorkflow;
|
|
17
16
|
private loadWorkflows;
|
|
18
17
|
private listCompletedOrFailedWorkflows;
|
|
19
|
-
private resolveWorkflowsPath;
|
|
20
18
|
private getTaskQueue;
|
|
21
|
-
private printBeautifulResults;
|
|
22
19
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { WorkflowDeterminismError } from './types';
|
|
2
|
+
interface DeterminismViolationClassification {
|
|
3
|
+
type: 'determinism-violation';
|
|
4
|
+
subtype: 'activity-mismatch' | 'new-steps-added' | 'other';
|
|
5
|
+
entry: WorkflowDeterminismError;
|
|
6
|
+
}
|
|
7
|
+
interface ReplayFailureClassification {
|
|
8
|
+
type: 'replay-failure';
|
|
9
|
+
subtype: undefined;
|
|
10
|
+
entry: WorkflowDeterminismError;
|
|
11
|
+
}
|
|
12
|
+
export type ErrorClassification = DeterminismViolationClassification | ReplayFailureClassification;
|
|
13
|
+
export declare function isNewStepsAdded(error: WorkflowDeterminismError): boolean;
|
|
14
|
+
export declare function classifyReplayError(workflowId: string, error: Error): ErrorClassification;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HistoryEntry, WorkflowRecord } from './types';
|
|
2
|
+
export declare function collectHistoryFiles(dir: string): string[];
|
|
3
|
+
export declare function parseHistoryFile(filePath: string): HistoryEntry & {
|
|
4
|
+
encrypted: boolean;
|
|
5
|
+
running: boolean;
|
|
6
|
+
};
|
|
7
|
+
export interface LoadHistoryResult {
|
|
8
|
+
entries: HistoryEntry[];
|
|
9
|
+
encryptedCount: number;
|
|
10
|
+
runningCount: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function loadHistoryEntries(historyDir: string, workflows: WorkflowRecord, options?: {
|
|
13
|
+
limit?: number;
|
|
14
|
+
encryptionEnabled?: boolean;
|
|
15
|
+
logger?: {
|
|
16
|
+
warn: (msg: string) => void;
|
|
17
|
+
};
|
|
18
|
+
}): LoadHistoryResult;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { classifyReplayError, isNewStepsAdded } from './errorClassifier';
|
|
2
|
+
export type { ErrorClassification } from './errorClassifier';
|
|
3
|
+
export { loadHistoryEntries } from './historyFiles';
|
|
4
|
+
export type { LoadHistoryResult } from './historyFiles';
|
|
5
|
+
export { DeterminismReportBuilder } from './report';
|
|
6
|
+
export { buildReplayOptions, resolveWorkflowsPath } from './replayOptions';
|
|
7
|
+
export { replayBatch, replaySingle } from './replayExecutor';
|
|
8
|
+
export { printReport } from './reportPrinter';
|
|
9
|
+
export type { ReportWriter } from './reportPrinter';
|
|
10
|
+
export type { CheckedWorkflowStatus, DeterminismReport, HistoryEntry, ReplayOutcome, WorkflowDeterminismError, WorkflowRecord, } from './types';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReplayWorkerOptions } from '@temporalio/worker';
|
|
2
|
+
import { HistoryEntry, ReplayOutcome } from './types';
|
|
3
|
+
export interface ReplayConfig {
|
|
4
|
+
maxRetries: number;
|
|
5
|
+
retryDelayMs: number;
|
|
6
|
+
timeoutMs: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function replaySingle(options: ReplayWorkerOptions, history: unknown, workflowId: string, workflowType: string, config: ReplayConfig): Promise<ReplayOutcome>;
|
|
9
|
+
export declare function replayBatch(options: ReplayWorkerOptions, entries: HistoryEntry[], timeoutMs?: number): AsyncGenerator<ReplayOutcome>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReplayWorkerOptions } from '@temporalio/worker';
|
|
2
|
+
import { EnvService } from '@diia-inhouse/env';
|
|
3
|
+
export declare function resolveWorkflowsPath(workflowsPath: string): string;
|
|
4
|
+
export declare function buildReplayOptions(workflowsPath: string, encryption: {
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
keyId: string;
|
|
7
|
+
}, envService?: EnvService): Promise<ReplayWorkerOptions>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DeterminismReport, WorkflowDeterminismError } from './types';
|
|
2
|
+
export declare class DeterminismReportBuilder {
|
|
3
|
+
private successCount;
|
|
4
|
+
private failureCount;
|
|
5
|
+
private timeoutCount;
|
|
6
|
+
private skippedCount;
|
|
7
|
+
private readonly errors;
|
|
8
|
+
private readonly warnings;
|
|
9
|
+
private readonly checkedWorkflows;
|
|
10
|
+
addSuccess(workflowId: string, workflowType: string): void;
|
|
11
|
+
addFailure(workflowId: string, workflowType: string, error: WorkflowDeterminismError): void;
|
|
12
|
+
addTimeout(workflowId: string, workflowType: string, warning: WorkflowDeterminismError): void;
|
|
13
|
+
setSkippedCount(count: number): void;
|
|
14
|
+
addWarning(warning: WorkflowDeterminismError): void;
|
|
15
|
+
build(): DeterminismReport;
|
|
16
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export type WorkflowRecord = Record<string, (...args: any[]) => any>;
|
|
2
|
+
export interface WorkflowDeterminismError {
|
|
3
|
+
workflowId: string;
|
|
4
|
+
errorType: 'DeterminismViolation' | 'ReplayFailure';
|
|
5
|
+
errorMessage: string;
|
|
6
|
+
details?: Record<string, unknown>;
|
|
7
|
+
}
|
|
8
|
+
export type CheckedWorkflowStatus = 'success' | 'failure' | 'timeout';
|
|
9
|
+
export interface DeterminismReport {
|
|
10
|
+
successCount: number;
|
|
11
|
+
failureCount: number;
|
|
12
|
+
timeoutCount: number;
|
|
13
|
+
skippedCount: number;
|
|
14
|
+
errors: WorkflowDeterminismError[];
|
|
15
|
+
warnings: WorkflowDeterminismError[];
|
|
16
|
+
checkedWorkflows: {
|
|
17
|
+
name: string;
|
|
18
|
+
id: string;
|
|
19
|
+
status: CheckedWorkflowStatus;
|
|
20
|
+
}[];
|
|
21
|
+
}
|
|
22
|
+
export interface HistoryEntry {
|
|
23
|
+
workflowId: string;
|
|
24
|
+
workflowType: string;
|
|
25
|
+
history: unknown;
|
|
26
|
+
}
|
|
27
|
+
export type ReplayOutcome = {
|
|
28
|
+
status: 'success';
|
|
29
|
+
workflowId: string;
|
|
30
|
+
workflowType: string;
|
|
31
|
+
recoveredOnRetry: boolean;
|
|
32
|
+
failedAttempts: number;
|
|
33
|
+
originalErrors: string[];
|
|
34
|
+
} | {
|
|
35
|
+
status: 'failure';
|
|
36
|
+
workflowId: string;
|
|
37
|
+
workflowType: string;
|
|
38
|
+
error: WorkflowDeterminismError;
|
|
39
|
+
} | {
|
|
40
|
+
status: 'timeout';
|
|
41
|
+
workflowId: string;
|
|
42
|
+
workflowType: string;
|
|
43
|
+
timeoutMs: number;
|
|
44
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diia-inhouse/workflow",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.16.1",
|
|
4
4
|
"description": "Workflow",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
@@ -102,15 +102,15 @@
|
|
|
102
102
|
},
|
|
103
103
|
"devDependencies": {
|
|
104
104
|
"@diia-inhouse/configs": "6.1.1",
|
|
105
|
-
"@diia-inhouse/diia-logger": "3.16.
|
|
106
|
-
"@diia-inhouse/diia-metrics": "6.
|
|
105
|
+
"@diia-inhouse/diia-logger": "3.16.4",
|
|
106
|
+
"@diia-inhouse/diia-metrics": "6.5.0",
|
|
107
107
|
"@diia-inhouse/diia-queue": "13.2.1",
|
|
108
108
|
"@diia-inhouse/env": "2.8.1",
|
|
109
109
|
"@diia-inhouse/eslint-config": "8.4.0",
|
|
110
110
|
"@diia-inhouse/healthcheck": "1.17.1",
|
|
111
|
-
"@diia-inhouse/test": "7.3.
|
|
112
|
-
"@diia-inhouse/types": "11.
|
|
113
|
-
"@diia-inhouse/utils": "5.3.
|
|
111
|
+
"@diia-inhouse/test": "7.3.2",
|
|
112
|
+
"@diia-inhouse/types": "11.5.0",
|
|
113
|
+
"@diia-inhouse/utils": "5.3.1",
|
|
114
114
|
"@types/lodash": "4.17.23",
|
|
115
115
|
"@types/node": "24.9.1",
|
|
116
116
|
"@types/yargs": "17.0.35",
|