Skip to content

Commit 18c3801

Browse files
v05 and examples
1 parent 48b5822 commit 18c3801

18 files changed

Lines changed: 4999 additions & 41 deletions

ADOPTION.md

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ safe to ingest without negotiation).
8585
| New media type / IANA burden? | **No new media type.** One entry in the existing "Well-Known URIs" registry — the same footprint as security.txt (RFC 9116). |
8686
| Registration bar | The registry's policy is **Specification Required** (RFC 8615 §3.1) — which includes designated-expert review per RFC 8126 and is designed exactly for stable specs like this; no WG/RG adoption is required. |
8787
| Registry status requested | **Provisional** — the honest ask for an Independent Submission per RFC 8615 §3.1, and what the designated expert assigns to comparable new entries (gpc.json, change-password, ecips); explicitly promotable to permanent once in broad use. No over-claim for the expert to push back on. |
88-
| Security/privacy reviewed? | Yes — dedicated Security and Privacy sections (DoS caps + bounded query key space, trust/spoofing, greenwashing, traffic-analysis floor, path-disclosure allowlist, deterministic fingerprinting noise, TLS). |
88+
| Security/privacy reviewed? | Yes — dedicated Security and Privacy sections (DoS caps + bounded query key space, trust/spoofing, greenwashing, traffic-analysis floor, path-disclosure allowlist, deterministic fingerprinting noise, TLS), plus a dedicated Internationalization Considerations section (BCP 18/RFC 2277 protocol-element vs. text classification, added in the prepared `-05` revision). |
8989
| Maintenance risk | Minimal: open, forward-compatible schemas (unknown members permitted; clients MUST ignore them) with an informational version label — future fields need **no revision of the RFC** and no new IANA registry. |
9090
| Implementation risk | A production reference gateway + dual independent validators already pass end-to-end (see §9). |
9191

@@ -116,8 +116,9 @@ fragmentation.
116116
(no in-band sentinel; a member present always carries a real value); clients tolerate
117117
rather than reject defective values (wrong JSON type, `null`, out-of-range, `sci-score`
118118
without `functional-unit`); and field-driven compatibility rules keep historical 1.x
119-
documents processable. A mandatory free-form `target` member names the reporting subject
120-
(origin host, path prefix, entity, tenant, or carbon.txt-listed site), classified by an
119+
documents processable. A mandatory `target` member — an opaque identifier compared
120+
octet-for-octet, never translated — names the reporting subject (origin host, path
121+
prefix, entity, tenant, or data source), classified by an
121122
optional enumerated `target-type` hint
122123
(`origin`/`path`/`organization`/`service`/`product`/`device`/`tenant`/`data-source`)
123124
with unrecognized values tolerated. Browser consumers are served too: successful
@@ -138,8 +139,9 @@ fragmentation.
138139
needed for any of these; they gain the endpoint for free by implementing RFC 8615 like
139140
any web server would.
140141
- **The schema reports the entity, not just the box it runs on.** `provider` names "the
141-
entity operating the origin" (not necessarily the hardware); `measurement-method` is
142-
free-form; and the reference implementation's enterprise adapters (Salesforce Net Zero
142+
entity operating the origin" (not necessarily the hardware); `measurement-method` is a
143+
token with RECOMMENDED machine-matchable values, or otherwise a short human-readable
144+
description; and the reference implementation's enterprise adapters (Salesforce Net Zero
143145
Cloud, Microsoft Sustainability Manager, Watershed) already populate documents from
144146
*organization-level* reporting platforms, not server telemetry. A single origin — a
145147
compliance subdomain, a corporate reporting portal — can therefore publish the numbers a
@@ -184,8 +186,9 @@ continuous, queryable, comparable data.
184186
## 5. Ecosystem & environmental benefits
185187

