OData TC meeting #199 Thursday January 18, 2018

Acting chair: Ralf

Chat transcript from room: odatatc
2018-01-18 0800-1000 PST

1. Roll call

1.1 Members present

    Gerald Kraue (SAP SE)
    Hubert Heijkers (IBM)
    Mark Biamonte (Progress Software)
    Martin Zurmuehl (SAP SE)
    Michael Pizzo (Microsoft) a.k.a. Mike
    Ralf Handl (SAP SE)
    Ramesh Reddy (Red Hat)
    Stefan Hagen (Individual)
    Ted Jones (Red Hat)

Quorum achieved. Details cf. normative attendance sheet for this meeting (event_id=46239).

Notes taken by all and subsequently edited for readability by Stefan.

2. Approve agenda

Ralf: Mark has short update on IANA registration

Ralf: Info: Public Review of V4.01 has started, from December 04 to December 18

Ralf: Agenda approved with these changes

3. Approve minutes from previous meeting(s)

3.1 Minutes from December 07, 2017 TC meeting #198

https://www.oasis-open.org/committees/download.php/62193/odata-meeting-198_on-20171207-minutes.html

Minutes approved unchanged as published.

4. Review action items [Link to Action item list]

4.1 Action items due

None.

5. Approve latest CSDs as CS01

5.1 Review Summary of Non-Material Changes

5.1.1 OData V4.01 CSD04 Summary of Non-Material Changes (2018-01-17)

URL: https://www.oasis-open.org/apps/org/workgroup/odata/download.php/62333/odata-v4.01-csd04-non-material-changes-2018-01-17.docx

5.2 Issues applied

5.2.1 ODATA-1139 - Clarify: contains, startswith, endswith, indexof should all be case-sensitive

Ralf: ODATA-1139 is OPEN

Mike: I move we approve ODATA-1139 as proposed. Hubert seconds.

Ralf: ODATA-1139 is RESOLVED as proposed

Mike: I move we close ODATA-1139 as applied. Hubert seconds.

Ralf: ODATA-1139 is CLOSED as applied

5.3 Motions

5.3.1 OData Version 4.01 Working Draft 05

Hubert: I move to approve the Chair requesting that TC Administration hold a Special Majority Vote to approve OData Version 4.01 Working Draft 05 contained in https://www.oasis-open.org/committees/download.php/62334/odata-v4.01-cs01-2018-01-17.zip as a Committee Specification. I further move that the TC affirm that changes have been made since the last public review, that the changes made are documented in https://www.oasis-open.org/committees/download.php/62333/odata-v4.01-csd04-non-material-changes-2018-01-17.docx and that the TC judges these changes to be Non-Material in accordance with the definition in the OASIS TC Process (https://www.oasis-open.org/policies-guidelines/oasis-defined-terms-2017-05-26#dNonmaterialChange). Mike seconds.

Ralf: No objection, motion passes

5.3.2 OData Common Schema Definition Language (CSDL) XML Representation Version 4.01 Working Draft 05

Mark: I move to approve the Chair requesting that TC Administration hold a Special Majority Vote to approve OData Common Schema Definition Language (CSDL) XML Representation Version 4.01 Working Draft 05 contained in https://www.oasis-open.org/committees/download.php/62247/odata-csdl-xml-v4.01-cs01-2017-12-19.zip as a Committee Specification. I further move that the TC affirm that changes have been made since the last public review, that the changes made are documented in https://www.oasis-open.org/committees/download.php/62333/odata-v4.01-csd04-non-material-changes-2018-01-17.docx and that the TC judges these changes to be Non-Material in accordance with the definition in the OASIS TC Process (https://www.oasis-open.org/policies-guidelines/oasis-defined-terms-2017-05-26#dNonmaterialChange). Mike seconds.

Ralf: No objection, motion passes

5.3.3 OData Common Schema Definition Language (CSDL) JSON Representation Version 4.01 Working Draft 04

