Add support in the HTTP Request Node for the PROPFIND HTTP Method

The idea is:

The PROPFIND http method can send a body with the request. However, this block in the HttpRequest node apparently restricts any body being added if it is not a PATCH, POST, PUT, or GET request:

My use case:

I am using a PROPFIND request to communciate with NextCloud. The Nextcloud node already uses PROPFIND for listing a folder, but it only queries the default props. When one supplies a body, they can get additional information.

Another option would be to extend the Nextcloud node, but the body content is fairly convoluted.

I think it would be beneficial to add this because:

  1. There’s a UX issue since one can add body content but it doesn’t actually do anything and n8n does not notify you of this.
  2. Making the HTTP Request node more functional seems like a good idea.I’m currently just using an Execute Command node to make a curl request.

Any resources to support this?

https://docs.nextcloud.com/server/19/developer_manual/client_apis/WebDAV/basic.html#testing-requests-with-curl

Are you willing to work on this?

Yeah, I can definitely do this, I just need some direction on the way you guys would like to add this. Possible ideas I had were:

  1. Add PROPFIND to the enum of HTTP methods ← I can see arguments against this though. I personally had no idea what PROPFIND was before today.
  2. Remove the ['PATCH', 'POST', 'PUT', 'GET'].includes(requestMethod) completely ← I have no idea if there are any bad ramifications or if it would lower the user experience
  3. Just add PROPFIND to the array (aka ['PATCH', 'POST', 'PUT', 'GET', 'PROPFIND'].includes(requestMethod)) ← this would solve my problem
  4. Disable the Send Body option when it’s not in the array of approved HTTP methods (along with some info on why it’s disabled). Or put some kind of warning there. <— really anything to let the user know it’s not going to work so they don’t have to dig into the actual n8n code to figure out why

Yes, that would be helpful. Please add MKCOL, MOVE, COPY and many others also:
https://docs.nextcloud.com/server/latest/developer_manual/client_apis/WebDAV/basic.html#creating-folders-rfc4918