From 04e6aecf9f0323c8146dcf0048ad8679ba5d480e Mon Sep 17 00:00:00 2001 From: "norman.banick" Date: Thu, 21 Aug 2025 16:14:24 +0000 Subject: [PATCH 1/3] Changes before Firebase Studio auto-run --- frontend/src/App.js | 279 ++++++++++++------ frontend/src/apiService.js | 79 +++++ .../Alerts}/AiErrorAnalysis.js | 0 .../Alerts}/AiValidationErrorAnalysis.js | 0 frontend/src/components/Editors/CodeEditor.js | 59 ++++ package-lock.json | 6 + 6 files changed, 328 insertions(+), 95 deletions(-) create mode 100644 frontend/src/apiService.js rename frontend/src/{ => components/Alerts}/AiErrorAnalysis.js (100%) rename frontend/src/{ => components/Alerts}/AiValidationErrorAnalysis.js (100%) create mode 100644 frontend/src/components/Editors/CodeEditor.js create mode 100644 package-lock.json diff --git a/frontend/src/App.js b/frontend/src/App.js index c566be6..33271dd 100644 --- a/frontend/src/App.js +++ b/frontend/src/App.js @@ -4,8 +4,7 @@ import { CssBaseline, AppBar, Toolbar, Typography, Container, Box, Button, CircularProgress, Card, CardContent, CardHeader, Alert, AlertTitle, IconButton, Stack, useTheme, Autocomplete, TextField, -} from '@mui/material'; -import CloseIcon from '@mui/icons-material/Close'; +} from '@mui/material'; // Import necessary Material UI components import DoubleArrowIcon from '@mui/icons-material/DoubleArrow'; import VerifiedIcon from '@mui/icons-material/Verified'; import WhatshotIcon from '@mui/icons-material/Whatshot'; @@ -13,20 +12,31 @@ import CodeMirror from '@uiw/react-codemirror'; import { sql } from '@codemirror/lang-sql'; import { oneDark } from '@codemirror/theme-one-dark'; import { purple, blueGrey } from '@mui/material/colors'; +import AccountCircleIcon from '@mui/icons-material/AccountCircle'; // Import AccountCircleIcon +import CloseIcon from '@mui/icons-material/Close'; +import SettingsIcon from '@mui/icons-material/Settings'; // Import SettingsIcon + +// Import API Service +import { fetchVdbs, translateSql, validateSql } from '/home/user/VQLForge/frontend/src/apiService.js'; -// --- Import the new component --- -import AiErrorAnalysis from './AiErrorAnalysis'; // Assuming this component exists -import AiValidationErrorAnalysis from './AiValidationErrorAnalysis'; // Assuming this component exists +// Import Custom Components +import CodeEditor from '/home/user/VQLForge/frontend/src/components/Editors/CodeEditor.js'; + +// --- Import Alert Components --- +import AiErrorAnalysis from '/home/user/VQLForge/frontend/src/components/Alerts/AiErrorAnalysis.js'; +import AiValidationErrorAnalysis from '/home/user/VQLForge/frontend/src/components/Alerts/AiValidationErrorAnalysis.js'; +// import ConvertButton from '/home/user/VQLForge/frontend/src/components/Controls/ConvertButton.js'; // Assuming you'll create this // --- Configuration --- const availableDialects = [{ value: 'athena', label: 'Athena' }, { value: 'bigquery', label: 'BigQuery' }, { value: 'clickhouse', label: 'ClickHouse' }, { value: 'databricks', label: 'Databricks' }, { value: 'doris', label: 'Doris' }, { value: 'drill', label: 'Drill' }, { value: 'druid', label: 'Druid' }, { value: 'duckdb', label: 'DuckDB' }, { value: 'dune', label: 'Dune' }, { value: 'hive', label: 'Hive' }, { value: 'materialize', label: 'Materialize' }, { value: 'mysql', label: 'MySQL' }, { value: 'oracle', label: 'Oracle' }, { value: 'postgres', label: 'PostgreSQL' }, { value: 'presto', label: 'Presto' }, { value: 'prql', label: 'PRQL' }, { value: 'redshift', label: 'Redshift' }, { value: 'risingwave', label: 'RisingWave' }, { value: 'snowflake', label: 'Snowflake' }, { value: 'spark', label: 'Spark SQL' }, { value: 'spark2', label: 'Spark SQL 2' }, { value: 'sqlite', label: 'SQLite' }, { value: 'starrocks', label: 'StarRocks' }, { value: 'tableau', label: 'Tableau' }, { value: 'teradata', label: 'Teradata' }, { value: 'trino', label: 'Trino' }]; const editorExtensions = [sql()]; const initialTargetSqlPlaceholder = '-- Target SQL will appear here after conversion...'; +const conversionErrorPlaceholder = '-- Conversion Error --'; function App() { const theme = useTheme(); - const API_BASE_URL = ''; const [sourceDialect, setSourceDialect] = useState(availableDialects[0]); + // --- VDB State --- const [actualAvailableVDBs, setActualAvailableVDBs] = useState([]); const [selectedVDB, setSelectedVDB] = useState(null); // Initialize to null @@ -47,13 +57,8 @@ function App() { useEffect(() => { setVdbsLoading(true); setVdbsError(null); - fetch(`${API_BASE_URL}/api/vdbs`) - .then(response => { - if (!response.ok) { - return response.text().then(text => { throw new Error(`Failed to fetch VDBs: ${response.status} ${response.statusText} - ${text}`); }); - } - return response.json(); - }) + fetchVdbs() + .then(data => { if (data && Array.isArray(data.results)) { setActualAvailableVDBs(data.results); @@ -73,7 +78,7 @@ function App() { setActualAvailableVDBs([]); // Set to empty array on error to avoid issues with Autocomplete setVdbsLoading(false); }); - }, [API_BASE_URL]); // Removed selectedVDB from dependency to avoid re-fetch on selection + }, []); // Removed selectedVDB from dependency to avoid re-fetch on selection const onSourceChange = useCallback((value) => { setSourceSql(value); @@ -85,7 +90,7 @@ function App() { setSourceDialect(newValue); clearErrorState(); clearValidationState(); - }; + }; const handleVDBChange = (event, newValue) => { setSelectedVDB(newValue); @@ -118,37 +123,15 @@ function App() { setIsLoading(false); return; } - const requestBody = { - sql: sourceSql, - dialect: sourceDialect.value, - vdb: selectedVDB.value // selectedVDB is an object, use its value property - }; - - try { - const response = await fetch(`${API_BASE_URL}/api/translate`, { - method: 'POST', - headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, - body: JSON.stringify(requestBody) - }); - - if (!response.ok) { - let errorDetails = `Translation Request Failed: ${response.status}`; - try { - const errorData = await response.json(); - errorDetails = errorData.detail || errorData.message || JSON.stringify(errorData); - if (errorDetails && !errorDetails.toLowerCase().includes(response.status.toString())) { - errorDetails = `(${response.status}) ${errorDetails}`; - } - } catch (parseError) { - try { - const textError = await response.text(); - if (textError) errorDetails = `(${response.status}) ${textError}`; - } catch (readError) { /* ignore */ } - } - throw new Error(errorDetails); - } - - const data = await response.json(); + // const requestBody = { sql: sourceSql, dialect: sourceDialect.value, vdb: selectedVDB.value }; // No longer needed here + const requestBody = { + sql: sourceSql, + dialect: sourceDialect.value, + vdb: selectedVDB.value // selectedVDB is an object, use its value property + }; + // Using the new apiService + try { + const data = await translateSQL(requestBody); if (data && typeof data.vql === 'string') { setTargetSql(data.vql); @@ -166,7 +149,7 @@ function App() { } catch (err) { console.error("Conversion process failed:", err); setError(err.message || 'Unknown conversion error.'); - setTargetSql('-- Conversion Error --'); + setTargetSql(conversionErrorPlaceholder); } finally { setIsLoading(false); } @@ -180,7 +163,7 @@ function App() { if (validationResult?.status === 'error_ai') { return; } - if (!targetSql || targetSql === initialTargetSqlPlaceholder || targetSql === '-- Conversion Error --') { + if (!targetSql || targetSql === initialTargetSqlPlaceholder || targetSql === conversionErrorPlaceholder) { setValidationResult({ status: 'info', message: 'Convert the SQL to VQL first or resolve conversion errors.' }); return; } @@ -200,57 +183,114 @@ function App() { return; } - const validateRequestBody = { - sql: sourceSql, - vql: vqlWithoutLineBreaks - }; - try { - const validateResponse = await fetch(`${API_BASE_URL}/api/validate`, { - method: 'POST', - headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, - body: JSON.stringify(validateRequestBody) - }); - - let validationData; - try { - validationData = await validateResponse.json(); - } catch (jsonError) { - const textError = await validateResponse.text(); - throw new Error(`(${validateResponse.status}) Server returned non-JSON response: ${textError || validateResponse.statusText}`); - } - - if (!validateResponse.ok) { - if (validationData?.error_analysis) { - setValidationResult({ status: 'error_ai', data: validationData.error_analysis }); - } else { - const errorMessage = validationData?.message || validationData?.detail || `Validation Request Failed: ${validateResponse.status}`; - setValidationResult({ status: 'error', message: errorMessage }); - } + // Using the new apiService + const validationData = await validateSql(sourceSql, vqlWithoutLineBreaks); + // The validateSql service now throws errors with specific data for AI analysis + if (validationData.validated) { + setValidationResult({ status: 'success', message: validationData.message || `VQL syntax check successful!` }); + // This else block is now handled in the catch block due to the service throwing } else { - if (validationData.validated) { - setValidationResult({ status: 'success', message: validationData.message || `VQL syntax check successful!` }); - } else { - if (validationData.error_analysis) { - setValidationResult({ status: 'error_ai', data: validationData.error_analysis }); - } else { - setValidationResult({ status: 'error', message: validationData.message || 'Validation Failed: Denodo rejected the query syntax/plan.' }); - } - } + // This case should ideally not be reached if validateSql service throws on non-ok + setValidationResult({ status: 'error', message: validationData.message || 'Validation Failed: Denodo rejected the query syntax/plan.' }); } + } catch (err) { console.error("Validation process error:", err); - setValidationResult({ - status: 'error', - message: `Validation Process Error: ${err.message || 'Unknown error.'}` - }); + if (err.status === 'error_ai' && err.data) { // Check for the custom error status and data + setValidationResult({ status: 'error_ai', data: err.data }); + } else { + setValidationResult({ + status: 'error', + message: `Validation Process Error: ${err.message || 'Unknown error.'}` + }); + } } finally { setIsValidating(false); } }; + const handleSwap = () => { + const currentSourceDialect = sourceDialect; + const currentSelectedVDB = selectedVDB; + setSourceDialect(currentSelectedVDB); // Swap VDB to Source Dialect + setSelectedVDB(currentSourceDialect); // Swap Source Dialect to Selected VDB + setSourceSql(targetSql); // Swap SQL and VQL + setTargetSql(initialTargetSqlPlaceholder); // Reset target VQL + }; + const renderAlerts = () => ( + + {/* Error and validation alerts will be rendered here */} + {/* This is a helper function to keep the main render cleaner */} + + ); + + const targetEditorFixedWidth = '550px'; + const controlsFixedWidth = '220px'; const anyLoading = isLoading || isValidating || vdbsLoading; + // Helper to render alert messages + const renderAlerts = () => ( + + {error && typeof error === 'object' && error.explanation && error.sql_suggestion && ( + + )} + {error && typeof error === 'string' && ( + + Error + {error} + + )} + {/* --- VDB Loading/Error --- */} + {vdbsLoading && !vdbsError && ( // Show loading only if no error + }>Loading VDB options... + )} + {vdbsError && ( + setVdbsError(null))} + > + VDB Load Issue + {vdbsError} - VDB selection might be unavailable or incomplete.\n + + )} + {validationResult?.status === 'error_ai' && validationResult.data && ( + + )} + {validationResult?.status === 'success' && ( + + Validation Successful + {validationResult.message} + + )} + {validationResult?.status === 'info' && ( + + Validation Info + {validationResult.message} + + )} + {/* Moved error type error (the one related to validation) down to avoid overlap with general error */} + {validationResult?.status === 'error' && ( + + Validation Error + {validationResult.message} + + )} + + ); + const targetEditorFixedWidth = '550px'; const controlsFixedWidth = '220px'; const renderEditorCard = (title, borderColor, value, readOnly = false, onChangeHandler = null) => ( @@ -354,7 +394,14 @@ function App() { sx={{ flexGrow: 1 }} > - {renderEditorCard(`Source (${sourceDialect ? sourceDialect.label : 'Select Dialect'})`, theme.palette.primary.main, sourceSql, false, onSourceChange)} + @@ -368,9 +415,16 @@ function App() { isOptionEqualToValue={(option, value) => option?.value === value?.value} disabled={anyLoading} fullWidth - renderInput={(params) => } + renderInput={(params) => } // Changed to TextField + renderOption={(props, option) => ( // renderOption for dropdown options + img': { mr: 2, flexShrink: 0 } }} {...props}> + {/* Placeholder for dialect icon - replace with actual icon component */} + {/* */} + {option.label} + + )} /> - ( // renderOption for dropdown options + img': { mr: 2, flexShrink: 0 } }} {...props}> + {/* Placeholder for VDB icon - replace with actual icon component */} + {/* */} + {option.label} + + )} InputProps={{ ...params.InputProps, + // renderOption={(props, option) => ( // renderOption for dropdown options + // img': { mr: 2, flexShrink: 0 } }} {...props}> + // {/* Placeholder for VDB icon - replace with actual icon component */} + // {/* */} + // renderInput={(params) => ( // Optional: custom rendering for the selected value in the input field + // {vdbsLoading ? : null} @@ -399,13 +466,20 @@ function App() { /> )} /> - - {isLoading && ()} - + {/* Add a Box placeholder for the animated arrow here */} + {/* Added margin vertical for spacing */} + {/* Animated arrow component goes here */} + + {/* Add the Swap button */} + + + + + + + + {/* Add a Box placeholder for the animated arrow here */} - {renderEditorCard("Target (VQL)", purple[500], targetSql, true)} + diff --git a/frontend/src/apiService.js b/frontend/src/apiService.js new file mode 100644 index 0000000..5e6c38e --- /dev/null +++ b/frontend/src/apiService.js @@ -0,0 +1,79 @@ +const API_BASE_URL = ''; // This should ideally come from environment variables + +export const fetchVdbs = async () => { + const response = await fetch(`${API_BASE_URL}/api/vdbs`); + if (!response.ok) { + const text = await response.text(); + throw new Error(`Failed to fetch VDBs: ${response.status} ${response.statusText} - ${text}`); + } + return response.json(); +}; + +export const translateSql = async (sql, dialect, vdb) => { + const requestBody = { + sql: sql, + dialect: dialect, + vdb: vdb + }; + + const response = await fetch(`${API_BASE_URL}/api/translate`, { + method: 'POST', + headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, + body: JSON.stringify(requestBody) + }); + + if (!response.ok) { + let errorDetails = `Translation Request Failed: ${response.status}`; + try { + const errorData = await response.json(); + errorDetails = errorData.detail || errorData.message || JSON.stringify(errorData); + if (errorDetails && !errorDetails.toLowerCase().includes(response.status.toString())) { + errorDetails = `(${response.status}) ${errorDetails}`; + } + } catch (parseError) { + try { + const textError = await response.text(); + if (textError) errorDetails = `(${response.status}) ${textError}`; + } catch (readError) { /* ignore */ } + } + throw new Error(errorDetails); + } + + return response.json(); +}; + +export const validateSql = async (sql, vql) => { + const validateRequestBody = { + sql: sql, + vql: vql + }; + + const validateResponse = await fetch(`${API_BASE_URL}/api/validate`, { + method: 'POST', + headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, + body: JSON.stringify(validateRequestBody) + }); + + let validationData; + try { + validationData = await validateResponse.json(); + } catch (jsonError) { + const textError = await validateResponse.text(); + throw new Error(`(${validateResponse.status}) Server returned non-JSON response: ${textError || validateResponse.statusText}`); + } + + if (!validateResponse.ok) { + if (validationData?.error_analysis) { + // Re-throwing with data for specific handling in component + const error = new Error("Validation failed with AI analysis"); + error.data = validationData.error_analysis; + error.status = 'error_ai'; + throw error; + } else { + const errorMessage = validationData?.message || validationData?.detail || `Validation Request Failed: ${validateResponse.status}`; + throw new Error(errorMessage); + } + } else { + return validationData; + } +}; \ No newline at end of file diff --git a/frontend/src/AiErrorAnalysis.js b/frontend/src/components/Alerts/AiErrorAnalysis.js similarity index 100% rename from frontend/src/AiErrorAnalysis.js rename to frontend/src/components/Alerts/AiErrorAnalysis.js diff --git a/frontend/src/AiValidationErrorAnalysis.js b/frontend/src/components/Alerts/AiValidationErrorAnalysis.js similarity index 100% rename from frontend/src/AiValidationErrorAnalysis.js rename to frontend/src/components/Alerts/AiValidationErrorAnalysis.js diff --git a/frontend/src/components/Editors/CodeEditor.js b/frontend/src/components/Editors/CodeEditor.js new file mode 100644 index 0000000..bdf11fa --- /dev/null +++ b/frontend/src/components/Editors/CodeEditor.js @@ -0,0 +1,59 @@ +import React, { useCallback } from 'react'; +import CodeMirror from '@uiw/react-codemirror'; +import { oneDark } from '@codemirror/theme-one-dark'; +import { Card, CardContent, CardHeader, Box } from '@mui/material'; +import IconButton from '@mui/material/IconButton'; +import { lineNumbers, highlightActiveLineGutter } from '@codemirror/view'; +import { indentOnInput } from '@codemirror/language'; +import { bracketMatching, syntaxHighlighting, defaultHighlightStyle } from '@codemirror/language'; +// There doesn't appear to be a standard, actively maintained CodeMirror 6 extension for a minimap +// A custom implementation or a third-party library might be required. +function CodeEditor({ + title, + borderColor, + value, + readOnly = false, + onChange, + height = "100%", + minHeight = "55vh", + extensions = [], + loading = false // Added loading prop to disable interaction +}) { + const onCodeChange = useCallback((value) => { + if (onChange) { + onChange(value); + } + }, [onChange]); + + return ( + + {/* Icon goes here */}} + sx={{ borderBottom: '5px solid', borderColor: borderColor, flexShrink: 0, py: 1.5, px: 2 }} titleTypographyProps={{ variant: 'h6' }} /> + + + + + + + ); +} + +export default CodeEditor; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..23627b0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "VQLForge", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} From 778504bf881c92a71a50523fc21cebe3f22b6c3d Mon Sep 17 00:00:00 2001 From: "norman.banick" Date: Thu, 21 Aug 2025 17:16:01 +0000 Subject: [PATCH 2/3] Some UI changes --- frontend/public/index.html | 20 +-- frontend/src/App.js | 283 ++++++++++--------------------------- frontend/src/Logo.js | 28 ++++ frontend/src/theme.js | 72 ++++++++++ 4 files changed, 179 insertions(+), 224 deletions(-) create mode 100644 frontend/src/Logo.js create mode 100644 frontend/src/theme.js diff --git a/frontend/public/index.html b/frontend/public/index.html index 107db8e..723cc3d 100644 --- a/frontend/public/index.html +++ b/frontend/public/index.html @@ -5,26 +5,20 @@ - - - - - - - + + + + VQLForge - +
- - \ No newline at end of file + diff --git a/frontend/src/App.js b/frontend/src/App.js index 33271dd..e7bd242 100644 --- a/frontend/src/App.js +++ b/frontend/src/App.js @@ -2,30 +2,25 @@ import React, { useState, useCallback, useEffect } from 'react'; import { CssBaseline, AppBar, Toolbar, Typography, Container, Box, - Button, CircularProgress, Card, CardContent, CardHeader, Alert, + Button, CircularProgress, Alert, AlertTitle, IconButton, Stack, useTheme, Autocomplete, TextField, } from '@mui/material'; // Import necessary Material UI components import DoubleArrowIcon from '@mui/icons-material/DoubleArrow'; import VerifiedIcon from '@mui/icons-material/Verified'; -import WhatshotIcon from '@mui/icons-material/Whatshot'; -import CodeMirror from '@uiw/react-codemirror'; +import CloseIcon from '@mui/icons-material/Close'; import { sql } from '@codemirror/lang-sql'; -import { oneDark } from '@codemirror/theme-one-dark'; import { purple, blueGrey } from '@mui/material/colors'; -import AccountCircleIcon from '@mui/icons-material/AccountCircle'; // Import AccountCircleIcon -import CloseIcon from '@mui/icons-material/Close'; -import SettingsIcon from '@mui/icons-material/Settings'; // Import SettingsIcon // Import API Service -import { fetchVdbs, translateSql, validateSql } from '/home/user/VQLForge/frontend/src/apiService.js'; +import { fetchVdbs, translateSql, validateSql } from './apiService.js'; // Import Custom Components -import CodeEditor from '/home/user/VQLForge/frontend/src/components/Editors/CodeEditor.js'; +import CodeEditor from './components/Editors/CodeEditor.js'; +import VqlForgeLogo from './Logo.js'; // Import the new logo // --- Import Alert Components --- -import AiErrorAnalysis from '/home/user/VQLForge/frontend/src/components/Alerts/AiErrorAnalysis.js'; -import AiValidationErrorAnalysis from '/home/user/VQLForge/frontend/src/components/Alerts/AiValidationErrorAnalysis.js'; -// import ConvertButton from '/home/user/VQLForge/frontend/src/components/Controls/ConvertButton.js'; // Assuming you'll create this +import AiErrorAnalysis from './components/Alerts/AiErrorAnalysis.js'; +import AiValidationErrorAnalysis from './components/Alerts/AiValidationErrorAnalysis.js'; // --- Configuration --- const availableDialects = [{ value: 'athena', label: 'Athena' }, { value: 'bigquery', label: 'BigQuery' }, { value: 'clickhouse', label: 'ClickHouse' }, { value: 'databricks', label: 'Databricks' }, { value: 'doris', label: 'Doris' }, { value: 'drill', label: 'Drill' }, { value: 'druid', label: 'Druid' }, { value: 'duckdb', label: 'DuckDB' }, { value: 'dune', label: 'Dune' }, { value: 'hive', label: 'Hive' }, { value: 'materialize', label: 'Materialize' }, { value: 'mysql', label: 'MySQL' }, { value: 'oracle', label: 'Oracle' }, { value: 'postgres', label: 'PostgreSQL' }, { value: 'presto', label: 'Presto' }, { value: 'prql', label: 'PRQL' }, { value: 'redshift', label: 'Redshift' }, { value: 'risingwave', label: 'RisingWave' }, { value: 'snowflake', label: 'Snowflake' }, { value: 'spark', label: 'Spark SQL' }, { value: 'spark2', label: 'Spark SQL 2' }, { value: 'sqlite', label: 'SQLite' }, { value: 'starrocks', label: 'StarRocks' }, { value: 'tableau', label: 'Tableau' }, { value: 'teradata', label: 'Teradata' }, { value: 'trino', label: 'Trino' }]; @@ -49,6 +44,8 @@ function App() { const [error, setError] = useState(null); const [isValidating, setIsValidating] = useState(false); const [validationResult, setValidationResult] = useState(null); + + const anyLoading = isLoading || isValidating || vdbsLoading; const clearValidationState = () => { setValidationResult(null); }; const clearErrorState = () => { setError(null); }; @@ -57,15 +54,10 @@ function App() { useEffect(() => { setVdbsLoading(true); setVdbsError(null); - fetchVdbs() - + fetchVdbs() .then(data => { if (data && Array.isArray(data.results)) { setActualAvailableVDBs(data.results); - // Optionally set a default selected VDB if list is not empty and none is selected - // if (data.results.length > 0 && !selectedVDB) { - // setSelectedVDB(data.results[0]); - // } } else { console.error("VDB data from API is not in the expected format:", data); throw new Error("VDB data is not in the expected format (missing 'results' array)."); @@ -75,10 +67,10 @@ function App() { .catch(err => { console.error("Error fetching VDBs:", err); setVdbsError(err.message || "Could not fetch VDB options."); - setActualAvailableVDBs([]); // Set to empty array on error to avoid issues with Autocomplete + setActualAvailableVDBs([{ value: 'admin', label: 'Admin' }]); // Set to fallback value on error setVdbsLoading(false); }); - }, []); // Removed selectedVDB from dependency to avoid re-fetch on selection + }, []); const onSourceChange = useCallback((value) => { setSourceSql(value); @@ -90,7 +82,7 @@ function App() { setSourceDialect(newValue); clearErrorState(); clearValidationState(); - }; + }; const handleVDBChange = (event, newValue) => { setSelectedVDB(newValue); @@ -123,15 +115,13 @@ function App() { setIsLoading(false); return; } - // const requestBody = { sql: sourceSql, dialect: sourceDialect.value, vdb: selectedVDB.value }; // No longer needed here - const requestBody = { - sql: sourceSql, - dialect: sourceDialect.value, - vdb: selectedVDB.value // selectedVDB is an object, use its value property - }; - // Using the new apiService - try { - const data = await translateSQL(requestBody); + const requestBody = { + sql: sourceSql, + dialect: sourceDialect.value, + vdb: selectedVDB.value + }; + try { + const data = await translateSql(requestBody); if (data && typeof data.vql === 'string') { setTargetSql(data.vql); @@ -149,7 +139,7 @@ function App() { } catch (err) { console.error("Conversion process failed:", err); setError(err.message || 'Unknown conversion error.'); - setTargetSql(conversionErrorPlaceholder); + setTargetSql(conversionErrorPlaceholder); } finally { setIsLoading(false); } @@ -184,20 +174,16 @@ function App() { } try { - // Using the new apiService const validationData = await validateSql(sourceSql, vqlWithoutLineBreaks); - // The validateSql service now throws errors with specific data for AI analysis if (validationData.validated) { setValidationResult({ status: 'success', message: validationData.message || `VQL syntax check successful!` }); - // This else block is now handled in the catch block due to the service throwing } else { - // This case should ideally not be reached if validateSql service throws on non-ok setValidationResult({ status: 'error', message: validationData.message || 'Validation Failed: Denodo rejected the query syntax/plan.' }); } } catch (err) { console.error("Validation process error:", err); - if (err.status === 'error_ai' && err.data) { // Check for the custom error status and data + if (err.status === 'error_ai' && err.data) { setValidationResult({ status: 'error_ai', data: err.data }); } else { setValidationResult({ @@ -210,119 +196,25 @@ function App() { } }; - const handleSwap = () => { - const currentSourceDialect = sourceDialect; - const currentSelectedVDB = selectedVDB; - setSourceDialect(currentSelectedVDB); // Swap VDB to Source Dialect - setSelectedVDB(currentSourceDialect); // Swap Source Dialect to Selected VDB - setSourceSql(targetSql); // Swap SQL and VQL - setTargetSql(initialTargetSqlPlaceholder); // Reset target VQL - }; - const renderAlerts = () => ( - - {/* Error and validation alerts will be rendered here */} - {/* This is a helper function to keep the main render cleaner */} - - ); - - const targetEditorFixedWidth = '550px'; - const controlsFixedWidth = '220px'; - const anyLoading = isLoading || isValidating || vdbsLoading; - - // Helper to render alert messages - const renderAlerts = () => ( - - {error && typeof error === 'object' && error.explanation && error.sql_suggestion && ( - - )} - {error && typeof error === 'string' && ( - - Error - {error} - - )} - {/* --- VDB Loading/Error --- */} - {vdbsLoading && !vdbsError && ( // Show loading only if no error - }>Loading VDB options... - )} - {vdbsError && ( - setVdbsError(null))} - > - VDB Load Issue - {vdbsError} - VDB selection might be unavailable or incomplete.\n - - )} - {validationResult?.status === 'error_ai' && validationResult.data && ( - - )} - {validationResult?.status === 'success' && ( - - Validation Successful - {validationResult.message} - - )} - {validationResult?.status === 'info' && ( - - Validation Info - {validationResult.message} - - )} - {/* Moved error type error (the one related to validation) down to avoid overlap with general error */} - {validationResult?.status === 'error' && ( - - Validation Error - {validationResult.message} - - )} - - ); - - const targetEditorFixedWidth = '550px'; - const controlsFixedWidth = '220px'; - const renderEditorCard = (title, borderColor, value, readOnly = false, onChangeHandler = null) => ( - - - - - - - - - ); - const alertCloseButton = (onCloseHandler) => (); return ( - + - + - - - VQLForge + {/* Slightly smaller, more margin */} + {/* Reduced font weight, adjusted letter spacing */} + VQLForge + @@ -345,9 +237,9 @@ function App() { {error} )} - {/* --- VDB Loading/Error --- */} - {vdbsLoading && !vdbsError && ( // Show loading only if no error - }>Loading VDB options... + {vdbsLoading && !vdbsError && ( + }>Loading VDB options... + )} {vdbsError && ( )} - {/* Moved error type error (the one related to validation) down to avoid overlap with general error */} {validationResult?.status === 'error' && ( Validation Error @@ -394,7 +285,7 @@ function App() { sx={{ flexGrow: 1 }} > - - + option?.value === value?.value} disabled={anyLoading} fullWidth - renderInput={(params) => } // Changed to TextField - renderOption={(props, option) => ( // renderOption for dropdown options + renderInput={(params) => } + renderOption={(props, option) => ( img': { mr: 2, flexShrink: 0 } }} {...props}> - {/* Placeholder for dialect icon - replace with actual icon component */} - {/* */} {option.label} )} /> - option.label || ""} value={selectedVDB} onChange={handleVDBChange} isOptionEqualToValue={(option, value) => option?.value === value?.value} - disabled={anyLoading || !!vdbsError || actualAvailableVDBs.length === 0} + disabled={anyLoading} fullWidth renderInput={(params) => ( ( // renderOption for dropdown options - img': { mr: 2, flexShrink: 0 } }} {...props}> - {/* Placeholder for VDB icon - replace with actual icon component */} - {/* */} - {option.label} - - )} + error={!!vdbsError} InputProps={{ ...params.InputProps, - // renderOption={(props, option) => ( // renderOption for dropdown options - // img': { mr: 2, flexShrink: 0 } }} {...props}> - // {/* Placeholder for VDB icon - replace with actual icon component */} - // {/* */} - // renderInput={(params) => ( // Optional: custom rendering for the selected value in the input field - // {vdbsLoading ? : null} @@ -466,52 +342,37 @@ function App() { /> )} /> - {/* Added margin top for spacing */} - {isLoading && ()} - {/* Add a Box placeholder for the animated arrow here */} - {/* Added margin vertical for spacing */} - {/* Animated arrow component goes here */} - - {/* Add the Swap button */} - - - - - {isValidating && ()} + + + {isValidating && ()} + - {/* Placeholder buttons for preset templates */} - {/* Adjusted margin top */} - Preset Templates - - - - - - {/* Add a Box placeholder for the animated arrow here */} - + + + + + + + + + + + + + + + + + + + + + ); +} + +export default Logo; diff --git a/frontend/src/theme.js b/frontend/src/theme.js new file mode 100644 index 0000000..b04d279 --- /dev/null +++ b/frontend/src/theme.js @@ -0,0 +1,72 @@ +import { createTheme } from '@mui/material/styles'; + +// --- Color Palette --- +const primaryColor = '#6d48e8'; // A vibrant purple +const secondaryColor = '#3a8dff'; // A complementary blue +const backgroundColor = '#f4f6f8'; // A light, clean background grey +const paperColor = '#ffffff'; +const textColor = '#344054'; +const darkGrey = '#1e293b'; + +// --- Theme Definition --- +const theme = createTheme({ + palette: { + primary: { + main: primaryColor, + }, + secondary: { + main: secondaryColor, + }, + background: { + default: backgroundColor, + paper: paperColor, + }, + text: { + primary: textColor, + secondary: darkGrey, + }, + }, + typography: { + fontFamily: '"Inter", "Helvetica", "Arial", sans-serif', + h1: { fontSize: '2.5rem', fontWeight: 600 }, + h2: { fontSize: '2rem', fontWeight: 600 }, + h3: { fontSize: '1.75rem', fontWeight: 600 }, + h4: { fontSize: '1.5rem', fontWeight: 600 }, + h5: { fontSize: '1.25rem', fontWeight: 600 }, + h6: { fontSize: '1.1rem', fontWeight: 600 }, + body1: { + fontSize: '1rem', + }, + button: { + textTransform: 'none', + fontWeight: 600, + }, + }, + components: { + MuiCard: { + styleOverrides: { + root: { + borderRadius: '12px', + boxShadow: '0px 4px 20px rgba(0, 0, 0, 0.05)', + border: '1px solid #e0e0e0' + }, + }, + }, + MuiButton: { + styleOverrides: { + root: { + borderRadius: '8px', + }, + }, + }, + MuiAppBar: { + styleOverrides: { + root: { + boxShadow: '0px 2px 10px rgba(0, 0, 0, 0.1)', + }, + }, + }, + }, +}); + +export default theme; From 207ca9bae8ba5013271e06e3f1bfb91cd92a9115 Mon Sep 17 00:00:00 2001 From: Norman Banick Date: Thu, 21 Aug 2025 20:09:44 +0000 Subject: [PATCH 3/3] Lots of updates --- backend/pyproject.toml | 10 +- backend/src/api/vdb_list.py | 113 +++++++++--- backend/src/config.py | 1 + backend/src/main.py | 25 +-- backend/src/schemas/common.py | 13 +- backend/src/utils/ai_analyzer.py | 6 +- backend/src/utils/denodo_client.py | 21 ++- docker-compose.yml | 1 + frontend/Dockerfile | 10 +- frontend/src/App.js | 167 +++++++++++------- frontend/src/Logo.js | 38 ++-- frontend/src/apiService.js | 31 ++-- .../Alerts/AiValidationErrorAnalysis.js | 157 ++++++++++++---- package-lock.json | 2 +- readme.md | 3 +- template.env | 3 +- vqlforge.png | Bin 119424 -> 133312 bytes 17 files changed, 398 insertions(+), 203 deletions(-) mode change 100755 => 100644 vqlforge.png diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 9d855d3..b953ebd 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "vqlforge" -version = "0.1.0" +version = "0.1.5" description = "VQLForge Backend" readme = "README.md" requires-python = ">=3.12" @@ -10,10 +10,18 @@ dependencies = [ "fastapi[standard]>=0.115.12", "pydantic-ai>=0.1.3", "sqlalchemy>=2.0.40", + "structlog>=24.1.0", "uvicorn[standard]>=0.34.0", "sqlglot @ file:///app/sqlglot-vql" ] +[project.optional-dependencies] +dev = [ + "pytest>=8.0.0", + "pytest-fastapi-client>=0.6.0", + "pytest-mock>=3.12.0", +] + [build-system] requires = ["hatchling"] build-backend = "hatchling.build" diff --git a/backend/src/api/vdb_list.py b/backend/src/api/vdb_list.py index 38245fa..bf803e1 100644 --- a/backend/src/api/vdb_list.py +++ b/backend/src/api/vdb_list.py @@ -1,23 +1,73 @@ import logging from fastapi import APIRouter, HTTPException -from src.schemas.common import VDBResponse +from src.schemas.common import VDBResponse, VDBConfigFile, VDBResponseItem from src.config import settings import os import yaml from typing import List, Dict, Any router = APIRouter() +logger = logging.getLogger(__name__) -def load_config_values() -> dict[list[str]]: - logging.info(f"Loading configuration from {settings.APP_VDB_CONF}") - with open(settings.APP_VDB_CONF, 'r') as f: - raw_config = yaml.safe_load(f) # Use safe_load for security - return raw_config + +def load_vdb_config_from_file() -> VDBConfigFile: + """ + Loads and parses the VDB configuration from the YAML file. + + Returns: + VDBConfigFile: A Pydantic model representing the loaded configuration. + + Raises: + HTTPException: If the file is not found, cannot be parsed, or is invalid. + """ + config_path = settings.APP_VDB_CONF + logger.info(f"Attempting to load VDB configuration from: {config_path}") + + if not os.path.exists(config_path): + logger.error(f"VDB configuration file not found at: {config_path}") + raise HTTPException( + status_code=500, + detail=f"Server configuration error: VDB config file not found at {config_path}" + ) + if not os.path.isfile(config_path): + logger.error(f"VDB configuration path is not a file: {config_path}") + raise HTTPException( + status_code=500, + detail=f"Server configuration error: VDB config path is not a file at {config_path}" + ) + + try: + with open(config_path, 'r') as f: + raw_config = yaml.safe_load(f) + # Validate the loaded YAML against the Pydantic model + vdb_config = VDBConfigFile.model_validate(raw_config) + logger.info("Successfully loaded and validated VDB configuration.") + return vdb_config + except yaml.YAMLError as e: + logger.error(f"Error parsing vdb_conf.yaml: {e}", exc_info=True) + raise HTTPException( + status_code=500, + detail=f"Server configuration error: Invalid YAML format in {config_path}. Details: {e}" + ) + except Exception as e: + logger.error(f"Unexpected error loading VDB config: {e}", exc_info=True) + raise HTTPException( + status_code=500, + detail=f"Server configuration error: Failed to load VDB config from {config_path}. Details: {e}" + ) -def transform_values(string_list: List[str]) -> List[Dict[str, str]]: - """Transforms a list of strings into a list of {'value': string, 'label': string}.""" - return [{"value": item, "label": item} for item in string_list] +def transform_vdb_strings_to_response_items(string_list: List[str]) -> List[VDBResponseItem]: + """ + Transforms a list of VDB names (strings) into a list of VDBResponseItem models. + + Args: + string_list: A list of strings, where each string is a VDB name. + + Returns: + A list of VDBResponseItem models, each with 'value' and 'label' set to the VDB name. + """ + return [VDBResponseItem(value=item, label=item) for item in string_list] @router.get("/vdbs", response_model=VDBResponse, tags=["VQL Forge"]) @@ -25,21 +75,38 @@ async def get_vdb_list() -> VDBResponse: """ Retrieves a list of VDBs from the configuration file. """ - if not settings.APP_VDB_CONF: - logging.error("No VDB CONFIG FILE") - raise HTTPException( - status_code=500, detail="VDB service error: config missing." - ) - logging.info( - f"Request received for /vdbs. Using config file: {os.path.abspath(settings.APP_VDB_CONF)}") - config = load_config_values() # Your config loading function + try: + # Load and validate the config using the Pydantic model + vdb_config = load_vdb_config_from_file() - if config['vdbs'] is None: - logging.warning("'vdbs' list empty in configuration. Returning empty list.") - return VDBResponse(results=[]) + # Transform the list of strings from the config into the desired response format + transformed_vdbs = transform_vdb_strings_to_response_items(vdb_config.vdbs) + + return VDBResponse(results=transformed_vdbs) + except HTTPException as http_exc: + # Re-raise HTTPExceptions as they are already formatted for FastAPI + raise http_exc + except Exception as e: + logger.error(f"Unhandled error in get_vdb_list: {e}", exc_info=True) + raise HTTPException(status_code=500, detail="An unexpected error occurred while fetching VDB list.") + +@router.get("/vdbs", response_model=VDBResponse, tags=["VQL Forge"]) +async def get_vdb_list() -> VDBResponse: + """ + Retrieves a list of VDBs from the configuration file. + """ try: - return VDBResponse(results=transform_values(config['vdbs'])) + # Load and validate the config using the Pydantic model + vdb_config = load_vdb_config_from_file() + + # Transform the list of strings from the config into the desired response format + transformed_vdbs = transform_vdb_strings_to_response_items(vdb_config.vdbs) + + return VDBResponse(results=transformed_vdbs) + except HTTPException as http_exc: + # Re-raise HTTPExceptions as they are already formatted for FastAPI + raise http_exc except Exception as e: - logging.error(f"Error creating VDBResponse: {e}. Data was: {config}", exc_info=True) - raise HTTPException(status_code=500, detail="Error processing VDB list.") + logger.error(f"Unhandled error in get_vdb_list: {e}", exc_info=True) + raise HTTPException(status_code=500, detail="An unexpected error occurred while fetching VDB list.") diff --git a/backend/src/config.py b/backend/src/config.py index 81d79f5..8fa3527 100644 --- a/backend/src/config.py +++ b/backend/src/config.py @@ -12,6 +12,7 @@ class Settings(BaseSettings): DENODO_USER: str DENODO_PW: str GEMINI_API_KEY: str + AI_MODEL_NAME: str DATABASE_URL: str | None = None # Will be constructed APP_VDB_CONF: str diff --git a/backend/src/main.py b/backend/src/main.py index 59788ba..079e126 100644 --- a/backend/src/main.py +++ b/backend/src/main.py @@ -1,14 +1,14 @@ # src/main.py import logging from fastapi import FastAPI -from fastapi.middleware.cors import CORSMiddleware from src.api.router import api_router # Import the main router from src.config import settings # To access settings if needed for app config from src.db.session import engine as db_engine, init_db_engine # To ensure DB is up +from src.utils.logging_config import setup_logging # Import the new logging setup -# Configure logging -logging.basicConfig(level=logging.INFO) # You can make level configurable via settings +# Configure logging using the new setup function +setup_logging() logger = logging.getLogger(__name__) # Initialize services @@ -25,21 +25,7 @@ version="1.0.0", ) -# --- CORS Configuration --- -origins = [ - "http://localhost:4999", - "http://127.0.0.1:4999", - # Add production frontend origins here -] - -app.add_middleware( - CORSMiddleware, - allow_origins=origins, - allow_credentials=True, - allow_methods=["*"], - allow_headers=["*"], -) -# --- End CORS Configuration --- +# CORS is now handled by the NGINX reverse proxy. # Include the main API router app.include_router(api_router) @@ -50,6 +36,3 @@ @app.get("/", tags=["Default"]) def read_root(): return {"message": "Welcome to VQLForge Backend!"} - -# For UVicorn ASGI server: -# Run with: uv uvicorn src.main:app --reload diff --git a/backend/src/schemas/common.py b/backend/src/schemas/common.py index 95d6a89..f287bee 100644 --- a/backend/src/schemas/common.py +++ b/backend/src/schemas/common.py @@ -1,5 +1,5 @@ from typing import List, Dict, Any -from pydantic import BaseModel +from pydantic import BaseModel, Field class HealthCheck(BaseModel): @@ -16,5 +16,14 @@ class QueryResponse(BaseModel): message: str | None = None +class VDBConfigFile(BaseModel): + vdbs: List[str] = Field(default_factory=list) # Changed from List[VDBConfigItem] + + +class VDBResponseItem(BaseModel): + value: str + label: str + + class VDBResponse(BaseModel): - results: List[Dict[str, str]] + results: List[VDBResponseItem] diff --git a/backend/src/utils/ai_analyzer.py b/backend/src/utils/ai_analyzer.py index 145e603..b8d8167 100644 --- a/backend/src/utils/ai_analyzer.py +++ b/backend/src/utils/ai_analyzer.py @@ -15,19 +15,17 @@ def _initialize_ai_agent(system_prompt: str, output_type: Type, tools: list[Tool] = []) -> Agent: if not settings.GEMINI_API_KEY: - logger.error("GEMINI_API_KEY environment variable not set.") + logger.error("AI_API_KEY environment variable not set.") raise HTTPException( status_code=500, detail="AI service configuration error: API key missing." ) return Agent( - # Consider making model name a config variable - "gemini-2.5-flash-preview-04-17", # "gemini-1.5-flash-latest" might be more current + settings.AI_MODEL_NAME, system_prompt=system_prompt, output_type=output_type, deps_type=set[str], tools=tools - # llm_kwargs={"api_key": settings.GEMINI_API_KEY} # pydantic-ai typically handles GOOGLE_API_KEY env var directly ) diff --git a/backend/src/utils/denodo_client.py b/backend/src/utils/denodo_client.py index 6a7a2a8..70d3122 100644 --- a/backend/src/utils/denodo_client.py +++ b/backend/src/utils/denodo_client.py @@ -1,17 +1,26 @@ import logging from fastapi import HTTPException -from sqlalchemy import text +from sqlalchemy import Engine, text from src.db.session import get_engine # Use the centralized engine logger = logging.getLogger(__name__) def get_available_views_from_denodo(vdb_name: str | None = None) -> list[str]: - # This needs actual implementation to query Denodo's metadata. - # Example: "LIST VIEWS ALL" or query information_schema views - # For now, returning a placeholder - logger.warning("get_available_views_from_denodo is using placeholder data.") - return ["placeholder_view1", f"placeholder_view_in_{vdb_name}" if vdb_name else "placeholder_view2"] + engine: Engine = get_engine() + vql = "SELECT database_name, name FROM get_views()" + try: + with engine.connect() as connection: + result = connection.execute(text(vql)) + views: list[dict[str, str]] = [dict(row._mapping) for row in result] + logger.info(f"Successfully retrieved Denodo functions: {len(views)} functions found.") + return views + except Exception as e: + logger.error(f"Error executing VQL query '{vql}' to get views: {e}", exc_info=True) + raise HTTPException( + status_code=500, + detail=f"Failed to retrieve views from Denodo: {str(e)}", + ) def get_denodo_functions_list() -> list[str]: diff --git a/docker-compose.yml b/docker-compose.yml index 3ae5a95..816876e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,6 +25,7 @@ services: - DENODO_PW=${DENODO_PW} # AI KEY - GEMINI_API_KEY=${AI_API_KEY} + - AI_MODEL_NAME=${AI_MODEL_NAME} - CONTAINER_BACKEND_PORT=${CONTAINER_BACKEND_PORT:-5000} # Files - APP_VDB_CONF=/opt/vdb_conf.yaml diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 869c1a1..26f29f8 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,3 +1,4 @@ +# frontend/Dockerfile # ---- Stage 1: Build ---- # Use an official Node runtime as a parent image for the build stage FROM node:24-alpine AS builder @@ -30,9 +31,6 @@ COPY nginx.conf /etc/nginx/conf.d/default.conf # Expose port 4999 for Nginx EXPOSE 4999 -# Add a wrapper script -COPY entrypoint-wrapper.sh /entrypoint-wrapper.sh -RUN chmod +x /entrypoint-wrapper.sh - -# Use the wrapper script as the command -CMD ["/entrypoint-wrapper.sh"] \ No newline at end of file +# The wrapper script is no longer needed. +# The original Nginx command is used directly. +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/frontend/src/App.js b/frontend/src/App.js index e7bd242..c7ba835 100644 --- a/frontend/src/App.js +++ b/frontend/src/App.js @@ -4,10 +4,13 @@ import { CssBaseline, AppBar, Toolbar, Typography, Container, Box, Button, CircularProgress, Alert, AlertTitle, IconButton, Stack, useTheme, Autocomplete, TextField, -} from '@mui/material'; // Import necessary Material UI components +} from '@mui/material'; import DoubleArrowIcon from '@mui/icons-material/DoubleArrow'; import VerifiedIcon from '@mui/icons-material/Verified'; import CloseIcon from '@mui/icons-material/Close'; +import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'; +import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline'; +import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined'; import { sql } from '@codemirror/lang-sql'; import { purple, blueGrey } from '@mui/material/colors'; @@ -16,7 +19,7 @@ import { fetchVdbs, translateSql, validateSql } from './apiService.js'; // Import Custom Components import CodeEditor from './components/Editors/CodeEditor.js'; -import VqlForgeLogo from './Logo.js'; // Import the new logo +import VqlForgeLogo from './Logo.js'; // --- Import Alert Components --- import AiErrorAnalysis from './components/Alerts/AiErrorAnalysis.js'; @@ -34,7 +37,7 @@ function App() { // --- VDB State --- const [actualAvailableVDBs, setActualAvailableVDBs] = useState([]); - const [selectedVDB, setSelectedVDB] = useState(null); // Initialize to null + const [selectedVDB, setSelectedVDB] = useState(null); const [vdbsLoading, setVdbsLoading] = useState(false); const [vdbsError, setVdbsError] = useState(null); @@ -44,7 +47,7 @@ function App() { const [error, setError] = useState(null); const [isValidating, setIsValidating] = useState(false); const [validationResult, setValidationResult] = useState(null); - + const anyLoading = isLoading || isValidating || vdbsLoading; const clearValidationState = () => { setValidationResult(null); }; @@ -67,7 +70,7 @@ function App() { .catch(err => { console.error("Error fetching VDBs:", err); setVdbsError(err.message || "Could not fetch VDB options."); - setActualAvailableVDBs([{ value: 'admin', label: 'Admin' }]); // Set to fallback value on error + setActualAvailableVDBs([{ value: 'admin', label: 'Admin' }]); setVdbsLoading(false); }); }, []); @@ -118,7 +121,7 @@ function App() { const requestBody = { sql: sourceSql, dialect: sourceDialect.value, - vdb: selectedVDB.value + vdb: selectedVDB.value }; try { const data = await translateSql(requestBody); @@ -175,15 +178,32 @@ function App() { try { const validationData = await validateSql(sourceSql, vqlWithoutLineBreaks); + if (validationData.validated) { - setValidationResult({ status: 'success', message: validationData.message || `VQL syntax check successful!` }); + setValidationResult({ + status: 'success', + message: validationData.message || `VQL syntax check successful!` + }); } else { - setValidationResult({ status: 'error', message: validationData.message || 'Validation Failed: Denodo rejected the query syntax/plan.' }); + // Check if we have error_analysis data + if (validationData.error_analysis) { + // Set as AI error with the complete error_analysis object + setValidationResult({ + status: 'error_ai', + data: validationData.error_analysis // Pass the error_analysis object directly + }); + } else { + // Fallback to regular error + setValidationResult({ + status: 'error', + message: validationData.message || 'Validation Failed: Denodo rejected the query syntax/plan.' + }); + } } } catch (err) { console.error("Validation process error:", err); - if (err.status === 'error_ai' && err.data) { + if (err.status === 'error_ai' && err.data) { setValidationResult({ status: 'error_ai', data: err.data }); } else { setValidationResult({ @@ -196,23 +216,51 @@ function App() { } }; - const alertCloseButton = (onCloseHandler) => (); + const getValidationAlertProps = () => { + if (!validationResult) return null; + + const status = validationResult.status; + if (status === 'success') { + return { + severity: 'success', + icon: , + title: 'Validation Successful' + }; + } + if (status === 'info') { + return { + severity: 'info', + icon: , + title: 'Validation Info' + }; + } + if (status === 'error') { + return { + severity: 'error', + icon: , + title: 'Validation Error' + }; + } + return null; + }; + + const validationAlertProps = getValidationAlertProps(); return ( - - {/* Slightly smaller, more margin */} - {/* Reduced font weight, adjusted letter spacing */} + + VQLForge @@ -231,20 +279,18 @@ function App() { Error {error} )} {vdbsLoading && !vdbsError && ( - }>Loading VDB options... - + }>Loading VDB options... )} {vdbsError && ( setVdbsError(null))} + onClose={() => setVdbsError(null)} > VDB Load Issue {vdbsError} - VDB selection might be unavailable or incomplete. @@ -257,21 +303,18 @@ function App() { onUseVqlSuggestion={handleUseVqlSuggestion} /> )} - {validationResult?.status === 'success' && ( - - Validation Successful - {validationResult.message} - - )} - {validationResult?.status === 'info' && ( - - Validation Info - {validationResult.message} - - )} - {validationResult?.status === 'error' && ( - - Validation Error + {validationAlertProps && ( + + {validationAlertProps.title} {validationResult.message} )} @@ -342,34 +385,36 @@ function App() { /> )} /> - + {isLoading && ()} - - - {isValidating && ()} - + + + + {isValidating && ()} + + @@ -386,7 +431,7 @@ function App() { - VQLForge 0.1 - + VQLForge 0.1.5 - MIT License diff --git a/frontend/src/Logo.js b/frontend/src/Logo.js index 06ccc61..fbb7591 100644 --- a/frontend/src/Logo.js +++ b/frontend/src/Logo.js @@ -3,25 +3,25 @@ import React from 'react'; function Logo() { return ( - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + ); } diff --git a/frontend/src/apiService.js b/frontend/src/apiService.js index 5e6c38e..657f841 100644 --- a/frontend/src/apiService.js +++ b/frontend/src/apiService.js @@ -9,13 +9,7 @@ export const fetchVdbs = async () => { return response.json(); }; -export const translateSql = async (sql, dialect, vdb) => { - const requestBody = { - sql: sql, - dialect: dialect, - vdb: vdb - }; - +export const translateSql = async (requestBody) => { const response = await fetch(`${API_BASE_URL}/api/translate`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, @@ -26,17 +20,19 @@ export const translateSql = async (sql, dialect, vdb) => { let errorDetails = `Translation Request Failed: ${response.status}`; try { const errorData = await response.json(); + // Prioritize FastAPI's 'detail' field, which is common for errors errorDetails = errorData.detail || errorData.message || JSON.stringify(errorData); - if (errorDetails && !errorDetails.toLowerCase().includes(response.status.toString())) { - errorDetails = `(${response.status}) ${errorDetails}`; - } } catch (parseError) { + // Fallback if the error response isn't valid JSON try { const textError = await response.text(); - if (textError) errorDetails = `(${response.status}) ${textError}`; - } catch (readError) { /* ignore */ } + if (textError) errorDetails = textError; + } catch (readError) { + errorDetails = response.statusText; // Last resort + } } - throw new Error(errorDetails); + // Always throw an Error object with a clear, readable string message + throw new Error(`(${response.status}) ${errorDetails}`); } return response.json(); @@ -64,11 +60,10 @@ export const validateSql = async (sql, vql) => { if (!validateResponse.ok) { if (validationData?.error_analysis) { - // Re-throwing with data for specific handling in component - const error = new Error("Validation failed with AI analysis"); - error.data = validationData.error_analysis; - error.status = 'error_ai'; - throw error; + const error = new Error("Validation failed with AI analysis"); + error.data = validationData.error_analysis; + error.status = 'error_ai'; + throw error; } else { const errorMessage = validationData?.message || validationData?.detail || `Validation Request Failed: ${validateResponse.status}`; throw new Error(errorMessage); diff --git a/frontend/src/components/Alerts/AiValidationErrorAnalysis.js b/frontend/src/components/Alerts/AiValidationErrorAnalysis.js index b39f1fb..c14b219 100644 --- a/frontend/src/components/Alerts/AiValidationErrorAnalysis.js +++ b/frontend/src/components/Alerts/AiValidationErrorAnalysis.js @@ -10,19 +10,29 @@ import { Stack, useTheme, Alert, + Collapse, + Divider, } from '@mui/material'; import { ContentCopy, CheckCircleOutline, WarningAmber, + ExpandMore, + ExpandLess, + Code, } from '@mui/icons-material'; import AutoAwesomeIcon from '@mui/icons-material/AutoAwesome'; function AiValidationErrorAnalysis({ errorData, onDismiss, onUseVqlSuggestion }) { const theme = useTheme(); const [copied, setCopied] = useState(false); + const [showRawError, setShowRawError] = useState(false); + + // Handle the correct data structure from the endpoint + const explanation = errorData?.explanation || errorData?.error_analysis?.explanation || ''; + const vql_suggestion = errorData?.sql_suggestion || errorData?.error_analysis?.sql_suggestion || errorData?.vql_suggestion; + - const { explanation, sql_suggestion: vql_suggestion } = errorData; const handleUseVqlSuggestionClick = async () => { if (!vql_suggestion) return; @@ -30,7 +40,7 @@ function AiValidationErrorAnalysis({ errorData, onDismiss, onUseVqlSuggestion }) try { await navigator.clipboard.writeText(vql_suggestion); setCopied(true); - setTimeout(() => setCopied(false), 2000); // Reset copied state for button feedback + setTimeout(() => setCopied(false), 2000); } catch (err) { console.error('Failed to copy VQL suggestion to clipboard: ', err); } @@ -40,13 +50,25 @@ function AiValidationErrorAnalysis({ errorData, onDismiss, onUseVqlSuggestion }) } }; + const handleCopyOnly = async () => { + if (!vql_suggestion) return; + + try { + await navigator.clipboard.writeText(vql_suggestion); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch (err) { + console.error('Failed to copy text: ', err); + } + }; + const handleDismiss = () => { if (onDismiss) { onDismiss(); } }; - const severity = 'warning'; + const severity = 'error'; const mainColor = theme.palette[severity].main; const darkColor = theme.palette[severity].dark; const lighterColor = theme.palette[severity].lighter || theme.palette.grey[50]; @@ -83,73 +105,121 @@ function AiValidationErrorAnalysis({ errorData, onDismiss, onUseVqlSuggestion }) lineHeight: 1.2 }} > - VQL Validation Analysis + Validation Error Analysis + {/* Error Explanation */} + + {explanation} + + + {/* VQL Suggestion */} {vql_suggestion && ( - - Suggested VQL Correction: + + + Suggested VQL Fix: - {vql_suggestion} + {vql_suggestion} - {/* This IconButton is for quick copy if user only wants to copy from code block, separate from "Use Suggestion" button */} { // Inline handler for simple copy from here - try { - await navigator.clipboard.writeText(vql_suggestion); - setCopied(true); // This will make the "Use Suggestion" button show "Copied" if clicked after this - setTimeout(() => setCopied(false), 2000); - } catch (err) { - console.error('Failed to copy text: ', err); - } - }} + onClick={handleCopyOnly} size="small" sx={{ position: 'absolute', top: theme.spacing(0.5), right: theme.spacing(0.5), color: copied ? theme.palette.success.main : theme.palette.action.active, + backgroundColor: theme.palette.background.paper, '&:hover': { backgroundColor: theme.palette.action.hover, } }} - aria-label="copy suggested vql from code block" + aria-label="copy suggested vql" > - {copied ? : } + {copied ? : } )} - - - {explanation} - - + {/* Raw Error Toggle - Only show if different from explanation */} + {explanation && ( + + + + + + + + {explanation} + + + + + + )} + + {/* Action Buttons */} - {/* Button */} {vql_suggestion && ( )} + {/* AI Disclaimer */} - VQLForge employs AI for advanced analysis and suggestions, but careful user validation of security, performance, and correctness is essential. + AI-powered analysis and suggestions require validation for security, performance, and correctness. @@ -207,10 +276,20 @@ function AiValidationErrorAnalysis({ errorData, onDismiss, onUseVqlSuggestion }) } AiValidationErrorAnalysis.propTypes = { - errorData: PropTypes.shape({ - explanation: PropTypes.string.isRequired, - sql_suggestion: PropTypes.string, - }).isRequired, + errorData: PropTypes.oneOfType([ + // Legacy format + PropTypes.shape({ + explanation: PropTypes.string.isRequired, + sql_suggestion: PropTypes.string, + }), + // New endpoint format + PropTypes.shape({ + error_analysis: PropTypes.shape({ + explanation: PropTypes.string.isRequired, + sql_suggestion: PropTypes.string, + }).isRequired, + }), + ]).isRequired, onDismiss: PropTypes.func.isRequired, onUseVqlSuggestion: PropTypes.func.isRequired, }; diff --git a/package-lock.json b/package-lock.json index 23627b0..4b42cb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "VQLForge", + "name": "vqlforge", "lockfileVersion": 3, "requires": true, "packages": {} diff --git a/readme.md b/readme.md index d215e02..3af5432 100644 --- a/readme.md +++ b/readme.md @@ -54,7 +54,8 @@ Migrating SQL to Denodo's VQL can be a time-consuming and error-prone process. V | `DENODO_DB` | Default Denodo Virtual DataBase (VDB) | AI Validation | `my_vdb` | | `DENODO_USER` | Denodo user with read/execute access to VDBs | AI Validation | `denodo_user` | | `DENODO_PW` | Password for the Denodo user | AI Validation | `password` | - | `AI_API_KEY` | Google Gemini API Key (e.g., Gemini 1.5 Flash) | AI Assistant | `YOUR_GEMINI_API_KEY` | + | `AI_API_KEY` | LLM API Key | AI Assistant | `YOUR_AI_API_KEY` | + | `AI_MODEL_NAME` | Model name (e.g., gemini-2.5-flash) | AI Assistant | `LLM_MODEL_NAME` | | `APP_NETWORK_NAME` | Docker network name for connecting to Denodo (if Denodo is also in Docker) | AI Validation | `denodo-lab-net` | | `HOST_PROJECT_PATH` | Absolute path to your local VQLForge repository directory. | Translation (VDBs) | `/path/to/your/VQLForge` | diff --git a/template.env b/template.env index dba42f3..b418191 100644 --- a/template.env +++ b/template.env @@ -9,7 +9,8 @@ DENODO_HOST= DENODO_DB= DENODO_USER= # This user should read/execute access to all VDBs DENODO_PW= -AI_API_KEY= +AI_API_KEY= +AI_MODEL_NAME= APP_NETWORK_NAME=denodo-lab-net HOST_PROJECT_PATH= CONTAINER_VDB_CONF_PATH=/app/vdb_conf.yaml diff --git a/vqlforge.png b/vqlforge.png old mode 100755 new mode 100644 index 278ce96eecc854cbeef8054d9a211c7d3047dca5..c61a39a5eeb2bfaa528d9ecde56b75984b22ab69 GIT binary patch literal 133312 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 Mq=H25ef<~z4dYdnV*mgE literal 119424 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 ePRN^BTT6Ht4L^