Mark: I move to approve the Chair requesting that TC Administration hold a Special Majority Vote to approve OData Common Schema Definition Language (CSDL) JSON Representation Version 4.01 Working Draft 04 contained in https://www.oasis-open.org/committees/download.php/62248/odata-csdl-json-v4.01-cs01-2017-12-19.zip as a Committee Specification. I further move that the TC affirm that changes have been made since the last public review, that the changes made are documented in https://www.oasis-open.org/committees/download.php/62333/odata-v4.01-csd04-non-material-changes-2018-01-17.docx and that the TC judges these changes to be Non-Material in accordance with the definition in the OASIS TC Process (https://www.oasis-open.org/policies-guidelines/oasis-defined-terms-2017-05-26#dNonmaterialChange). Ted seconds.

Ralf: No objection, motion passes

5.3.4 OData JSON Format Version 4.01 Working Draft 05

Mike: I move to approve the Chair requesting that TC Administration hold a Special Majority Vote to approve OData JSON Format Version 4.01 Working Draft 05 contained in https://www.oasis-open.org/committees/download.php/62246/odata-json-format-v4.01-cs01-2017-12-19.zip as a Committee Specification. I further move that the TC affirm that changes have been made since the last public review, that the changes made are documented in https://www.oasis-open.org/committees/download.php/62333/odata-v4.01-csd04-non-material-changes-2018-01-17.docx and that the TC judges these changes to be Non-Material in accordance with the definition in the OASIS TC Process (https://www.oasis-open.org/policies-guidelines/oasis-defined-terms-2017-05-26#dNonmaterialChange). Hubert seconds.

Ralf: No objection, motion passes

6. Issues

6.1 Vocabularies: APPLIED

6.1.1 ODATA-1064 - Add ability to annotate collections to return only count and NextLink

Skip for today

6.1.2 ODATA-1099 - Add annotations to describe custom query options and custom headers

Mike: discuss this together with ODATA-884

6.1.3 ODATA-1124 - Authorization vocabulary: KeyLocation - also allow cookie as value?

hhhhh

Mike: I move we close ODATA-1124 as applied. Hubert seconds.

Ralf: ODATA-1124 is CLOSED as applied

Mike: https://github.com/oasis-tcs/odata-vocabularies/pull/4

6.1.4 ODATA-1134 - Add KeyAsSegmentSupported annotation term to Capabilities vocabulary

Mike: https://github.com/oasis-tcs/odata-vocabularies/pull/5

Hubert: I move to close ODATA-1134 as applied. Mike seconds.

Ralf: ODATA-1134 is CLOSED as applied

6.2 Vocabularies: NEW or OPEN

6.2.1 ODATA-884 - Add term ErrorCodes to describe possible codes in error messages (public comment c201510e00019)

Mike:

<Term Name="HttpRequests" Type="Collection(Core.HttpRequest)" AppliesTo="EntitySet Singleton ActionImport FunctionImport Action Function"> 
  <Annotation Term="Core.Description" String="Describes possible HTTP requests" /> 
  <Annotation Term="Core.LongDescription" String="The list need not be complete. \
                       It may be used to generate API documentation, so restricting \
                       it to the most common and most important responses may increase readability." /> 
</Term> 

<ComplexType Name="HttpRequest"> 
  <Property Name="Method" Type="Edm.String"> 
    <Annotation Term="Core.Description" String="Request verb of the HTTP request, e.g. GET, POST, PATCH, DELETE" /> 
  </Property> 
  <Property Name="CustomQueryOptions" Type="Collection(Capabilities.CustomParameter)" AppliesTo="EntityContainer EntitySet Singleton Action ActionImport Function FunctionImport"> 
    <Annotation Term="Core.Description" String="Custom query options that are supported/required for the annotated resource" /> 
  </Property> 
  <Property Name="CustomHeaders" Type="Collection(Core.CustomParameter)"> 
    <Annotation Term="Core.Description" String="Custom headers that are supported/required for the annotated resource" /> 
  </Property> 
  <Property Name="HttpResponses" Type="Collection(Core.HttpResponse)"> 
    <Annotation Term="Core.Description" String="Possible HTTP Responses returned by the request." /> 
  </Property> 
</ComplexType> 

