ADR-0008: Canonical URLs on univip.org and website generationLink to the section ADR-0008: Canonical URLs on univip.org and website generation
On this page
Status: Accepted 2026-10-14; decision 4 superseded by ADR-0009 on 2026-10-15 Date: 2026-10-14 Profiles affected: all (identifiers only; no behavioral change)
Notes (2026-10-15): Decision 1 gives the identifiers as they were for spec 0.1; spec 0.2.0-draft moved them to
https://univip.org/schemas/v0.2/<kind>.schema.jsonunder decision 5. ADR-0009 replaces decision 4 (MkDocs and GitHub Pages) with a Vite build hosted on Cloudflare, and with it the GitHub Pages consequences below. These notes change nothing else in this decision.
ContextLink to the section Context
The project sponsor purchased univip.org on 2026-10-14. Until then schema identifiers used URNs (urn:univip:schema:v0.1:<kind>) so that no domain was claimed before one existed. A real domain allows stable, dereferenceable identifiers and a website generated from the repository.
DecisionLink to the section Decision
- Schema
$ids arehttps://univip.org/schemas/v0.1/<kind>.schema.json. Cross-references use these URLs. Theschemamember inside messages keeps the short formunivip.<kind>.vX.Y; it is a name, not a URL. - The website publishes each schema at exactly its
$id, the OpenAPI document athttps://univip.org/api/v1/univip-v1.openapi.yaml, and the specification athttps://univip.org/spec/<version>/.... - Implementations MUST NOT fetch schemas at runtime to validate messages; they ship the schemas they were tested with. The URLs are identifiers and documentation locations, not a runtime dependency. The reference validator preloads a local registry.
- The website is generated from this repository by CI (MkDocs, configuration in
site/), deployed to GitHub Pages with the custom domainunivip.org. The repository stays the single source of truth; nothing is edited on the website directly. - Versioning: a new MINOR schema version gets a new directory (
/schemas/v0.2/); existing URLs never change content once a version is tagged Stable.
ConsequencesLink to the section Consequences
- One-time edit of every
$idand$ref(done in the same commit as this ADR).tools/validate.pyis unaffected because it keys the registry on$id. - DNS for
univip.orgmust point at GitHub Pages (A/AAAA records for the apex and awwwCNAME) and HTTPS enforced in the repository's Pages settings. This is a one-time manual step for the repository owner;site/README.mdlists the records. - The MIME type for
.schema.jsonon GitHub Pages isapplication/json, which is acceptable;application/schema+jsonis preferred and can be set if hosting moves.