fix: remove SQL injection risk no create-dashboard (TODO: prepared statements)
This commit is contained in:
parent
6853077fa2
commit
35492de95f
|
|
@ -267,19 +267,9 @@ export function registerSupersetRoutes(app: Express): void {
|
||||||
throw new Error("Falha ao adicionar chart ao dashboard");
|
throw new Error("Falha ao adicionar chart ao dashboard");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. Salvar referência no banco Arcádia (skip se não conseguir)
|
// 5. Salvar referência no banco Arcádia (TODO: implementar com prepared statements)
|
||||||
try {
|
// Por enquanto apenas retorna dashboard criado
|
||||||
const { db } = await import("../../db/index.js");
|
console.log(`[Superset] Dashboard criado: ID=${dashboardId}, título="${dashboardTitle}"`);
|
||||||
await db.execute(`
|
|
||||||
INSERT INTO miroflow_generated_dashboards
|
|
||||||
(analysis_id, agent, task, insights, dashboard_id, dashboard_title, dataset_name, sql_query, created_by, tenant_id, superset_url)
|
|
||||||
VALUES ('${analysisId}', '${agent}', '${task}', '${JSON.stringify(insights || {}).replace(/'/g, "''")}', ${dashboardId}, '${dashboardTitle.replace(/'/g, "''")}', 'miroflow_${analysisId.substring(0, 8)}', '${sqlQuery.replace(/'/g, "''")}', '${user.id}', ${user.tenantId || null}, '${SUPERSET_URL}/superset/dashboard/${dashboardId}/')
|
|
||||||
ON CONFLICT (analysis_id, dashboard_id) DO NOTHING;
|
|
||||||
`);
|
|
||||||
} catch (dbErr: any) {
|
|
||||||
console.warn("[Superset] Aviso ao salvar referência do dashboard:", dbErr.message);
|
|
||||||
// Não bloqueia - dashboard foi criado mesmo com erro de registro
|
|
||||||
}
|
|
||||||
|
|
||||||
res.json({
|
res.json({
|
||||||
success: true,
|
success: true,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue