โ† All docs  ยท  Home

ADR 0020 โ€” Canonical domain: freedback.net

Context

The protocol's IRIs โ€” the freedback: namespace, the @context URL, and the dcterms:conformsTo profile โ€” were pinned under a freedback.org base that the project did not own (and freedback.org was never verified at a registrar). freedback.dev is taken by an unrelated dormant npm homonym (docs/naming.md). The owner has now registered freedback.net.

Because only id and signature are stripped before canonicalization (canonical.rs), the @context URL and conformsTo value are part of the RFC 8785 bytes that are hashed (dedup id) and signed. The base domain is therefore content-affecting: it is cheap to change now (nothing is released) and expensive later (stable-URL policy). This is the moment to set it.

Decision

Adopt freedback.net as the single canonical base everywhere:

The committed browser-signed interop fixture (widget-signed.json) was regenerated with the widget's own ES256 signer over the new bytes (a fresh test keypair), since the old signature was over freedback.org bytes.

Consequences