Offline desktop tool for validating Azure Monitor Data Collection Rules (DCR) and KQL transformation queries before deployment.
Built with Rust + Tauri for maximum security and minimal footprint. No data leaves your machine.
- Validates queries start with
source/print/let - Detects blocked operators (
summarize,join,union,sort,top, etc.) with clear explanations - Validates ~90 allowed scalar functions against the Azure Monitor allowlist
- Checks for
TimeGeneratedcolumn in output - Enforces
parsecolumn limit (max 10 per statement) - Catches common mistakes (
column_ifexistsvscolumnifexists,base64_encode_tostringvsbase64_encodestring)
- Validates JSON structure and required fields
- Checks
kind-specific rules (WorkspaceTransforms,Direct) - Cross-references streams in
dataFlowsagainststreamDeclarations - Cross-references destination names
- Validates
logFilesdata sources (filePatterns,format,recordStartTimestampFormat) - Validates
dataCollectionEndpointIdrequirement for custom log DCRs - Validates column types in stream declarations
- Validates
outputStreamnaming (Custom-*_CLsuffix) - Embeds KQL validation for
transformKqlfields
- Offline — zero network calls, no telemetry, no data exfiltration
- Memory safe — pure Rust backend, zero
unsafeblocks - Minimal permissions — Tauri
core:defaultonly, no file/shell/network access - Hardened CSP —
default-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'; form-action 'none' - Input bounded — 5MB max input size enforced at IPC layer
- Audited — against OWASP ASVS, NIST CSF, and CIS Controls
Download the latest signed .msi installer from Releases.
- Rust (stable)
- Node.js (v18+)
- Visual Studio Build Tools (C++ workload)
git clone https://github.com/YOUR_USERNAME/dcr-kql-validator.git
cd dcr-kql-validator
npm install
npm run tauri -- buildRelease artifacts will be in src-tauri/target/release/bundle/msi/.
npm install
npm run tauri -- dev- Backend: Rust + Tauri 2
- Frontend: Vite + Vanilla JavaScript
- Binary size: ~8 MB exe, ~3 MB MSI
- Dependencies: 3 direct Rust crates (tauri, serde, serde_json)