Uploaded image for project: 'OASIS Content Management Interoperability Services (CMIS) TC'
  1. OASIS Content Management Interoperability Services (CMIS) TC
  2. CMIS-556

Folder Tree and Descendants DELETE need clarification

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: REST/AtomPub Binding
    • Labels:
      None

      Description

      8.3.2 DELETE
      "If the delete method does not delete all items, invoking GET on the URI will return the items not deleted"
      should say "with infinite depth (-1)"?
      How does this work if capabilityGetDescendants or canGetDescendants is false for this folder?

      From Al: Not sure this should be in the specification. but the quick answer is either 'repository specific' or 'it doesn't'

      8.4.2 folder tree DELETE
      This resource represents the folder tree - why does DELETE also delete objects and not just folders?

      From Al: It's the same as delete descendants which is the deleteTree service in p1. Not sure how to delete folders if you don't deal with the things in them.

      Because of the way these resources are specified, I am not sure that we can meet the domain model intent for a couple of issues:

      1) deleteTree is supposed to return a list of undeleted objects. The AtomPub binding tries to do this by saying you just call folderDescendants if the delete doesn't succeed. However, for this binding (only) there is now a link between canDeleteTree and canGetDescendants/capabilityGetDescendants. You must be able to getDescendants to fully implement the domain model's service for delteTree. Our repo can implement the deleteTree, but not getDescendants - so we are forced now to also not implement deleteTree?

      2) It is not clear to me - can the resource be exposed for only DELETE and not GET (for the case where canDeleteTree=true but capabilityGetDescendants=false)?

      3) Having two ways to delete is confusing - what if your repository has capabilityGetTree but not capabilityGetDescendants (or the other way round) - the client has to use that to figure out which resource might be available for delete?

      4) The DELETE method says "invoking GET on this URI will return items not deleted". Even if both capabilities are true, this is not true when "this resource" is the folderTree, as some of the undeleted resources might be non-folders.

        Attachments

          Activity

            People

            • Assignee:
              ryan.mcveigh Ryan McVeigh (Inactive)
              Reporter:
              ryan.mcveigh Ryan McVeigh (Inactive)
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: