Release Notes - OASIS Open Data Protocol (OData) TC - Version V4.0_CSD02 - HTML format

Bug

  • [ODATA-367] - Explicitly state that server MAY expand results beyond what's requested with $expand
  • [ODATA-368] - Deep insert: if server responds with 201 Created it MUST respond with at least the expansion depth of the insert operation
  • [ODATA-369] - POST to navigation link with binding information leading to a different "parent" is invalid
  • [ODATA-370] - Disallow Nullable facet for collection-valued properties
  • [ODATA-376] - Navigation link representation for navigation properties of complex type instances
  • [ODATA-377] - Fix broken links in CSD01 documents
  • [ODATA-378] - Support relative IRIs for ids in JSON
  • [ODATA-381] - Hanging paragraphs - all current csprd01 documents
  • [ODATA-382] - Conformance clauses need to refer to sections defining aspects of conformance and do so uniformly
  • [ODATA-383] - Number all examples in all documents
  • [ODATA-384] - Normative text needs to be typographically distinct from examples
  • [ODATA-388] - Remove "when" from OData-specific items in delta responses
  • [ODATA-389] - JSON: use odata.kind values "Entity" and "deletedEntity", Atom: use metadata:link and metadata:deleted-link
  • [ODATA-390] - Additional description of use of GeoJSON in OData JSON.
  • [ODATA-396] - Partner attribute of edm:NavigationProperty is a property path, not a SimpleIdentifier
  • [ODATA-408] - 11.2.3 OData services MAY/SHOULD/MUST expose their data model
  • [ODATA-409] - 11.3.3.1 conflicts with conformance for intermediate and advanced OData
  • [ODATA-413] - Replace conformance clauses in URL and CSDL with references to Protocol
  • [ODATA-414] - Fix syntax for deleting links to support containment
  • [ODATA-415] - Use of "MUST," "MAY," "SHOULD," etc in Part 3 CSDL definitions
  • [ODATA-417] - Define content negotiation and default format for paths ending in /$value, /$count, /$metadata and /$batch
  • [ODATA-418] - EntitySet attribute or NavigationPropertyBinding child elements for Named Entities (edm:Entity)
  • [ODATA-419] - Specify ETag handling more precisely
  • [ODATA-420] - Response codes 404 and 405: MUST instead of SHOULD
  • [ODATA-425] - Clarify rules around parameter overloads and return types
  • [ODATA-426] - Metadata URL for nested objects can be relative to metadata URL of enclosing object
  • [ODATA-427] - Consider Providing More Information For Changed Links In a Delta Response
  • [ODATA-428] - Introduce dynamic expression AnnotationPath and accompanying abstract type Edm.AnnotationPath
  • [ODATA-429] - Add Boolean property RequiresFilter to Capabilities.FilterRestrictionsType
  • [ODATA-433] - Rollback requirement that services support $expand
  • [ODATA-434] - Introduce path segment for cross-joins on entity-container level
  • [ODATA-436] - Allow annotating edm:Annotation element, disallow annotating edm:Collection element
  • [ODATA-437] - Describe path syntax for edm:Annotations/@Target
  • [ODATA-439] - Complete Context URL patterns
  • [ODATA-440] - Specify response for function or action that returns a single null value
  • [ODATA-441] - Specify canonical form of entity-id
  • [ODATA-443] - Last page of delta response MUST contain a delta link
  • [ODATA-444] - Representation of entity references
  • [ODATA-448] - Add Nullable facet to edm:ReturnType
  • [ODATA-450] - ordering of association link , navigation link, expanded nav prop
  • [ODATA-452] - Services should be allowed to filter changes based on selected fields
  • [ODATA-453] - deal with KEY function
  • [ODATA-454] - Need a way to specify a property is unavailable
  • [ODATA-456] - Don't require client to specify odata.trackchanges preference on each page
  • [ODATA-457] - Require hash (#) on odata.type
  • [ODATA-458] - odata.isolation should be a header rather than an expectation
  • [ODATA-463] - Deleted-entry, link, and deleted-link should include {entity-set} in context URL
  • [ODATA-464] - Disallows $format for delta and next links
  • [ODATA-577] - Do we need a way to distinguish between properties that are omitted due to being aggregated away versus those that don't apply (i.e., in a concatenated result)?
  • [ODATA-583] - Clarify intentions around implied ordering of input set to aggregation transformations
  • [ODATA-872] - Consider defining structure of bound actions/functions
  • [ODATA-902] - 4.5.2: make "annotations" a hash-map with the target as key
  • [ODATA-910] - Consider format that is tailored for programmatic access (public comment c201602e00002)
  • [ODATA-911] - Miscellanous feedback (public comment c201602e00003)
  • [ODATA-914] - Comments from OASIS Technical Advisory Board (TAB)
  • [ODATA-1079] - Several issues with latest standard vocabularies
  • [ODATA-1119] - Add CollectionPropertyRestrictions capability term
  • [ODATA-1120] - Put entity set restrictions on NavigationPropertyDescriptions
  • [ODATA-1122] - Add singletons for capability term targets
  • [ODATA-1134] - Add KeyAsSegmentSupported annotation term to Capabilities vocabulary

New Feature

  • [ODATA-165] - Support Cross-joins
  • [ODATA-295] - Services should be able to "advertise" what form of change tracking they support
  • [ODATA-374] - Returning heterogeneous types for a function call
  • [ODATA-403] - Mechanism to advertise conformance level of OData services
  • [ODATA-907] - Consider Swagger for describing OData metadata in JSON format (public comment c201602e00000)
  • [ODATA-1069] - New term Core.OperationAvailable
  • [ODATA-1082] - Add term Constraint to Validation vocabulary
  • [ODATA-1099] - Add annotations to describe custom query options and custom headers
  • [ODATA-1112] - Default page size for server-driven paging
  • [ODATA-1287] - Annotate a property as "cannot be specified on insert, can be updated later"
  • [ODATA-1463] - Align wording on "safe" and "idempotent" with RFC 7231

Improvement

  • [ODATA-152] - JSON: Add examples for all request and response types using a consistent sample OData service
  • [ODATA-289] - Callback for notification after async invocation of Create, Update, Delete and Service Operations
  • [ODATA-294] - Clarifications needed for Filter System Query Option: Operators and Functions
  • [ODATA-301] - Guidance around data authorization model and secure authenticated access to an OData Service
  • [ODATA-317] - Allow multiple reads in the same transaction
  • [ODATA-346] - Order of child elements of <edm:Collection> MUST be preserved
  • [ODATA-351] - Define ID, ReadLink and EditLink in Part 1: Protocol, define representation in Atom and JSON
  • [ODATA-364] - Explicitly state that the restriction that a property MUST NOT have the same name as its containing type only applies to directly declared properties
  • [ODATA-365] - Rename edm:AssertType to edm:Cast and clarify behavior of edm:Cast and cast()
  • [ODATA-366] - Clarify whether server-generated properties can be omitted in POST, even if they are not nullable
  • [ODATA-371] - Clearly describe behavior of PUT for structural and navigation properties
  • [ODATA-373] - Add boolean expressions that can be used in <edm:If>
  • [ODATA-375] - Allow querying collections of complex type instances similar to querying collections of entities
  • [ODATA-379] - Ensure consistency and clear description in specification of $count for 'Delta Responses' (public comment c201305e00000)
  • [ODATA-380] - Insert a section in protocol (and similar in JSON and ATOM) named 'Security Considerations' (before 'Conformance')
  • [ODATA-385] - Overview wording suggestion
  • [ODATA-386] - odata-v4.0-csprd01-part1-protocol, 3 Data Model, appears to be an unnumbered list of definitions, with annotations defined in a separate subsection - suggest new format, etc.
  • [ODATA-387] - Replace (at least) the second example in Section 13 of the CSDL document (public comment c201305e00002)
  • [ODATA-391] - Add query function isdefined(PropertyPath) to determine whether an instance has a property of that name
  • [ODATA-392] - Expanded Navigation Properties should be implicitly added to $select
  • [ODATA-395] - Simplify rule for implicit values of enumeration members
  • [ODATA-397] - Lazy loading of Annotations: Add optional Attribute "TargetNamespace" to edmx:IncludeAnnotations element
  • [ODATA-398] - Define canonical function as a path segment that allows retrieving an entity by its id
  • [ODATA-399] - Describe expected life cycle management of next-links inside 11.2.4.7 Server-Driven Paging
  • [ODATA-400] - Allow JSON values also in common expressions, not only in parameter aliases
  • [ODATA-401] - Replace "substringof" canonical function with "contains"
  • [ODATA-402] - Require services to support $expand on navigation properties
  • [ODATA-404] - Make Capabilities vocabulary a part of OData 4.0
  • [ODATA-406] - Attribute ContainsTarget (public comment c201305e00009)
  • [ODATA-407] - Navigation Properties in Complex Types (public comment c201305e00012)
  • [ODATA-410] - Consider moving terms OptimisticConcurrencyControl and AcceptableMediaTypes from Core to Capabilities
  • [ODATA-411] - Reconsider placement and semantics of OnDelete element
  • [ODATA-412] - Consistent representation of empty values
  • [ODATA-421] - Remove odata.kind from JSON and add metadata URL templates for link, deletedLink, and deletedEntity
  • [ODATA-422] - Add metadata URL to representations of entity references, define format for collections of references
  • [ODATA-423] - Rename edm:Entity to edm:Singleton
  • [ODATA-430] - Add term Core.ResourcePath to describe unconventional resource paths in CSDL
  • [ODATA-431] - Add $expand=*, $expand=*/$ref, $expand=*($levels=...) for expanding all navigation properties
  • [ODATA-435] - Simplify URL syntax and CSDL by restricting services to exactly one entity container
  • [ODATA-438] - Rename edm:Url to edm:UrlRef
  • [ODATA-442] - Adapt metadata service
  • [ODATA-445] - odata.type relative to odata.type in surrounding entities
  • [ODATA-446] - Rename Named Stream to Stream Property
  • [ODATA-447] - Rename Metadata URL to Context
  • [ODATA-449] - Clarify restrictions for action/function overloads, rename IsBindable to IsBound
  • [ODATA-451] - Provide section that clearly indicates what system query options are allowed on the various combinations of URL type and HTTP method (public comment c201306e00012)
  • [ODATA-455] - Make EntityContainer a Singleton in MetadataService
  • [ODATA-459] - State consequences of using IRIs that are not URLs
  • [ODATA-460] - Add terms to capability vocabulary
  • [ODATA-465] - Explicitly mention that complex type instances can have stream properties (public comment c201307e00000)
  • [ODATA-574] - Rationalize Aggregatable Properties, Dynamic Aggregates, and floating aggregates
  • [ODATA-575] - Rationalize vocabulary and other editorial changes
  • [ODATA-576] - Aggregation: Can we find a better way to represent nested expands?
  • [ODATA-581] - Remove parameterless aggregate() transformation
  • [ODATA-582] - Simplify custom aggregate term
  • [ODATA-584] - Change the name of the "AllPropertiesSupported" property of the "ApplySupported" term to something more meaningful
  • [ODATA-844] - Provide JSON versions of the Core, Capabilities, Measures, and Aggregation vocabularies
  • [ODATA-889] - Make edm.json a stand-alone schema
  • [ODATA-890] - Specify how to get from a JSON message to a JSON schema for validating this message
  • [ODATA-925] - Define Core term for service/schema/model version
  • [ODATA-1031] - Define term for links to related information
  • [ODATA-1055] - DeepInsertSupport: allow applying to entity sets and collection-valued navigation properties
  • [ODATA-1098] - xxxRestrictions can be applied more broadly
  • [ODATA-1124] - Authorization vocabulary: KeyLocation - also allow cookie as value?
  • [ODATA-1153] - Core.Immutable: clarify that value can be provided *by client* in insert

Sub-task

  • [ODATA-393] - Allow querying collections of primitive type instances similar to other collections
  • [ODATA-394] - Introduce path segment /$all for search on service and entity container level
  • [ODATA-863] - Represent Terms similar to Types
  • [ODATA-1285] - Add ReadByKeyRestrictions similar to ReadRestrictions

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.