traits icon indicating copy to clipboard operation
traits copied to clipboard

observe mini-language: consider allowing '*' in a non-terminal position

Open mdickinson opened this issue 2 years ago • 1 comments

#1496 introduced "*" to mean "any trait" into the observe mini-language; #1525 disallowed use of "*" in a non-terminal position, since with current meanings and semantics it's very hard to make it useful; see the discussion in the #1525 description, and the related issue #1503.

At some point, we may want to re-introduce a more useful meaning for an expression like "*:updated" - one that's more permissive of traits on the target object that don't have an updated trait. There's already partial machinery for this in the expression language, in the form of the optional argument to expression-producing functions like trait, list_items, etc.

xref: #1496, #1503, #1505, #1525

mdickinson avatar Sep 15 '21 08:09 mdickinson

If combined with the suggestion in #1535, it may then make sense to re-allow * with the exact same meaning as before. We could then use an expression of *:updated? to listen to all existing updated traits, without raising for traits that don't support updated.

mdickinson avatar Sep 20 '21 15:09 mdickinson