[httpapi] Draft minutes

Martin Thomson <mt@lowentropy.net> Fri, 29 July 2022 15:38 UTC

Return-Path: <mt@lowentropy.net>
X-Original-To: httpapi@ietfa.amsl.com
Delivered-To: httpapi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CCAC4C14F745 for <httpapi@ietfa.amsl.com>; Fri, 29 Jul 2022 08:38:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.127
X-Spam-Level:
X-Spam-Status: No, score=-2.127 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lowentropy.net header.b=UjeIeXxs; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=Y4CZ3p2Z
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Qr4X9jPH1RR3 for <httpapi@ietfa.amsl.com>; Fri, 29 Jul 2022 08:38:08 -0700 (PDT)
Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A276CC14F74C for <httpapi@ietf.org>; Fri, 29 Jul 2022 08:38:08 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 841805C00A0 for <httpapi@ietf.org>; Fri, 29 Jul 2022 11:38:07 -0400 (EDT)
Received: from imap41 ([10.202.2.91]) by compute3.internal (MEProxy); Fri, 29 Jul 2022 11:38:07 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:message-id:mime-version:reply-to:sender:subject :subject:to:to; s=fm1; t=1659109087; x=1659195487; bh=2Ou1UFJmph z+1Ifl06vF9Ug+GmJi1dkBjgl/doK9otE=; b=UjeIeXxs8d9bFC3Cqej/6k/SS3 gI9UyswZlSSmDrx2hBsnlStNlcr5DqZ/m6x0AR+1uFRgYJxE1ZNZsb7jb/BQ8PRv 67s9luMtz4J+YSELTQjkFAoXy872nR52kPp+yO8H7q3gaX5fN8AAc4kUiRE74ihw YIC+MbCfwLX19b6ZWrrJyRQ0rbERkZpW2MbatSZRIPJZZhH2TpLVtm54IX/JTdLN Jbp9aZYhK2J3shDAbhZmqC/wuSviqUravIWcxQcSSpc4bB6UAjh67qpzOZVNwkiX Q+cxCAst+F07KZsKJW8UR/BCcK2LiXc/MQFxQ6UurLmxdMmjQMjMuXbhi4KQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:date:feedback-id:feedback-id:from:from:in-reply-to :message-id:mime-version:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1659109087; x=1659195487; bh=2Ou1UFJmphz+1Ifl06vF9Ug+GmJi 1dkBjgl/doK9otE=; b=Y4CZ3p2ZLcx2UDQ5HZzKc3yRGNovzJY/LqhF3450cI+M JI4ZjNDO2ULQoifvLR+epFlGBdkPXBQXjxH2W4N4hGM7+57k+dXmRYiI2Opqgv0Y Rv3sNgurPY/N7LVbes8h50jPKGMR5f6TeoDIAr2XIsUJ9CAHbQBdgnpOwqjHSv4Y Hr4Lv6jZifkjYNn+hyZ6xS1oEAQLr3rYHMGFF6okuYGRbxN95+nQRBs9v4t0+aj4 mSLLsjku1CWgGGWYSvY6VZmqhI25mt8iiCIv49cvG+d8Fnj8EtjnDA6BJCtf7RDi ai1sf08xduIpniQWfYNtHwdvg9SXxjpb2BpN9GSkrg==
X-ME-Sender: <xms:3_7jYhSJyMG-0vVRnE78BOGIlLtGaKfpqxXHQCuw-h9sLLiyem8hhA> <xme:3_7jYqxx8KshJFBOdeONBCOWYOfk6IjvhMsp7v5rgUfzs45ulNIxKzJXXcHl5UcND lW252v9NAZWcijR_D0>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvddujedgledvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfffhffvufgtgfesthhqre dtreerjeenucfhrhhomhepfdforghrthhinhcuvfhhohhmshhonhdfuceomhhtsehlohif vghnthhrohhphidrnhgvtheqnecuggftrfgrthhtvghrnhepjeeljeeutdeljeehhefghf duffeuueelgefghfegvedtgefhtdetgffhvdethfegnecuffhomhgrihhnpehivghtfhdr ohhrghdpmhgvvghtvggthhhordgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrg hrrghmpehmrghilhhfrhhomhepmhhtsehlohifvghnthhrohhphidrnhgvth
X-ME-Proxy: <xmx:3_7jYm1GcSXu9AMzifKq1LcT7GHzxZ3y3zqNRehS7trwuhGvwXwLZQ> <xmx:3_7jYpBW4G1RGMEra9poIFj6tnRf2k3_Qr9IuQ_e0pfStAA5J9rAfg> <xmx:3_7jYqj_TT-zR6CdxhGqXyc0ZGJyPAii_6H4do4yrZNhDQYst79e0w> <xmx:3_7jYluCMVCwzI-4pgUncJJ_oQOb90bG3pReZNWMQgnXRbua1yGvpA>
Feedback-ID: ic129442d:Fastmail
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 5554E234007B; Fri, 29 Jul 2022 11:38:07 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.7.0-alpha0-758-ge0d20a54e1-fm-20220729.001-ge0d20a54
Mime-Version: 1.0
Message-Id: <88bc449c-5160-4893-a1ab-56e9247e5b22@www.fastmail.com>
Date: Fri, 29 Jul 2022 11:37:46 -0400
From: Martin Thomson <mt@lowentropy.net>
To: httpapi@ietf.org
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/httpapi/cyO5bIOIg_sFecS-Qxi0LfgTVi8>
Subject: [httpapi] Draft minutes
X-BeenThere: httpapi@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Building Blocks for HTTP APIs <httpapi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/httpapi>, <mailto:httpapi-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/httpapi/>
List-Post: <mailto:httpapi@ietf.org>
List-Help: <mailto:httpapi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/httpapi>, <mailto:httpapi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Jul 2022 15:38:13 -0000

