Skip to content

staging → main: the dpp-web audit remediation - #18

Open
LKSNDRTMLKV wants to merge 24 commits into
mainfrom
staging
Open

staging → main: the dpp-web audit remediation#18
LKSNDRTMLKV wants to merge 24 commits into
mainfrom
staging

Conversation

@LKSNDRTMLKV

Copy link
Copy Markdown
Member

Integration branch for the 2026-08 audit remediation. This is the promotion gatemain is what Cloudflare Pages publishes, so nothing reaches production without passing through here first.

Contains every branch from PRs #10, #13, #14, #15, #16 and #17, plus two CI fixes that could not be made on the individual branches. Each of those PRs remains open as the per-topic review record; this one is the thing that ships.

What changes for a reader of the site

  • An ESPR electronics delegated act that does not exist — with an adoption date, an effective date, four named product classes and two compliance windows — is off the site. One of its sentences told a named class of manufacturer they were already in breach of it.
  • Roughly twenty regulatory citations now match the Official Journal: the recycled-content annex, an invented A–E carbon-footprint class, the battery category set, the back-up-copy article, the retention figure ESPR does not state, and the construction, detergent and toy dates.
  • Four security-property claims now match the engine: the sandbox grants a pinned clock and OS randomness rather than denying both, the engine does hash on its own account, the database role holds one sanctioned DELETE grant, and nothing switches a determination on by date.
  • The registry is described as live, which it has been since 20 July 2026 — together with the two blockers that still stand between that and a registration succeeding.
  • The conformance claim against standards nobody here has read is retracted, and says why.
  • Licensing is published, without a restated dependency-licence table that had been wrong since 2024.

What changes for CI

Four gates, each tested against a known-bad input before being trusted: a link crawler over the built output, a leakage scan covering public/, an API-spec drift check, and a dependency audit. The workflow token is scoped to read-only.

The two CI fixes made here

The spec check was tied to another repo's moving main. That deadlocks any coordinated change — the web side cannot go green until the engine side merges, so neither can be reviewed on a green build — and lets an unrelated engine merge redden pull requests here. The vendored spec is now pinned to an explicit engine commit recorded in openapi-source.json, so the check is deterministic and self-contained, and bumping the pin is a reviewable line in a diff. A separate non-blocking step reports how far the pin is behind, because "the published spec is old" was the original finding and must stay visible.

A resync of an unmerged upstream change was reverted. The credential-standard correction belongs entirely to dpp-engine #140. It comes back here when that merges, via a pin bump.

Verification on this branch

pnpm -r build green · pnpm -r check 0 errors / 0 warnings / 5 hints · 824 internal links across 44 pages resolve · leakage clean · spec matches the pin · pnpm audit --audit-level critical passes.

Searched the built output for every retracted claim — 18 March 2026, 1 April 2026, foldable, Annex X minimum, no system clock, cannot delete rows, maintained conformance matrix, remains unpublished — zero files each.

Still open, deliberately

  • The privacy policy names no data controller. GDPR Art. 13(1)(a) requires one. Blocked on a registered entity existing; not something a copy edit reaches.
  • proxyUrl was verified statically, not at runtime. It stops the API reference relaying requests through a third party, and the claim is a privacy one — worth confirming in a browser before launch.
  • i18n (feat(landing,docs): i18n foundation, content de-dup, and de/it/fr/es #11) merges after this, so regulatory prose is corrected before it is translated into five locales.

ESPR Article 10 is Requirements for the digital product passport and defines no tiers; access is Art. 11(b), free of charge, with the actor-to-data mapping delegated per product group under Art. 9(2)(f) and no such act adopted yet, so the public Public/Restricted/Private tier page was wrong at its premise and is replaced by the Battery Art. 77(2) lattice plus the constraints common to every regime.
…ate per-passport-per-day count with no scanner-identifying field
…ng a removed product-category schema and an internal decision-record reference from published content
…d act that does not exist, and correct the ESPR sector table's electronics basis and unsold-goods article
…ne, and give the docs site the headers and robots file the landing site already had
# Conflicts:
#	site/dpp-docs/src/content/docs/regulatory/electronics.mdx
…istry status and access vocabulary against primary text and engine source
…retract the unverified standards-conformance claim, and correct the remaining landing and roadmap claims
…ocial config and the deprecated zod re-export
…ft check is deterministic and cross-repo changes are not deadlocked
…ected credential-standard version"

This reverts commit ec48fe3.
# Conflicts:
#	site/dpp-docs/src/content/docs/regulatory/electronics.mdx
# Conflicts:
#	.github/workflows/ci.yml
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying odal-node-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9a4c526
Status: ✅  Deploy successful!
Preview URL: https://62ea8bdf.odal-node-docs.pages.dev
Branch Preview URL: https://staging.odal-node-docs.pages.dev

View logs

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying odal-node-landing with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9a4c526
Status: ✅  Deploy successful!
Preview URL: https://c3c1b4dd.odal-node-landing.pages.dev
Branch Preview URL: https://staging.odal-node-landing.pages.dev

View logs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant