Summary: ALLPROP_AND_COMPUTED

Let me see if I can summarize points of agreement from the recent discussion
concerning PROPFIND ALLPROP. If you disagree with this summary, please send
a message to the list (a) explaining the difference, and (b) describing what
*you* believe is the rough consensus.

Problem Statement
-----------------

PROPFIND ALLPROP Depth infinity places a significant processing load on some
server implementations. Apache mod_dav provides an option limiting PROPFIND
ALLPROP Depth infinity for just "core" (RFC 2518-defined) properties. The
DeltaV specification introduces several new properties that (a) are
expensive to compute, and (b) not capable of interpretation by non-DeltaV
clients.

It is generally believed that PROPFIND ALLPROP Depth 1 is less likely to
incur a large processing load on the server than PROPFIND ALLPROP Depth
infinity. However, it is possible to have a deep hierarchy with few
resources, and a single collection with many resources, and hence there is
no guarantee that PROPFIND ALLPROP Depth 1 will be less computationally
expensive than PROPFIND ALLPROP Depth infinity. Thus, if the goal is:
"reduce the likelihood that a client request will result in a
computationally expensive server operation", then PROPFIND ALLPROP Depth
infinity and Depth 1 will both need to be addressed.

Both the DeltaV and the Access Control specifications limit the properties
returned by PROPFIND ALLPROP (of any depth). This effectively changes the
semantics of PROPFIND ALLPROP.

Client implementors involved in this discussion indicate that they have
dependencies on PROPFIND ALLPROP at Depth 0/1. To date, there have been no
reported cases of client dependencies on PROPFIND ALLPROP Depth infinity.

At present, RFC 2518 states two default behaviors for PROPFIND:
(a) a request without a Depth header should be treated as if it is Depth
infinity.
(b) a request without a body should be treated as a PROPFIND ALLPROP
To date, there have been no reported cases of clients depending on this
default behavior.

Solution Space
--------------

I continue to believe that rough consensus exists to change the default
behavior of PROPFIND away from the current specification.  The default Depth
value should be 0, not infinity (or an error should be reported). The
default computation should be PROPNAME, not ALLPROP (or an error should be
reported).

I detected no consensus on how to address the PROPFIND ALLPROP Depth
1/infinity issue. Assuming this group does not come to consensus, I believe
the following will happen:

- The revision of 2518 will contain an implementation note concerning the
effects of PROPFIND ALLPROP at Depth 1/infinity
- The DeltaV and ACL specifications will contain language prohibiting the
return of certain properties (i.e., properties defined in each
specification) for any PROPFIND ALLPROP.
- Server implementations (such as mod_dav) will continue to have
configuration options limiting PROPFIND ALLPROP Depth infinity.

- Jim

Received on Wednesday, 9 May 2001 18:38:36 UTC