Filters
Overview
Section titled “Overview”Filters are used in updateWhere operations to select entities for bulk updates without knowing specific IDs. Filters let you target entities based on attribute values, ranges, or flag membership.
Filter Syntax
Section titled “Filter Syntax”| Syntax | YAML Example | Meaning |
|---|---|---|
| Exact match | category: axe | category == "axe" |
| Range (inclusive) | requiredLevel: 60..70 | 60 <= requiredLevel <= 70 |
| Multi-value (any-of) | rareGrade: [0, 1, 2] | rareGrade IN (0, 1, 2) |
| Flags includes | requiredClass: warrior | requiredClass includes warrior flag |
Combining Filters
Section titled “Combining Filters”Multiple filter keys use AND logic — all conditions must match:
items: updateWhere: - filter: category: axe # AND requiredLevel: 60..70 # AND rareGrade: [0, 1] # all must match changes: sellPrice: 500Supported Attributes
Section titled “Supported Attributes”All schema attributes are filterable by default. The filter syntax available for each attribute depends on its type:
| Type | Supported filters |
|---|---|
int | exact, range, any-of |
decimal | exact, range, any-of |
string | exact, any-of |
bool | exact only |
enum | exact, any-of |
flags | exact, any-of, includes |
For the complete list of attributes available on each schema, see Schemas.
Flags Enum Filtering
Section titled “Flags Enum Filtering”For flags enums like requiredClass, use includes to check if a specific flag is set:
items: updateWhere: - filter: requiredClass: warrior # items usable by warrior class changes: sellPrice: 150Range Syntax Notes
Section titled “Range Syntax Notes”- Ranges use
..separator:60..70means 60 to 70 inclusive - Quoted strings like
"60..70"are treated as exact match, not range - Ranges work on numeric types (int, decimal)