The current state of https://notes.ietf.org/notes-ietf-114-httpapi?both


---
# HTTPAPI WG Meeting - IETF 114
Friday July 29th 14:00 UTC (10:00 America/New York)
Chairs: Darrel Miller, Rich Salz
Meetecho: https://gce.conf.meetecho.com/conference/?group=httpapi
Minutes: https://codimd.ietf.org/notes-ietf-114-httpapi

## Administrivia

- Note well
- Note-taker
- Jabber Scribe (chairs via meetecho)
- Agenda bashing

## WG Document Presentations

## RateLimit Field for HTTP; ratelimit-headers – Roberto Polli

RP: Almost complete
Issue 60 - use delta-seconds
Issue 35 - use SF (yay)
Lots of other good changes

Issue 105 - proposal to defer handling for trailer

Issue 65 - combining all four fields into a single one

Decision not to support this change.  No operational experience with a combined field. Implementers found a single field confusing.  Where SF parsers are not available, the simple integer fields are easier to manage.

Mnot: I understand the arguments, but it is not appropriate to be made based on data that is not brought to the WG by the people taking that position.  We need to make a decision as a WG.
Roberto: I don't want to take freedom of decision from the WG.  We attempted to combine fields, but this was the outcome.  We did our homework and this was the result.
SF is not a goal; the goal is to consolidate a standard.  The ecosystem is not ready for that.
Darrel: we can separate the issue of SF from the other
Martin: multiple fields is awkward, but maybe there is some value in keeping stable values separate from ephemeral
Julian: what kind of support is needed in nginx etc..? If there was a ticket, we might consider adding support.

Poll: Do you have an opinion on 3v1?
Result: ample opinion

