Skip to content

Commit 014c928

Browse files
committed
fix(grafana): scope block param remaps per operation to prevent cross-operation leaks
1 parent 3fc09e1 commit 014c928

1 file changed

Lines changed: 71 additions & 27 deletions

File tree

apps/sim/blocks/blocks/grafana.ts

Lines changed: 71 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -901,33 +901,77 @@ Return ONLY the JSON object - no explanations, no markdown, no extra text.`,
901901
tool: (params) => params.operation,
902902
params: (params) => {
903903
const result: Record<string, unknown> = {}
904-
if (params.alertTitle) result.title = params.alertTitle
905-
if (params.folderTitle) result.title = params.folderTitle
906-
if (params.updateFolderTitle) result.title = params.updateFolderTitle
907-
if (params.folderUidNew) result.uid = params.folderUidNew
908-
if (params.alertRuleUidNew) result.uid = params.alertRuleUidNew
909-
if (params.parentUidNew) result.parentUid = params.parentUidNew
910-
if (params.parentUidList) result.parentUid = params.parentUidList
911-
if (params.manageFolderUid) result.folderUid = params.manageFolderUid
912-
if (params.contactPointName) result.name = params.contactPointName
913-
if (params.contactPointNameNew) result.name = params.contactPointNameNew
914-
if (params.contactPointType) result.type = params.contactPointType
915-
if (params.contactPointSettings) result.settings = params.contactPointSettings
916-
if (params.annotationTags) result.tags = params.annotationTags
917-
if (params.annotationDashboardUid) result.dashboardUid = params.annotationDashboardUid
918-
if (params.annotationType) result.type = params.annotationType
919-
if (params.panelId) result.panelId = Number(params.panelId)
920-
if (params.annotationId) result.annotationId = Number(params.annotationId)
921-
if (params.alertId) result.alertId = Number(params.alertId)
922-
if (params.userId) result.userId = Number(params.userId)
923-
if (params.time) result.time = Number(params.time)
924-
if (params.timeEnd) result.timeEnd = Number(params.timeEnd)
925-
if (params.from) result.from = Number(params.from)
926-
if (params.to) result.to = Number(params.to)
927-
if (params.page) result.page = Number(params.page)
928-
if (params.limit) result.limit = Number(params.limit)
929-
if (params.missingSeriesEvalsToResolve) {
930-
result.missingSeriesEvalsToResolve = Number(params.missingSeriesEvalsToResolve)
904+
switch (params.operation) {
905+
case 'grafana_list_dashboards':
906+
if (params.page) result.page = Number(params.page)
907+
if (params.limit) result.limit = Number(params.limit)
908+
break
909+
case 'grafana_create_alert_rule':
910+
if (params.alertTitle) result.title = params.alertTitle
911+
if (params.alertRuleUidNew) result.uid = params.alertRuleUidNew
912+
if (params.missingSeriesEvalsToResolve) {
913+
result.missingSeriesEvalsToResolve = Number(params.missingSeriesEvalsToResolve)
914+
}
915+
break
916+
case 'grafana_update_alert_rule':
917+
if (params.alertTitle) result.title = params.alertTitle
918+
if (params.missingSeriesEvalsToResolve) {
919+
result.missingSeriesEvalsToResolve = Number(params.missingSeriesEvalsToResolve)
920+
}
921+
break
922+
case 'grafana_list_contact_points':
923+
if (params.contactPointName) result.name = params.contactPointName
924+
break
925+
case 'grafana_create_contact_point':
926+
if (params.contactPointNameNew) result.name = params.contactPointNameNew
927+
if (params.contactPointType) result.type = params.contactPointType
928+
if (params.contactPointSettings) result.settings = params.contactPointSettings
929+
break
930+
case 'grafana_create_annotation':
931+
if (params.annotationTags) result.tags = params.annotationTags
932+
if (params.annotationDashboardUid) result.dashboardUid = params.annotationDashboardUid
933+
if (params.panelId) result.panelId = Number(params.panelId)
934+
if (params.time) result.time = Number(params.time)
935+
if (params.timeEnd) result.timeEnd = Number(params.timeEnd)
936+
break
937+
case 'grafana_update_annotation':
938+
if (params.annotationTags) result.tags = params.annotationTags
939+
if (params.annotationId) result.annotationId = Number(params.annotationId)
940+
if (params.time) result.time = Number(params.time)
941+
if (params.timeEnd) result.timeEnd = Number(params.timeEnd)
942+
break
943+
case 'grafana_delete_annotation':
944+
if (params.annotationId) result.annotationId = Number(params.annotationId)
945+
break
946+
case 'grafana_list_annotations':
947+
if (params.annotationTags) result.tags = params.annotationTags
948+
if (params.annotationDashboardUid) result.dashboardUid = params.annotationDashboardUid
949+
if (params.annotationType) result.type = params.annotationType
950+
if (params.panelId) result.panelId = Number(params.panelId)
951+
if (params.alertId) result.alertId = Number(params.alertId)
952+
if (params.userId) result.userId = Number(params.userId)
953+
if (params.from) result.from = Number(params.from)
954+
if (params.to) result.to = Number(params.to)
955+
if (params.limit) result.limit = Number(params.limit)
956+
break
957+
case 'grafana_list_folders':
958+
if (params.parentUidList) result.parentUid = params.parentUidList
959+
if (params.page) result.page = Number(params.page)
960+
if (params.limit) result.limit = Number(params.limit)
961+
break
962+
case 'grafana_create_folder':
963+
if (params.folderTitle) result.title = params.folderTitle
964+
if (params.folderUidNew) result.uid = params.folderUidNew
965+
if (params.parentUidNew) result.parentUid = params.parentUidNew
966+
break
967+
case 'grafana_get_folder':
968+
case 'grafana_delete_folder':
969+
if (params.manageFolderUid) result.folderUid = params.manageFolderUid
970+
break
971+
case 'grafana_update_folder':
972+
if (params.manageFolderUid) result.folderUid = params.manageFolderUid
973+
if (params.updateFolderTitle) result.title = params.updateFolderTitle
974+
break
931975
}
932976
return result
933977
},

0 commit comments

Comments
 (0)