From 3ec19896544908b6fb46b0ccc626b7f71ba98cb9 Mon Sep 17 00:00:00 2001 From: Charles Mulder Date: Tue, 28 Apr 2026 16:06:53 +0100 Subject: [PATCH 1/3] fix(build-utils): align openapitools version with custom JAR --- .../client-generator/client-generator.spec.ts | 19 ++++++++++++++++++- .../client-generator/client-generator.ts | 6 +++++- packages/compliance/openapitools.json | 7 ------- packages/config-manager/openapitools.json | 7 ------- packages/entitlements/openapitools.json | 7 ------- packages/host-inventory/openapitools.json | 7 ------- packages/insights/openapitools.json | 7 ------- packages/integrations/openapitools.json | 7 ------- packages/notifications/openapitools.json | 7 ------- packages/patch/openapitools.json | 7 ------- packages/quickstarts/openapitools.json | 7 ------- packages/rbac/openapitools.json | 7 ------- packages/remediations/openapitools.json | 7 ------- packages/shared/openapitools.json | 8 -------- packages/sources/openapitools.json | 7 ------- .../topological-inventory/openapitools.json | 7 ------- 16 files changed, 23 insertions(+), 101 deletions(-) delete mode 100644 packages/compliance/openapitools.json delete mode 100644 packages/config-manager/openapitools.json delete mode 100644 packages/entitlements/openapitools.json delete mode 100644 packages/host-inventory/openapitools.json delete mode 100644 packages/insights/openapitools.json delete mode 100644 packages/integrations/openapitools.json delete mode 100644 packages/notifications/openapitools.json delete mode 100644 packages/patch/openapitools.json delete mode 100644 packages/quickstarts/openapitools.json delete mode 100644 packages/rbac/openapitools.json delete mode 100644 packages/remediations/openapitools.json delete mode 100644 packages/shared/openapitools.json delete mode 100644 packages/sources/openapitools.json delete mode 100644 packages/topological-inventory/openapitools.json diff --git a/packages/build-utils/src/executors/client-generator/client-generator.spec.ts b/packages/build-utils/src/executors/client-generator/client-generator.spec.ts index 51df34631..40a3a7e04 100644 --- a/packages/build-utils/src/executors/client-generator/client-generator.spec.ts +++ b/packages/build-utils/src/executors/client-generator/client-generator.spec.ts @@ -1,11 +1,16 @@ import { ExecutorContext } from '@nx/devkit'; import { execSync } from 'child_process'; +import { existsSync } from 'node:fs'; import generateClients, { ClientGeneratorSchemaType, validateSpec } from './client-generator'; // Mock child_process jest.mock('child_process'); const mockExecSync = execSync as jest.MockedFunction; +// Mock node:fs +jest.mock('node:fs'); +const mockExistsSync = existsSync as jest.MockedFunction; + // Mock console.error const mockConsoleError = jest.spyOn(console, 'error').mockImplementation(() => { return undefined; @@ -63,6 +68,8 @@ describe('generateClients', () => { // By default, validation succeeds (returns clean output) // execSync with { encoding: 'utf-8' } returns a string mockExecSync.mockReturnValue('No validation issues detected.' as any); + // By default, openapitools.json exists + mockExistsSync.mockReturnValue(true); }); afterAll(() => { @@ -433,7 +440,8 @@ describe('generateClients', () => { expect(mockExecSync).toHaveBeenCalledWith(expect.stringContaining("TS_POST_PROCESS_FILE='./postProcess.sh'"), { stdio: 'inherit' }); }); - it('should include openapitools.json path', async () => { + it('should include openapitools.json path when file exists', async () => { + mockExistsSync.mockReturnValue(true); await generateClients(mockOptions, mockContext); expect(mockExecSync).toHaveBeenCalledWith(expect.stringContaining('--openapitools /workspace/test-project/openapitools.json'), { @@ -441,6 +449,15 @@ describe('generateClients', () => { }); }); + it('should omit openapitools.json path when file does not exist', async () => { + mockExistsSync.mockReturnValue(false); + await generateClients(mockOptions, mockContext); + + expect(mockExecSync).toHaveBeenCalledWith(expect.not.stringContaining('--openapitools'), { + stdio: 'inherit', + }); + }); + it('should include skip-validate-spec and enable-post-process-file flags', async () => { await generateClients(mockOptions, mockContext); diff --git a/packages/build-utils/src/executors/client-generator/client-generator.ts b/packages/build-utils/src/executors/client-generator/client-generator.ts index 77962e54f..26619f55f 100644 --- a/packages/build-utils/src/executors/client-generator/client-generator.ts +++ b/packages/build-utils/src/executors/client-generator/client-generator.ts @@ -1,5 +1,6 @@ import { ExecutorContext } from '@nx/devkit'; import { execSync } from 'child_process'; +import { existsSync } from 'node:fs'; import { join } from 'node:path'; import { z } from 'zod'; @@ -50,8 +51,11 @@ function generateClient(packagePath: string, spec: string, outputDir: string, cl '--custom-generator=target/typescript-axios-webpack-module-federation-openapi-generator-1.0.0.jar -g typescript-axios-webpack-module-federation'; } + const packageOpenapitools = join(packagePath, 'openapitools.json'); + const openapiToolsArg = existsSync(packageOpenapitools) ? `--openapitools ${packageOpenapitools}` : ''; + execSync( - `TS_POST_PROCESS_FILE='./postProcess.sh' openapi-generator-cli generate -i ${spec} -o ${outputDir} --openapitools ${packagePath}/openapitools.json --skip-validate-spec --enable-post-process-file ${additionalArgs} --additional-properties clientName=${clientName}`, + `TS_POST_PROCESS_FILE='./postProcess.sh' openapi-generator-cli generate -i ${spec} -o ${outputDir} ${openapiToolsArg} --skip-validate-spec --enable-post-process-file ${additionalArgs} --additional-properties clientName=${clientName}`, { stdio: 'inherit' }, ); } diff --git a/packages/compliance/openapitools.json b/packages/compliance/openapitools.json deleted file mode 100644 index cd53ff4ca..000000000 --- a/packages/compliance/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "6.6.0" - } -} diff --git a/packages/config-manager/openapitools.json b/packages/config-manager/openapitools.json deleted file mode 100644 index c12143302..000000000 --- a/packages/config-manager/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.20.0" - } -} diff --git a/packages/entitlements/openapitools.json b/packages/entitlements/openapitools.json deleted file mode 100644 index 06ac15078..000000000 --- a/packages/entitlements/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.0.0" - } -} diff --git a/packages/host-inventory/openapitools.json b/packages/host-inventory/openapitools.json deleted file mode 100644 index 06ac15078..000000000 --- a/packages/host-inventory/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.0.0" - } -} diff --git a/packages/insights/openapitools.json b/packages/insights/openapitools.json deleted file mode 100644 index 06ac15078..000000000 --- a/packages/insights/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.0.0" - } -} diff --git a/packages/integrations/openapitools.json b/packages/integrations/openapitools.json deleted file mode 100644 index 3015568cd..000000000 --- a/packages/integrations/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.0.0" - } -} diff --git a/packages/notifications/openapitools.json b/packages/notifications/openapitools.json deleted file mode 100644 index 3015568cd..000000000 --- a/packages/notifications/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.0.0" - } -} diff --git a/packages/patch/openapitools.json b/packages/patch/openapitools.json deleted file mode 100644 index 06ac15078..000000000 --- a/packages/patch/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.0.0" - } -} diff --git a/packages/quickstarts/openapitools.json b/packages/quickstarts/openapitools.json deleted file mode 100644 index 06ac15078..000000000 --- a/packages/quickstarts/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.0.0" - } -} diff --git a/packages/rbac/openapitools.json b/packages/rbac/openapitools.json deleted file mode 100644 index 3015568cd..000000000 --- a/packages/rbac/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.0.0" - } -} diff --git a/packages/remediations/openapitools.json b/packages/remediations/openapitools.json deleted file mode 100644 index 06ac15078..000000000 --- a/packages/remediations/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.0.0" - } -} diff --git a/packages/shared/openapitools.json b/packages/shared/openapitools.json deleted file mode 100644 index c2e022cab..000000000 --- a/packages/shared/openapitools.json +++ /dev/null @@ -1,8 +0,0 @@ - -{ - "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.4.0" - } -} diff --git a/packages/sources/openapitools.json b/packages/sources/openapitools.json deleted file mode 100644 index 06ac15078..000000000 --- a/packages/sources/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.0.0" - } -} diff --git a/packages/topological-inventory/openapitools.json b/packages/topological-inventory/openapitools.json deleted file mode 100644 index 06ac15078..000000000 --- a/packages/topological-inventory/openapitools.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json", - "spaces": 2, - "generator-cli": { - "version": "7.0.0" - } -} From 5b08892db834bc251a80de4018c392a3a6f3f583 Mon Sep 17 00:00:00 2001 From: Charles Mulder Date: Tue, 28 Apr 2026 17:00:06 +0100 Subject: [PATCH 2/3] chore(deps): upgrade openapi-generator 6.6.0 to 7.0.0 --- openapitools.json | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openapitools.json b/openapitools.json index cd53ff4ca..3015568cd 100644 --- a/openapitools.json +++ b/openapitools.json @@ -2,6 +2,6 @@ "$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json", "spaces": 2, "generator-cli": { - "version": "6.6.0" + "version": "7.0.0" } } diff --git a/pom.xml b/pom.xml index 5a20455e0..9696da18b 100644 --- a/pom.xml +++ b/pom.xml @@ -134,7 +134,7 @@ UTF-8 - 6.6.0 + 7.0.0 1.0.0 4.13.2 1.10.0 From eb8f595053ef59723e4cb982fe4936eeba194991 Mon Sep 17 00:00:00 2001 From: Charles Mulder Date: Tue, 28 Apr 2026 17:33:54 +0100 Subject: [PATCH 3/3] fix(vulnerabilities): skip validation for upstream spec issues --- packages/vulnerabilities/project.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/vulnerabilities/project.json b/packages/vulnerabilities/project.json index b8b82c434..7aa64a8ed 100644 --- a/packages/vulnerabilities/project.json +++ b/packages/vulnerabilities/project.json @@ -9,6 +9,7 @@ "options": { "postProcess": "./postProcess.sh", "legacyGenerator": true, + "skipValidation": true, "specs": { "default": "apiSpec.json", "git-api": "apiSpec.json"