Poll: 3v1 (3 is raise hand; 1 is don't)
Result: 7 for three headers; 6 for one

Rifaat: What is the rationale behind merging into one?
Mnot: I don't see any reason to spread across multiple.  If we are specifying these as structured fields, but make them appear to be simple integers; it's an attractive nuisance.  If you don't want SF, then don't use SF.  But that means specifying parsing and error handling to a similar standard as SF does.  No point doing that.  I don't find the arguments for 3 headers persuasive
MT: one is more efficient; one would have been easier to consume
Darrel: you return these on every response, which creates a burden on the network; the simpler from a processing perspective, the better.  One header to parse is easier and simpler.
Roberto: I think that if it would be easier and simpler, then someone else would have done it that way.  Implementers have done it this way, maybe that was wrong, but there is value in what community of implementers do.  Three headers matches that.  Would like to see data that one field is better.
Darrel: is it possible for an implementer to use the fields in isolation?
Roberto: you might use remaining and reset together (without limit).

Chair: please encourage people to provide feedback on the issue

## Yaml mediatype; yaml-mediatypes – Roberto Polli

Just focused on yaml and +yaml.

Issue 50 - fragment on +yaml documents
Roberto: I would favour the ability to use yaml ??? missed this, very, very hard to understand Roberto here.
Darrel: open API's use of yaml is what yaml calls JSON schema - the concept in YAML of the subset of YAML that will round trip to JSON. Does that include anchors?
Roberto: JSON schema that is defined in YAML is not really compatible with JSON, which includes +INT and NaN which are not in JSON.
Darrel: that feels like an error in the YAML spec, but the intent is to make the format round-trip-able.
Roberto: the native YAML fragment supports JSON pointers when it starts with '/'. If we do no enforce that openapi must use the structured syntax suffix, then it can define its own fragment identifier.  It can be different from the one in application/yaml.  Since the media type is openapi+yaml it is a different media type.  Each media type that uses a structured syntax suffix can define its own fragment identifier.  We should not hinder the ability to use XXX+yaml, because people are already using this.
Darrel: what now?
Roberto: ????
Darrel: application/yaml defines fragment IDs.  existing media types like openapi and json schema, when they use yaml tend to use JSON pointer, sort of pretending that the yaml is JSON (which works because it uses a JSON-ish-compatible syntax).  Roberto is suggesting that maybe just because application/yaml use this fancy format, +yaml types don't have to, but they can opt into that fancy format if they want.
Darrel: because RFC 6838 doesn't require X and +X to have the same fragment identifier definition, we can simply ask specs to be explicit
Mnot: the pattern is to rely on the common definition for the fragid, so that the +X specs get that syntax unless they define something else.  That's the pattern I've seen in the past.

Taking this to the list.

Issue 59 YAML -> JSON

Darrel: prefer to defer to the YAML spec; we can ask the YAML people to close any holes that might exist
Rich: if we try to define a conversion, that would not be in our charter; if there are people who want to do this, bring it to the list


## WG Documents - Status Update

### Problem Details for HTTP APIs

7807bis: Q to mnot, do we need a revision
mnot: need to check; we have a PR for a JSON-LD context (appendix); lots of discussion there but no resolution; I don't know JSON-LD well enough to decide; not sure about putting it in the specification
Darrel: why does this need to go into the specification?
mnot: this is a mapping into JSON-LD native language, though I do wonder about extension fields; don't have a good answer for why it needs to be in the spec
dret: it is not about JSON-LD; that's just mapping JSON to RDF data model.  To do that you need to define a vocabulary that the JSON maps to.  This is why it is so hard, because just putting a mapping in is not good enough, because JSON-LD is just JSON, but the point is determining what the RDF vocab is; this isn't going to resolve soon, not sure taht this community can get an answer in a short time
mnot: very helpful comment, but this will go into an immutable RFC; we can close that down then

### Deprecation Header

deprecation header: Current state of SF conversion discussion?
dret: lots of discussion on the issue, maybe we can poll.  draft follows Sunset syntax; discussion was to maybe switch to structured fields.  my feeling was that it would be better to match Sunset on balance. there was an idea to have a generic header for lifecycle information and maybe other lifecycle stages (experimental, GA).  That could use SF.  I kind of like that idea, apart from having to start from scratch.  Want to know what wins in a poll: match existing, or forward-oriented model.  Or what people think about the Lifecycle idea.  The lifecycle thing might take a lot longer.
mnot: separate from it being SF, I find the idea of lifecycle really intruiging.  one place to look and learn about the API status seems really nice.  I don't think that it would take a long time, it involves shuffling text around.  the hard part is the semantics.  We could do this pretty quickly.  I'd like to see things go in that direction.
mnot: in HTTP WG we are considering adding a date type to SF.  Lots of dates involved already; now is a good time to get these all right.  @\<RFC3339> or @\<int>.  Need input on this.  People are mostly headed toward the latter.  Feedback here would be very useful to take things back to HTTP WG.
dret: it would also be useful to have that.  a date type would be very useful.  we would definitely use that format if we go with lifecycle.  lots of other places can use date-time information.
Darrel: Julian points out in chat that we could start with just sunset+deprecation
dret: we do need extensibility if we do this, but we need to think about it being future proof.  if it is only two fields, no point in the lifecycle idea
Darrel: Julian was suggesting including an extensibility mechanism.
mnot: it would be super easy, because SF makes it easy.  We could update the document rather than defining a registry
Darrel: On date integer+epoch.  the origin time for the epoch matters.
mnot: just specify it
Darrel: it's not in the message
mnot: it is in the semantics

Poll: Align deprecation syntax with sunset syntax
Result: Not many votes

Poll: should we explore the use of lifecycle as an alternative/replacement to the sunset and deprecation fields
Result: 9:3 in favour

Will confirm that result on the list.

Julian: martin and mark might explain their discontent with the first question.  do we have any data about the adoption of sunset?
dret: I've seen sunset recommended in a few places, but it has been adopted in some places; received a few questions about deprecation

Darrel: bring discussion to the list regarding a consolidated field definition
dret: not buying the argument that this is simple
Darrel: for julian: it's an iso date
dret: oui

Julian: the fact that this uses HTTP-date is a good reason to keep consistency.  Even though it is a bad format, at least it has support everywhere.
Darrel: if we keep two headers, then you are saying keep the two the same, without introducing the ISO date



### Linkset

dret: request for cheesy fireworks for the first RFC from this working group

### Idempotency Key
### Link Template

## Proposed WG Documents

### Using The Date Header Field in HTTP Requests date-requests – Martin Thomson

abandoning the work on generic stuff.  OHAI are taking the important bits for them into their document

## Discussions/Any Other Business