How Filtering Works
Filter expressions work on packages (dependencies) and evaluate to a boolean result. Packages are included in results when expressions evaluate totrue.
Quick Examples
License Filtering
List only packages that use the MIT license:Popularity Analysis
Find dependencies that appear unpopular:Vulnerability Detection
Find dependencies with critical vulnerabilities:Filter Input Structure
Filter expressions receive the following input data:| Variable | Content |
|---|---|
_ | The root variable, holding other variables |
vulns | Map of vulnerabilities organized by severity |
scorecard | OpenSSF Scorecard metrics and scores |
projects | List of source projects associated with the package |
licenses | List of licenses in SPDX license code format |
pkg | Package information (ecosystem, name, version) |
Common Filter Expressions
Security-Focused Filters
- Vulnerability Checks
- Maintenance Checks
- License Compliance
Project Quality Filters
Advanced Combination Filters
Filter Input JSON Example
Understanding the structure helps create effective filters:Practical Use Cases
Security Auditing
License Compliance
Quality Assessment
Performance Tips
Optimize Complex Filters
Optimize Complex Filters
- Place most selective conditions first
- Use
&&instead of nested conditions when possible - Avoid redundant checks in complex expressions
Use Appropriate Data Types
Use Appropriate Data Types
- Use
size()for counting array elements - Use
exists()for checking array membership - Use direct comparison for simple values
Batch Operations
Batch Operations
- Combine multiple similar checks into single expressions
- Use the query workflow for repeated filtering operations
- Cache results using JSON dumps for multiple analyses
CEL Language Quick Reference
Common Functions
size()- Get length of arrays or mapsexists(var, condition)- Check if condition is true for any elementin- Check membership in arrays or mapscontains()- String contains checkstartsWith()/endsWith()- String prefix/suffix checks
Operators
==,!=- Equality comparison<,<=,>,>=- Numeric comparison&&,||- Logical AND, OR!- Logical NOT+,-,*,/- Arithmetic operations
Data Types
true,false- Booleans"string"- Strings (double quotes)123,45.67- Numbers["a", "b"]- Arrays{"key": "value"}- Maps
CEL Documentation
Complete Common Expression Language documentation
OpenSSF Scorecard
Learn about available scorecard checks and metrics
Build Your Own Queries
Use filtering with the query workflow for better performance
Policy as Code
Implement comprehensive policies using filter expressions