186188
- **Interoperates with existing real-world tooling.** The optional `disclosure-uri` field links
187-
a metrics document to a machine-readable disclosure index — the canonical example being a
188-
Green Web Foundation [carbon.txt](https://carbontxt.org/) file. The reference publisher
189+
a metrics document to a machine-readable disclosure index — format- and location-agnostic;
190+
the Green Web Foundation's [carbon.txt](https://carbontxt.org/) convention is one such form
191+
among others, cited as complementary adjacent work. The reference publisher
189192
computes metrics from bytes with **CO2.js**, ingests a remote carbon.txt via the GWF **hosted
190193
API**, and can serve a **bidirectional carbon.txt** pointing back to `/.well-known/sustainability-data`.
191194
This complements the "well-known sustainability files" family (alongside security.txt/RFC 9116)
@@ -329,7 +332,8 @@ calls for standardized, non-proprietary metrics.
329332
standardization is the IETF's product — demonstrably not GWF's, by their own choice.
330333

331334
**Concrete mutual-benefit plan (offered, not hypothetical):**
332-
- `disclosure-uri` → carbon.txt is already in the draft (their spec cited).
335+
- `disclosure-uri` can already point at a carbon.txt — one form among others the draft's
336+
Relationship to Other Work section cites (their spec cited).
333337
- Propose, via GWF's open consultation process, a disclosure entry type by which a
334338
carbon.txt lists a `/.well-known/sustainability-data` endpoint — their index then *finds*
335339
these documents.
@@ -347,13 +351,18 @@ never positioning against it.
347351

348352
## 8. Possible objections — each pre-empted in the draft text
349353

350-
*(Revision **-04** is the latest — posted to the Datatracker, under ISE review; schema label `"2.0"`. It renames the
354+
*(Revision **-04** is the latest posted revision — posted to the Datatracker, under ISE review; schema label `"2.0"`. It renames the
351355
requested suffix to `sustainability-data`, adds the optional `target-type` member, and
352356
applies a final audit round: a CORS recommendation (`Access-Control-Allow-Origin: *`) for
353357
browser clients, an all-or-none array rule for `target-type`, client tolerance for
354358
wrong-type/`null` values and for `sci-score` without `functional-unit`, a corrected legacy
355359
`target-path` attribution rule, a documented array cap, and a 200-OK requirement qualified
356-
for redirects, revalidation, and rate limiting. Every answer below reflects -04.)*
360+
for redirects, revalidation, and rate limiting. A follow-up revision, **-05**, has been
361+
prepared in response to the ISE's initial review — removing the carbon.txt-path reference
362+
from `disclosure-uri`, adding Internationalization Considerations, and recognizing the
363+
calendar year as the common Basic-service reporting cycle — and is ready to post but not
364+
yet submitted; `-04` remains the currently posted revision, and every answer below applies
365+
unchanged to `-05` (no wire-format change).)*
357366

358367
| Objection | Answer (and where the draft already settles it) |
359368
|---|---|
@@ -380,9 +389,11 @@ for redirects, revalidation, and rate limiting. Every answer below reflects -04.
380389

381390
## 9. Readiness evidence (in this repository)
382391

383-
- Draft at **draft-besleaga-sustainability-wellknown-04** — the latest revision, posted
384-
to the Datatracker and under ISE review as an Independent Submission (the prior -03 was
385-
posted 2026-07-23). The series continues and replaces the
392+
- Draft at **draft-besleaga-sustainability-wellknown-04** — the latest **posted**
393+
revision, on the Datatracker and under ISE review as an Independent Submission (the
394+
prior -03 was posted 2026-07-23). A follow-up **-05** revision has been prepared,
395+
responding to the ISE's initial review, and is ready to post but not yet submitted —
396+
`-04` remains the posted revision of record. The series continues and replaces the
386397
draft-besleaga-green-sustainability-wellknown -00–-05 series, with the Datatracker
387398
"Replaces" relationship recorded. Revisions build strict-clean (`xml2rfc --strict`,
388399
0 warnings; idnits **0 errors**); all references verified against authoritative sources,
@@ -397,7 +408,7 @@ for redirects, revalidation, and rate limiting. Every answer below reflects -04.
397408
of duplicated normative statements to single owning locations). All findings are
398409
reflected in the current draft text and the CI checks below.
399410
- **Dual formal schemas** (JTD + CDDL) with two independent validation toolchains (the
400-
Python `jtd` package; the Ruby `cddl` gem) — 5 repository examples and 6 in-draft
411+
Python `jtd` package; the Ruby `cddl` gem) — 14 repository examples and 6 in-draft
401412
examples, each passing both validators.
402413
- A **production reference gateway** (TypeScript, a 128-test suite, all passing) with adapters for
403414
static/computed, Kepler/Prometheus, Climatiq, CO2.js and the carbon.txt hosted API

0 commit comments

Comments
 (0)