Filters are one of the three foundational concepts of the design in kanidm.
They are used in nearly every aspect of the server to provide searching of
datasets and assertion of entry properties.
A filter is a logical statement of properties that an
Entry and its
AVAs must uphold to be considered true.
Filter is a logical set of assertions about the state of an
Filters are built from a set of possible assertions.
This is the short-form for tests and internal filters that can then be transformed into a filter for the server to use.
This is the fully resolved internal representation. Note the lack of Not and selfUUID because these are resolved into And(Pres(class), AndNot(term)) and Eq(uuid, …). Importantly, we make this accessible to Entry so that it can then match on filters internally.