Proposal:
Show
1) Define a ReadOnly instance annotation (i.e., as part of our core vocabulary.)
2) State that clients should be prepared to receive additional properties in an entity/complex type that are not advertised in metadata, even for types not marked as open. Such properties MUST be included in a PUT request in order to avoid data loss, unless they are annotated as read-only in which case they MUST NOT be included.
Accepted: https://www.oasis-open.org/committees/download.php/48346/odata-meeting-26_on-20130221-minutes.html#odata-253
Resolution:
Show
https://www.oasis-open.org/committees/download.php/48439/odata-core-v4.0-wd01-part1-protocol-2013-03-05-RH.doc
https://tools.oasis-open.org/version-control/browse/wsvn/odata/trunk/spec/vocabularies/Org.OData.Behavior.V1.xml?rev=205
Accepted: https://www.oasis-open.org/committees/download.php/48549/odata-meeting-29_on-20130314-minutes.html#odata-253
Clients today may see unadvertised properties if a type is marked as open, but open also implies that the client can store properties not defined as part of the type definition.
For extensibility, services should be allowed to return properties not advertised in metadata without marking the type as open (and implying that the service is capable of persisting properties arbitrary properties). This would allow, for example, $select to contain an expression, aggregations to return aggregated values, etc.
We need to define the semantics of these unadvertised properties; i.e., must they be reflected back in a PUT (unless they are annotated as read-only) in order to prevent data loss when roundtripping
Note that, for a request against an open type, the client would have no way of knowing if the property were a dynamic property (which would require specifying in PUT to avoid overwriting) or a property defined, i.e., in $select (which should not be specified in a PUT - note that the server cannot ignore these added properties in general because, if the type is marked as open, the server has no way to know how to distinguish between the client echoing back a read-only property (such as a projected expression) and the client attempting to persist a new open property.
Ralf Handl
made changes -
21/Feb/13 4:32 PM
Field
Original Value
New Value
Proposal
1) Define a ReadOnly instance annotation (i.e., as part of our core vocabulary.)
2) State that clients should be prepared to receive additional properties in an entity/complex type that are not advertised in metadata, even for types not marked as open. Such properties MUST be included in a PUT request in order to avoid data loss, unless they are annotated as read-only in which case they MUST NOT be included.
1) Define a ReadOnly instance annotation (i.e., as part of our core vocabulary.)
2) State that clients should be prepared to receive additional properties in an entity/complex type that are not advertised in metadata, even for types not marked as open. Such properties MUST be included in a PUT request in order to avoid data loss, unless they are annotated as read-only in which case they MUST NOT be included.
Accepted: https://www.oasis-open.org/committees/download.php/48346/odata-meeting-26_on-20130221-minutes.html#odata-253
Status
New
[ 10000
]
Open
[ 1
]
Ralf Handl
made changes -
21/Feb/13 4:32 PM
Resolution
Fixed
[ 1
]
Status
Open
[ 1
]
Resolved
[ 5
]
Ralf Handl
made changes -
05/Mar/13 7:50 AM
Component/s
Vocabularies
[ 10324
]
Ralf Handl
made changes -
05/Mar/13 7:56 AM
Assignee
Ralf Handl
[ ralfhandl
]
Ralf Handl
made changes -
05/Mar/13 11:23 AM
Status
Resolved
[ 5
]
Applied
[ 10002
]
Ralf Handl
made changes -
07/Aug/15 12:53 PM
Assignee
Ralf Handl
[ ralfhandl
]
Ralf Handl
[ handl
]
{"report":{"apdex":1,"isInitial":true,"journeyId":"80dd0e5b-cc06-47b0-a934-f53374392168","key":"jira.project.issue.view-issue","navigationType":0,"readyForUser":530.5999999046326,"redirectCount":0,"resourceLoadedEnd":500.59999990463257,"resourceLoadedStart":108.2999997138977,"resourceTiming":[{"duration":9.5,"initiatorType":"link","name":"https://issues.oasis-open.org/s/3edeca31ab9ba77980aae0809fbe7121-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/css/_super/batch.css","startTime":108.2999997138977,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":108.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":117.7999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":9.5,"initiatorType":"link","name":"https://issues.oasis-open.org/s/7d2823769c2e7b66e860863fe879b7f8-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/css/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":108.59999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":108.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":118.09999990463257,"responseStart":0,"secureConnectionStart":0},{"duration":9.5,"initiatorType":"link","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.css","startTime":108.89999961853027,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":108.89999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":118.39999961853027,"responseStart":0,"secureConnectionStart":0},{"duration":9.799999713897705,"initiatorType":"link","name":"https://issues.oasis-open.org/s/645acc233eb869f48a571293b8358a7d-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static-adgs/jira.webresources:global-static-adgs.css","startTime":109,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":109,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":118.7999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":10,"initiatorType":"link","name":"https://issues.oasis-open.org/s/a0dd6509771c1de0667aae5429c04cda-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css","startTime":109.2999997138977,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":109.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":119.2999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":57.59999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/s/e5479157e7a0c08b005e6522f2f04104-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/0a4716d29b2d5b1bdcdb168b4efc119e/_/download/contextbatch/js/_super/batch.js?locale=en-US","startTime":109.5,"connectEnd":109.5,"connectStart":109.5,"domainLookupEnd":109.5,"domainLookupStart":109.5,"fetchStart":109.5,"redirectEnd":0,"redirectStart":0,"requestStart":109.5,"responseEnd":167.09999990463257,"responseStart":167.09999990463257,"secureConnectionStart":109.5},{"duration":75.5,"initiatorType":"script","name":"https://issues.oasis-open.org/s/83514d5d4e8543747b02042eafcdc99c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/9aebb1c0aaa4c36289529757ec9dbb54/_/download/contextbatch/js/project.issue.navigator,jira.view.issue,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":110,"connectEnd":110,"connectStart":110,"domainLookupEnd":110,"domainLookupStart":110,"fetchStart":110,"redirectEnd":0,"redirectStart":0,"requestStart":110,"responseEnd":185.5,"responseStart":185.5,"secureConnectionStart":110},{"duration":77.40000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/70bb2263e59e7e1f04fbd137c80b895b-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/aae1242f5fc81cc6a5bb8bc963ccda29/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en-US","startTime":110.19999980926514,"connectEnd":110.19999980926514,"connectStart":110.19999980926514,"domainLookupEnd":110.19999980926514,"domainLookupStart":110.19999980926514,"fetchStart":110.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":110.19999980926514,"responseEnd":187.59999990463257,"responseStart":187.59999990463257,"secureConnectionStart":110.19999980926514},{"duration":77.60000038146973,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":110.39999961853027,"connectEnd":110.39999961853027,"connectStart":110.39999961853027,"domainLookupEnd":110.39999961853027,"domainLookupStart":110.39999961853027,"fetchStart":110.39999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":110.39999961853027,"responseEnd":188,"responseStart":188,"secureConnectionStart":110.39999961853027},{"duration":77.69999980926514,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":110.69999980926514,"connectEnd":110.69999980926514,"connectStart":110.69999980926514,"domainLookupEnd":110.69999980926514,"domainLookupStart":110.69999980926514,"fetchStart":110.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":110.69999980926514,"responseEnd":188.39999961853027,"responseStart":188.39999961853027,"secureConnectionStart":110.69999980926514},{"duration":77.90000009536743,"initiatorType":"script","name":"https://issues.oasis-open.org/s/cda37faab827dbdf305de8efe8282062-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/8.0.5/_/download/batch/com.atlassian.auiplugin:split_aui.pattern.label/com.atlassian.auiplugin:split_aui.pattern.label.js?locale=en-US","startTime":110.7999997138977,"connectEnd":110.7999997138977,"connectStart":110.7999997138977,"domainLookupEnd":110.7999997138977,"domainLookupStart":110.7999997138977,"fetchStart":110.7999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":110.7999997138977,"responseEnd":188.69999980926514,"responseStart":188.69999980926514,"secureConnectionStart":110.7999997138977},{"duration":78.2999997138977,"initiatorType":"link","name":"https://issues.oasis-open.org/s/07245784f53abc49bad9d9d4d36c577a-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/cadc4f20cc5c138dee060d42cf85f220/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":111,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":111,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":189.2999997138977,"responseStart":0,"secureConnectionStart":0},{"duration":78.09999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/rest/api/1.0/shortcuts/803004/a29179d70fa8562374ee16707692af77/shortcuts.js?context=issuenavigation&context=issueaction","startTime":111.09999990463257,"connectEnd":111.09999990463257,"connectStart":111.09999990463257,"domainLookupEnd":111.09999990463257,"domainLookupStart":111.09999990463257,"fetchStart":111.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":111.09999990463257,"responseEnd":189.19999980926514,"responseStart":189.19999980926514,"secureConnectionStart":111.09999990463257},{"duration":28.799999713897705,"initiatorType":"link","name":"https://issues.oasis-open.org/s/f77fd89aa211a76b20e9b0e63564383c-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.css?jira.create.linked.issue=true&richediton=true","startTime":161.09999990463257,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":161.09999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":189.89999961853027,"responseStart":0,"secureConnectionStart":0},{"duration":28.59999990463257,"initiatorType":"script","name":"https://issues.oasis-open.org/s/41525c48ddceeb9b11e54085268fc285-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/4a9288299d147101bf66484f4be48925/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-jira.view.issue,-project.issue.navigator/batch.js?jira.create.linked.issue=true&locale=en-US&richediton=true","startTime":161.19999980926514,"connectEnd":161.19999980926514,"connectStart":161.19999980926514,"domainLookupEnd":161.19999980926514,"domainLookupStart":161.19999980926514,"fetchStart":161.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":161.19999980926514,"responseEnd":189.7999997138977,"responseStart":189.7999997138977,"secureConnectionStart":161.19999980926514},{"duration":31.200000286102295,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":170.89999961853027,"connectEnd":170.89999961853027,"connectStart":170.89999961853027,"domainLookupEnd":170.89999961853027,"domainLookupStart":170.89999961853027,"fetchStart":170.89999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":170.89999961853027,"responseEnd":202.09999990463257,"responseStart":202.09999990463257,"secureConnectionStart":170.89999961853027},{"duration":121.2000002861023,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":192.2999997138977,"connectEnd":192.2999997138977,"connectStart":192.2999997138977,"domainLookupEnd":192.2999997138977,"domainLookupStart":192.2999997138977,"fetchStart":192.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":192.2999997138977,"responseEnd":313.5,"responseStart":313.5,"secureConnectionStart":192.2999997138977},{"duration":29.59999990463257,"initiatorType":"xmlhttprequest","name":"https://issues.oasis-open.org/rest/webResources/1.0/resources","startTime":376.2999997138977,"connectEnd":376.2999997138977,"connectStart":376.2999997138977,"domainLookupEnd":376.2999997138977,"domainLookupStart":376.2999997138977,"fetchStart":376.2999997138977,"redirectEnd":0,"redirectStart":0,"requestStart":376.2999997138977,"responseEnd":405.8999996185303,"responseStart":405.8999996185303,"secureConnectionStart":376.2999997138977},{"duration":28,"initiatorType":"script","name":"https://issues.oasis-open.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/nu8zej/803004/aeedb5937bed650f2f0cc4ec9ceaa5d3/be9ff0efea54a6453d2ac60b92912a09/_/download/contextbatch/js/browser-metrics-plugin.contrib,-_super,-project.issue.navigator,-jira.view.issue,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&richediton=true","startTime":472.59999990463257,"connectEnd":472.59999990463257,"connectStart":472.59999990463257,"domainLookupEnd":472.59999990463257,"domainLookupStart":472.59999990463257,"fetchStart":472.59999990463257,"redirectEnd":0,"redirectStart":0,"requestStart":472.59999990463257,"responseEnd":500.59999990463257,"responseStart":500.59999990463257,"secureConnectionStart":472.59999990463257}],"threshold":1000,"fetchStart":1,"domainLookupStart":3,"domainLookupEnd":3,"connectStart":3,"connectEnd":51,"secureConnectionStart":27,"requestStart":51,"responseStart":101,"responseEnd":191,"domLoading":104,"domInteractive":586,"domContentLoadedEventStart":586,"domContentLoadedEventEnd":634,"domComplete":679,"loadEventStart":679,"loadEventEnd":681,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[],"measures":[],"correlationId":"7e78eea2690594","effectiveType":"4g","downlink":10,"rtt":0,"serverDuration":114,"dbReadsTimeInMs":26,"dbConnsTimeInMs":29,"applicationHash":"4d4040e0714d65b7fffa4801569d014c0b16eaa9","experiments":[]}}