[httpapi] New draft: draft-rmili-httpapi-deprecation-manifest-00 (field-level deprecation signalling)
Sami Rmili <srmili@wiremind.io> Mon, 29 June 2026 09:28 UTC
Return-Path: <srmili@wiremind.io>
X-Original-To: httpapi@mail2.ietf.org
Delivered-To: httpapi@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 262E2109AF4AB for <httpapi@mail2.ietf.org>; Mon, 29 Jun 2026 02:28:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1782725321; bh=DQ4g6JOnaMWk1y0Vh+Or2yWLhR9b9S5I0i7tuQm0rYw=; h=From:Date:Subject:To; b=bgSzBeQVC+yFIG397F7Z12V3uP2jUJD6/JgaycXTrC5ZVq3dLN5tT2acleFGw7HHS vrOucT6yJmYzGOXQtM5f7gnjvgsrzkjPW3iyszFPbukfGh/Rp+tEp5YJdQV8zPuIJ/ HPWbmcFtP2NjrroquV7tjKNQ7tDCtS0UGJ5ZWHcE=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.089
X-Spam-Level:
X-Spam-Status: No, score=-2.089 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=wiremind.io
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id f8sDBfq0zgTr for <httpapi@mail2.ietf.org>; Mon, 29 Jun 2026 02:28:40 -0700 (PDT)
Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 7C6A7109AF474 for <httpapi@ietf.org>; Mon, 29 Jun 2026 02:28:40 -0700 (PDT)
Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-493a7bd27c2so10270235e9.3 for <httpapi@ietf.org>; Mon, 29 Jun 2026 02:28:40 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1782725319; cv=none; d=google.com; s=arc-20260327; b=HqyZQm1vqEvHEzAYxT7M6fgWJl+LmQYePtfPQjKByUdt6GsRmCmA5FSvNwfOh3QNZA xkkKEvOz0GBwbHulGpmEwyW7fUA/Wzefvy4n+xw57X8nw4E0uoIjVPqAhS46II0LTICN 0RhFT7Xi+y5L+7O14p12Mqa8x0qnXL1d4Jy+QIXiSEWLIZSTNIYY5Nkqa5UpPSeN7aPr J9l08jzSjq7RlLYSZ9JYUhXMO1eG/aoejqeC+fdcut8Y79j+pgEG2TB0gSFWc1r3Nk0G gjvjzu8aS1z34txOE+oMnsKKQ1dyGIeHXX4JWaBNWW6QqH4MQOLLM7gbLtuU1HFpbj3R RDNg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=NugF3koQH5zWyO46HUNWcvg7dQqTiHV05l6S2D9/cbY=; fh=KOYcE735pd7O6TXOYjYPuyS8Qznu+Oqppv3/6yxbGKA=; b=R6pmyOHA0nKcU9g8Hh8NljNXjCnYVdAvnx5BQC4dnh7yZHVeTaVX95pWgdYtd0cITF qtAUU7i/8FPOwmxTSQ83pp6zhdh9b/OhnSjrRrvQjw2Xym0+2GpTnKQYwnWb7VLJpAYk iYVbihvgMZB1cX3+lMaUMEDDApPFc57/oN6L56PxclEb0xS44/Gj4Vlbs6zsCNnUfuPN GEI2g2jabyxLp81p3lQ7UttAMf4fS4yBd70WPDo9ZR+s2TEMrE5qDYOO0F3UYbidSFNt CoVziuvwlyto1R75OMsnS8tftqnE5CxsNN2ZKBFkF8IUjcg6aFzUDSSZEJM9gIc/gk7x RjQA==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wiremind.io; s=google; t=1782725319; x=1783330119; darn=ietf.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=NugF3koQH5zWyO46HUNWcvg7dQqTiHV05l6S2D9/cbY=; b=QrD+31qevA4XNWmFhzxE0cB0lgAGe2Bc35zu/1JJuAnXnxSpChcWtRNKm2KkFyu7eI w9arXwfBlZ6zHyODvREPPMRjjt8b2K2RZEMAMJiiYDCo74aJEVf5U5LT9ZO4IPh9BUXd bmSDDx7lNFiMznDaFvl9qxe/NQEWGdD2Z10X3V3tXhTthkYvLRNwhd2+K4N0Rt74+FSK Vv7I22BZfUvds9/D/z2Q7rUgojqamyYVbK13LgxKn7eqPByGs/BpKAGe4hvV0UXuxDJY Mv9Ol9dJmg8pl/+vbe15+D+TJBVwEZAdW0L2jC9u4DykJBcocH+bGatZXM8dxf/b0StI GKqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782725319; x=1783330119; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=NugF3koQH5zWyO46HUNWcvg7dQqTiHV05l6S2D9/cbY=; b=a4VE91IILwyIdDyXwrLTNcCRIBm72Ocv+U9FYji0jQ8A3sxMHo37nVShaEOou1yai2 g7m7NKLVHMX14VYuwjMgRbZRvaPb7zzNEBLvopXhqSgVfnCCf7AV3omPAZCWRUAHxuTO xC6FgAOOlYhTKFEusjTt1PWdXAEQ5HMyuyD5fYC2STaqkggrVhzwjPWyoXlPhQeHOoTj zFauCzoZckupzFeLGKdEwnexc7cPbUB/J2YjjktAZC7G/HoflmyXFTiLPP2uZDKdF7D3 tUgfKqeSsICtUqJzo1r+RRX4H8hbOC5JbHMjt9657RuTrNYTv7kLwJACKjJ+UjY4FeX2 OMlw==
X-Gm-Message-State: AOJu0YzunWVHe1Lp/2xWYrqgi2+hl9xt73/yTgC8MsEY5j3elamAYOBP t5ghCOPTOvAkcdeEg+azq9ch0zPaV/5q3VaPvca6m9+NzEErzTPA4lE0+bvn3a3xIqut9OhTKXa YVsiMogfpayDAv4arEuUx3j3ePJAVLAHbIbGM6ETXYPqewy6qiltYripOOp5slFK6BLoD5aefNC 7Z2smeaqaHPlm8jd7YVVAmWk+nBEyXQp0=
X-Gm-Gg: AfdE7cnjfNqo5UH5ILA48CdaBv5O3vcmanru+TE5+21/rRXfuG48ND91zh2WG9us9vx Lnum6MnqjzhZCl403a0nBb4Y4an7RZfYNshkznQqAtUo0pdDisNfYOJSNAhlMhAfS1eXYlS+9aS QaNOjVd1xnxNgUp/wKWokd66422QH/q3mH+7+SG7G+Vr2SJRj9ZHnpJJps93e53ECkIrTtVL9Wr w+Vz1N8uz4f1xgQdHEjIV4+9YmhurakqtzLduTuvYRtTK2q44QgU+ldRPAWEoLGR46fRO+Z7uvC F+D3EwWh2mQu2/MN3s1eCCq9jYbMgQ==
X-Received: by 2002:a05:600c:3492:b0:493:a84a:ec5a with SMTP id 5b1f17b1804b1-493a84aee53mr70763015e9.12.1782725319312; Mon, 29 Jun 2026 02:28:39 -0700 (PDT)
MIME-Version: 1.0
From: Sami Rmili <srmili@wiremind.io>
Date: Mon, 29 Jun 2026 11:28:27 +0200
X-Gm-Features: AVVi8Cf8vMDLGkkWhp4T-iZlkdDJGjA_vKr4evvBNzS_lGfQGkRlY4iJZ2t4rig
Message-ID: <CABSbMC6QcV5ewpJK7iYJ7PW6rc5muuVMaKYkngzfkedETnn8wA@mail.gmail.com>
To: httpapi@ietf.org
Content-Type: multipart/alternative; boundary="00000000000063d1ec06556115b3"
Message-ID-Hash: CRYZNVBJV76GP4EQCRYZ5D5ODODQHJYP
X-Message-ID-Hash: CRYZNVBJV76GP4EQCRYZ5D5ODODQHJYP
X-MailFrom: srmili@wiremind.io
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [httpapi] New draft: draft-rmili-httpapi-deprecation-manifest-00 (field-level deprecation signalling)
List-Id: Building Blocks for HTTP APIs <httpapi.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/httpapi/cHVT-whiLD5t1l6bEl6gBLzsGo8>
List-Archive: <https://mailarchive.ietf.org/arch/browse/httpapi>
List-Help: <mailto:httpapi-request@ietf.org?subject=help>
List-Owner: <mailto:httpapi-owner@ietf.org>
List-Post: <mailto:httpapi@ietf.org>
List-Subscribe: <mailto:httpapi-join@ietf.org>
List-Unsubscribe: <mailto:httpapi-leave@ietf.org>
Hi all, I've posted a -00 that I'd appreciate feedback on: https://datatracker.ietf.org/doc/draft-rmili-httpapi-deprecation-manifest/ *The gap:* The Deprecation (RFC 9745) and Sunset (RFC 8594) header fields signal lifecycle at the granularity of a resource. They cannot, by design, name an individual member inside a JSON request or response body. The mechanisms that can name a member, the deprecated keyword in OpenAPI and JSON Schema are design-time, carry no dates, and live in a single shared description. So an operator of a multi-party API spec has no standard way to say "on my deployment, this particular field stops being accepted on this date." *The proposal: * An *application/deprecations+json* document, a "*Deprecation Manifest*" in which an operator declares dated deprecation and sunset timelines for specific request/response members. It's discovered via the existing *rel="deprecation"* link relation, is decoupled from any API description, and is purely informational, it never changes the wire behaviour of a resource. It reuses the date semantics of RFC 9745/8594 rather than replacing them. *Origin:* This comes from a real need as an implementor/contributor of OSDM <https://osdm.io/spec/getting-started/> (an open UIC rail-distribution API standard). The OpenAPI schema is shared by everyone who implements the standard, and it evolves: between two minor versions, a field gets marked deprecated in favour of a replacement. But that deprecated flag in the shared schema is undated, and no single implementor can edit the shared schema to add their own dates. So even though the standard says a field is on its way out, each operator is left with no standard way to declare when their own deployment will stop accepting or returning it (i.e. its actual deprecation and sunset dates). The manifest lets each implementor publish that per-deployment timeline without touching the shared contract. I expect to ship one in the OSDM ecosystem, which should give the design some running code to evaluate. I'd particularly welcome views on whether this belongs as a discovery document alongside RFC 9727 (api-catalog), and on the selector design (JSONPath / JSON Pointer). Thanks, -- [image: img] *Sami RMILI* *Software Engineer* srmili@wiremind.io 16, boulevard Poissonnière - 75009 Paris, France [image: linkedin] <https://app.signitic.com/l/bVhvSkNYYlBaZ1lLQi8vejdqMlF4QT09-eFZMaExNZWZGQjMvaVVJaDArTTl6Zz09> [image: web] <https://app.signitic.com/l/bVhvSkNYYlBaZ1lLQi8vejdqMlF4QT09-VzNGNG5oU1pWYjZRMTVQMUxBZ2xJZz09> -- The content of this email is confidential and intended for the recipient specified in message only.
- [httpapi] New draft: draft-rmili-httpapi-deprecat… Sami Rmili
- [httpapi] Re: New draft: draft-rmili-httpapi-depr… Salz, Rich
- [httpapi] Re: New draft: draft-rmili-httpapi-depr… Sanjay Dalal
- [httpapi] Re: New draft: draft-rmili-httpapi-depr… Sami Rmili
- [httpapi] Re: New draft: draft-rmili-httpapi-depr… swapnil srivastava
- [httpapi] Re: New draft: draft-rmili-httpapi-depr… Henry Andrews