This portal is to open public enhancement requests against products and services offered by the IBM Data & AI organization. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).
Shape the future of IBM!
We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:
Search existing ideas
Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,
Post your ideas
Post ideas and requests to enhance a product or service. Take a look at ideas others have posted and upvote them if they matter to you,
Post an idea
Upvote ideas that matter most to you
Get feedback from the IBM team to refine your idea
Specific links you will want to bookmark for future use
Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.
IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.
ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.
IBM Employees should enter Ideas at https://ideas.ibm.com
Hi Hubert,
Thanks for the rapid feedback. Yes, alas we are focussed on v11.
As the `RANGE` header is not available in v11, reusing `POST` with the intent to append to a file seems a good option. Append is our use-case atm anyway. As for v12; the `PATCH` - `RANGE` option looks great :-)
Many thanks , Adam
Hi Adam,
As of TM1 v12 we have support for `Range` header. The `Range` header allows for partial content manipulation, typically used for downloading parts of a file (like TM1 v12 does thus far), but some services are known to extend this feature to allow partial file uploads as well. In such a case, a client could append to or update part of a file using byte-range updates.
Whilst that would most closely mimic what the C-API used to do, albeit not the intend by itself, appending would require you to know what the size of the file is first. The most commonly used pattern for this is to use a so called preflight `HEAD` request to determine the size and then subsequently use the return `Content-Length` header for the range. To be sure that the file wouldn't have changed in the meantime, read: between the preflight and append request, one could use the returned e-tag and pass it in a `If-Match` header.
Some services, but this would be service specific (read: not standard base) reuse `POST` to say that the intend is to append to a file. Other protocols, like WebDAV (an extension of HTTP) introduced it's own `APPEND` method to make it very clear what the intend is (still service specific for an OData compliant service like TM1).
My proposal, presuming we do this, would be to build on what's already there and add support for `PATCH` on the files on Contents (we no longer treat 'Blobs' special) where the `Range` header can be used to indicate what part of the file needs to be patched (without the Range header it would be the same as `PUT`). TM1 already supports preflight `HEAD` requests and optimistic concurrency control (read: `If-Match') so appending could be accomplished as well.
Would that work?
But let me guess, you'd want this in TM1 v11 as well ;-?
Kind Regards, Hubert