Worked example: enabled accounts have MFA registered
match.object is an exact population value. Omitting it selects subjects with an account_enabled observation regardless of whether the observed value is true or false.
Add filters only when they express the intended scope
where narrows the matched subjects before the expectations run. For example, the seeded dormant-account control starts from subjects with an account-enabled observation, filters for sign-ins older than its configured limit, and expects those accounts to be disabled.
A filter is not another requirement. If you filter for healthy devices first, unhealthy devices can disappear from the assessed population instead of failing the control. Put a condition in expect when failure to satisfy it should count as a failure.
Subjects outside the selected population are not evidence of passing. Missing observations in filters also need a coverage review; do not assume the remaining population represents the entire client.
Multiple expectations and values
All expectation clauses must be satisfied for a subject to satisfy the control. Keep separate controls when the requirements need different ownership, severity or follow-up. Match anchors can select a member of a multiple-valued predicate, such as a particular role.where and expect comparisons use the latest selected fact; they do not automatically search every member of a set. Avoid describing them as “any role” or “all licences” unless the evaluator actually expresses that question.
Missing is not a negative observation
exists checks a non-null observed value. not_exists checks an observed null value. An absent fact is unknown for these comparisons, just as it is for neq or not_in.
This matters for patch checks: the absence of missing_patch rows does not prove that no patches are missing. Use a source that supplies an explicit suitable status or retain the coverage gap.
For the operator reference and an administrator MFA example, see how control conditions work. Test pass, fail, unknown and empty populations before rollout.