<ComplexType Name="HttpResponse"> 
  <Property Name="ResponseCode" Type="Edm.String"> 
    <Annotation Term="Core.Description" String="HTTP status code of the response, e.g. 400, 403, 501" /> 
  </Property> 
  <Property Name="Description" Type="Edm.String"> 
    <Annotation Term="Core.Description" String="Human-readable description of the response code." /> 
    <Annotation Term="Core.IsLanguageDependent" /> 
  </Property> 
  <Property Name="Conditions" Type="Collection(Core.HttpStatusCodeCondition)"> 
    <Annotation Term="Core.Description" String="Descriptions of conditions resulting in the specified status code." /> 
  </Property> 
</ComplexType> 

<ComplexType Name="HttpStatusCodeCondition"> 
  <Property Name="ODataErrorCode" Type="Edm.String"> 
    <Annotation Term="Core.Description" String="Language-independent, machine-readable OData error code" /> 
  </Property> 
  <Property Name="Description" Type="Edm.String"> 
    <Annotation Term="Core.Description" String="Human-readable description of the response situation" /> 
    <Annotation Term="Core.IsLanguageDependent" /> 
  </Property> 
</ComplexType> 

<ComplexType Name="CustomParameter"> 
  <Annotation Term="Core.Description" String="A custom parameter is either a header or a query option" /> 
  <Annotation Term="Core.LongDescription" String="The type of a custom parameter is always a string. \
                       Restrictions on the parameter values can be expressed by annotating the record expression \
                       describing the parameter with terms from the Validation vocabulary, e.g. Validation.Pattern \
                       or Validation.AllowedValues." /> 
  <Property Name="Name" Type="Edm.String" Nullable="false"> 
    <Annotation Term="Core.Description" String="Name of the custom parameter" /> 
  </Property> 
  <Property Name="Description" Type="Edm.String"> 
    <Annotation Term="Core.Description" String="Description of the custom parameter" /> 
  </Property> 
  <Property Name="DocumentationURL" Type="Edm.String"> 
    <Annotation Term="Core.IsURL" /> 
    <Annotation Term="Core.Description" String="URL of related documentation" /> 
  </Property> 
  <Property Name="Required" Type="Edm.Boolean" Nullable="false"> 
    <Annotation Term="Core.Description" String="true: parameter is required, false or not specified: parameter is optional" /> 
  </Property> 
  <Property Name="ExampleValues" Type="Collection(Capabilities.CustomParameterExampleValue)" Nullable="false"> 
    <Annotation Term="Core.Description" String="Example values for the custom parameter" /> 
  </Property> 
</ComplexType> 

<ComplexType Name="CustomParameterExampleValue"> 
  <Property Name="Value" Type="Edm.String" Nullable="false"> 
    <Annotation Term="Core.Description" String="Example value for the custom parameter" /> 
  </Property> 
  <Property Name="Description" Type="Edm.String" Nullable="false"> 
    <Annotation Term="Core.Description" String="Description of the example value" /> 
  </Property> 
</ComplexType>

Mike: I propose we re-open ODATA-1099 and amend the proposal to restrict the "AppliesTo" to "EntityContainer". This would allow us to specify global (service-wide) query options or headers. Resource-specific header and query option requirements would be applied through the HttpRequests annotation term defined in ODATA-884. Ralf seconds.

Mike: This would apply to both terms defined in ODATA-1099.

Ralf: ODATA-1099 is OPEN (again)

Hubert: I move to resolve ODATA-1099 as per Mike's proposal, limiting the applicability of the 'CustomHeaders' and 'CustomQueryOptions' to just the EntityContainer. Mike seconds.

Ralf: ODATA-1099 is RESOLVED with the above proposal

Ralf: https://github.com/OAI/OpenAPI-Specification/issues/1392

Ralf: https://datatracker.ietf.org/doc/rfc7807/?include_text=1

Ralf: Problem Details for HTTP APIs

Ralf: Mike to split off the "Conditions" into a separate issue

7. Next meetings

Ralf:

Thursday January 25, 2018 during 8-10 am PST (17:00-19:00 CET)
Thursday February 1, 2018 during 8-10 am PST? (17:00-19:00 CET)

8. AOB and wrap up

None

Meeting adjourned by chair.