syncfusion-react-query-builder — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-react-query-builder (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A comprehensive guide for implementing and customizing the Syncfusion React Query Builder component. The Query Builder is a powerful UI component for creating and managing complex filter conditions, with support for rule-based queries, multiple data types, SQL generation, and extensive customization options.
The Query Builder component provides a graphical interface for creating and editing complex filter rules. It outputs structured JSON that can be converted to SQL, Mongo queries, or custom predicates for filtering data. Key capabilities include:
📄 Read: references/getting-started.md
📄 Read: references/columns-and-operators.md
📄 Read: references/data-binding.md
📄 Read: references/rules-and-filtering.md
📄 Read: references/query-conversion.md
📄 Read: references/templates-and-customization.md
📄 Read: references/advanced-features.md
📄 Read: references/api-reference.md
import { ColumnsModel, QueryBuilderComponent, RuleModel } from '@syncfusion/ej2-react-querybuilder';
import React from 'react';
function App() {
const columnData: ColumnsModel[] = [
{ field: 'EmployeeID', label: 'Employee ID', type: 'number' },
{ field: 'FirstName', label: 'First Name', type: 'string' },
{ field: 'Title', label: 'Title', type: 'string' },
{ field: 'HireDate', label: 'Hire Date', type: 'date', format: 'dd/MM/yyyy' },
{ field: 'Country', label: 'Country', type: 'string' }
];
const initialRules: RuleModel = {
condition: 'and',
rules: [
{
field: 'EmployeeID',
label: 'Employee ID',
operator: 'equal',
type: 'number',
value: 1001
}
]
};
return (
<QueryBuilderComponent
width="100%"
columns={columnData}
rule={initialRules}
/>
);
}
export default App;let qryBldrObj: QueryBuilderComponent;
function generateSQL() {
const sqlQuery = qryBldrObj.getSqlFromRules();
console.log('Generated SQL:', sqlQuery);
// Send to backend for execution
}function addFilter() {
qryBldrObj.addRules([
{
field: 'Country',
label: 'Country',
operator: 'equal',
type: 'string',
value: 'USA'
}
], 'group0');
}function importFilter(sqlString: string) {
qryBldrObj.setRulesFromSql(sqlString);
}<QueryBuilderComponent
columns={columnData}
summaryView={true} // Shows query summary at the bottom
/>| Prop | Type | Default | Purpose | |
|---|---|---|---|---|
columns | ColumnsModel[] | - | Defines available fields and operators | |
rule | RuleModel | {} | Initial filter rules | |
dataSource | Object[] \ | DataManager | [] | Data for binding |
displayMode | 'Horizontal' \ | 'Vertical' | 'Horizontal' | Layout orientation |
allowDragAndDrop | boolean | false | Enable drag-drop rule management | |
enablePersistence | boolean | false | Save state to localStorage | |
enableRtl | boolean | false | Right-to-left layout | |
allowValidation | boolean | false | Validate rule conditions | |
summaryView | boolean | false | Show filtered query summary | |
showButtons | ShowButtonsModel | defaults | Control add/delete button visibility | |
maxGroupCount | number | 5 | Maximum nested group depth | |
readonly | boolean | false | Make component read-only |
Create a filter interface for users to build complex search queries with multiple conditions:
showButtons to enable rule managementRead: references/rules-and-filtering.md and references/query-conversion.md
Build a dashboard where users filter data across multiple columns:
Read: references/data-binding.md and references/rules-and-filtering.md
Allow users to save and load filter templates:
enablePersistence={true} for automatic state savinggetRules() to databasesetRules() when neededRead: references/advanced-features.md
Create a report filter UI with custom templates:
allowValidationsummaryView for clarityRead: references/templates-and-customization.md and references/advanced-features.md
Need help? Check the specific reference files above for detailed examples and implementation patterns.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.