Subject: [scim] Filter negation

From: Phil Hunt <[email-masked]>
Date: Wed, 18 Sep 2013 08:53:03 -0700

Has there been any progress on negative filters.  http://tools.ietf.org/wg/scim/trac/ticket/24

We need to get these basics cleaned up.

Phil

@independentid
www.independentid.com
[email-masked]

---

From: Kelly Grizzle <[email-masked]>
Date: Wed, 18 Sep 2013 16:32:53 +0000

Bjorn has an action item from our last call to take a first crack at a proposal for this.

--Kelly

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Phil Hunt
Sent: Wednesday, September 18, 2013 10:53 AM
To: [email-masked] WG
Subject: [scim] Filter negation

Phil

@independentid
www.independentid.com
[email-masked]

_______________________________________________
scim mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/scim

---

From: Phil Hunt <[email-masked]>
Date: Wed, 18 Sep 2013 09:36:43 -0700

I also see we have a "sw" filter operation but no "ew" or endswith filter operation.

Should we (or is it already) start a new ticket?

Phil

@independentid
www.independentid.com
[email-masked]

---

From: Kelly Grizzle <[email-masked]>
Date: Wed, 18 Sep 2013 16:43:53 +0000

This is not currently supported and I don't know of an open ticket for this.  I agree that it would be a valuable addition and worth opening a ticket for.

-----Original Message-----
From: Phil Hunt [mailto:[email-masked]] 
Sent: Wednesday, September 18, 2013 11:37 AM
To: Kelly Grizzle
Cc: [email-masked] WG
Subject: Re: [scim] Filter negation

Phil

@independentid
www.independentid.com
[email-masked]

---

From: Bjorn Aannestad <[email-masked]>
Date: Wed, 18 Sep 2013 12:09:30 -0500

I'll take care of both of those today.

-Bjorn

---

From: Bjorn Aannestad <[email-masked]>
Date: Wed, 18 Sep 2013 13:02:49 -0500

Thank you for creating it Phil, looks good.

http://trac.tools.ietf.org/wg/scim/trac/ticket/49

-Bjorn

---

From: Bjorn Aannestad <[email-masked]>
Date: Wed, 18 Sep 2013 16:48:38 -0500

Hi all,

I've posted my first crack at filter negation to ticket #24:
http://trac.tools.ietf.org/wg/scim/trac/ticket/24

It defines a not() operator which can only be used around other 
expressions.

Based on the premise that most, if not all, implementations will be 
translating the SCIM filter syntax into equivalent SQL or LDAP syntax, I 
did not want to add redundant variety to the required expression forms.

So,
VALID: filter = not(userType eq "Employee")
INVALID: filter = not userType eq "Employee"
INVALID: filter = userType neq "Employee"

VALID: userType eq "Employee" and not(emails co "example.com" or emails 
co "example.org")
INVALID: filter = userType eq "Employee" and not emails co "example.com" 
and not emails co "example.org"

VALID: filter = not(userType eq "Employee") and not(userType eq "Intern")
VALID: filter = not(userType eq "Employee" or userType eq "Intern")
INVALID: filter = userType not eq "Employee" and userType not eq "Intern"

I believe the "negation grouping" method handles all cases.

A specific point of discussion: Is there value in defining additional 
negative versions of the relational operators?
neq => "not equal"
npr => "not present"
nco => "not contains", etc.

Regards,
-Bjorn

---

From: Phil Hunt <[email-masked]>
Date: Wed, 18 Sep 2013 15:05:43 -0700

I think on balance what you have proposed is easier.   Let's not do neq etc.

Phil

@independentid
www.independentid.com
[email-masked]

On 2013-09-18, at 2:48 PM, Bjorn Aannestad <[email-masked]> wrote:

> It defines a not() operator which can only be used around other expressions.   
> 
> Based on the premise that most, if not all, implementations will be translating the SCIM filter syntax into equivalent SQL or LDAP syntax, I did not want to add redundant variety to the required expression forms.
> 
> So,
> VALID: userType eq "Employee" and not(emails co "example.com" or emails co "example.org")
> INVALID: filter = userType eq "Employee" and not emails co "example.com" and not emails co "example.org"
> 
> A specific point of discussion: Is there value in defining additional negative versions of the relational operators?
> neq => "not equal"
> npr => "not present"