From fffafed67a58636e5c1db2c712db0294ed32baf0 Mon Sep 17 00:00:00 2001 From: RachelElysia <71795832+RachelElysia@users.noreply.github.com> Date: Mon, 15 Dec 2025 14:31:55 -0500 Subject: [PATCH] Fleet UI: Fix package form preinstall sql to handle invalid sql as savable (#37283) --- .../components/forms/PackageForm/helpers.tsx | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx b/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx index 9c2e93d264..05a124509e 100644 --- a/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx +++ b/frontend/pages/SoftwarePage/components/forms/PackageForm/helpers.tsx @@ -1,7 +1,6 @@ import React from "react"; -// @ts-ignore -import validateQuery from "components/forms/validators/validate_query"; +import { validateQuery } from "components/forms/validators/validate_query"; import { getExtensionFromFileName } from "utilities/file/fileUtils"; import { IPackageFormData, IPackageFormValidation } from "./PackageForm"; @@ -35,16 +34,22 @@ const FORM_VALIDATION_CONFIG: Record< validations: [ { name: "invalidQuery", - isValid: (formData) => { + // Allow all SQL including empty SQL: this field never blocks form submission Request: #35058 + isValid: () => true, + message: (formData) => { const query = formData.preInstallQuery; - return ( - query === undefined || query === "" || validateQuery(query).valid - ); + if (!query) { + return ""; + } + + const { error } = validateQuery(query); + // Return error text (or empty string) + return error || ""; }, - message: (formData) => validateQuery(formData.preInstallQuery).error, }, ], }, + installScript: { validations: [ { @@ -182,6 +187,14 @@ export const generateFormValidation = (formData: IPackageFormData) => { if (!failedValidation) { formValidation[objKey] = { isValid: true, + // still compute error message for preInstallQuery since it can have warnings + // of bad SQL but still allow form submission + ...(objKey === "preInstallQuery" && { + message: getErrorMessage( + formData, + FORM_VALIDATION_CONFIG[objKey].validations[0].message + ), + }), }; } else { formValidation.isValid = false;