Skip to content

Publish Blaze IG at blaze-server.org/fhir and Make Canonicals Resolvable #3743

Description

@alexanderkiel

Background

With #3730, all Blaze-minted FHIR canonicals move to the https://blaze-server.org/fhir base (the domain currently serving the GitHub Pages site). A canonical URL is primarily an identity — the FHIR spec recommends, but does not require, that it be dereferenceable. #3730 only mints the identities; this issue tracks actually publishing the IG so those canonicals resolve.

This is a hosting/ops follow-up with no impact on the Clojure code: nothing in #3730 blocks it, and it can land independently.

Goal

Make the Blaze FHIR artifacts resolvable under https://blaze-server.org/fhir, in both senses:

  1. For tooling — publish the IG as an npm-style FHIR package (…/fhir/package.tgz) and ideally register it with packages.fhir.org. Validators and dependent IGs resolve canonicals from the package, not by dereferencing each URL. GitHub Pages serves the package file fine.
  2. For humans/clients — dereferencing e.g. https://blaze-server.org/fhir/StructureDefinition/Job returns the artifact.

Notes / constraints

  • The repo currently only runs SUSHI (FSH → fsh-generated) + the FHIR validator. Publishing a browsable IG requires adding the HL7 IG Publisher step, which emits index.html, the artifact registry, and per-artifact pages StructureDefinition-Job.html / StructureDefinition-Job.json (note the hyphen).
  • The canonical path uses a slash (/fhir/StructureDefinition/Job), which does not match the hyphenated output file and 404s on plain GitHub Pages. Making canonicals dereference needs either:
    • static redirects — a file at /fhir/StructureDefinition/Job/index.html redirecting to the hyphenated artifact (works on GitHub Pages; can be generated), or
    • edge content negotiation — front the domain with Cloudflare (Worker/Page Rule) to serve .json for Accept: application/fhir+json and .html otherwise. Plain GitHub Pages cannot do Accept-based negotiation.

Decision to make

blaze-server.org/fhir can be the IG publication or a live FHIR base, but not both at the same URL on static hosting. Decide upfront:

  • IG publication only at blaze-server.org/fhir (GitHub Pages + redirects), or
  • also a live demo Blaze server, which would need its own host — e.g. a subdomain (fhir.blaze-server.org for the live server, keeping blaze-server.org/fhir for the IG, or vice-versa).

Scope

  • Add the HL7 IG Publisher build step for modules/ig and a GitHub Pages publish workflow targeting /fhir.
  • Publish the FHIR package (package.tgz); optionally register with packages.fhir.org.
  • Make canonical paths dereference — static redirects, or Cloudflare in front for Accept-based content negotiation.
  • Decide whether blaze-server.org/fhir is IG-only or whether a live demo server warrants a subdomain.

Relates to

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions