Summary
Several GitHub Actions workflows reach out to the public HL7 test terminology server tx.fhir.org during their build/test runs. Now that we operate our own terminology server at hfs.heliossoftware.com, CI should target our server instead of the shared public test instance.
Hitting tx.fhir.org from CI is undesirable because it:
- creates a hard dependency on a third-party test environment that is rate-limited, occasionally unreachable, and not under our control (workflows already contain "probe availability / skip if down" workarounds);
- puts load on a community-shared test server; and
- means our conformance/comparison baselines drift with whatever content tx.fhir.org happens to have loaded server-side.
Where tx.fhir.org is used today
.github/workflows/audit-events.yml (~line 726): passes --tx-base-url https://tx.fhir.org/r5 to the audit validator.
.github/workflows/hts.yml (integration-test job, ~lines 102/105 and throughout the comparison steps): uses tx_base: https://tx.fhir.org/r4 and https://tx.fhir.org/r5 as the "source of truth" to compare every HTS operation ($validate-code, $expand, $subsumes, $translate, etc.) against. Includes availability probes that skip tx comparisons when the server is unreachable.
Not affected (already local)
.github/workflows/hts-ig-conformance.yml already runs the validator against a local HTS instance (-tx "http://localhost:$HTS_PORT"). The tx.fhir.org strings in that file are only comments explaining upstream-gated / ignored test cases — no live calls. Listed here so it isn't conflated with the above.
Proposed work
Notes / open questions
- Verify the exact base-URL/version-path convention our server exposes (
/r4, /r5, etc.) before swapping the strings.
- Some
hts.yml comparisons assume tx.fhir.org's exact expansion totals/displays; once we control the source server we may be able to turn the conditional "skip if unavailable" comparisons into hard assertions.
Summary
Several GitHub Actions workflows reach out to the public HL7 test terminology server
tx.fhir.orgduring their build/test runs. Now that we operate our own terminology server athfs.heliossoftware.com, CI should target our server instead of the shared public test instance.Hitting
tx.fhir.orgfrom CI is undesirable because it:Where
tx.fhir.orgis used today.github/workflows/audit-events.yml(~line 726): passes--tx-base-url https://tx.fhir.org/r5to the audit validator..github/workflows/hts.yml(integration-test job, ~lines 102/105 and throughout the comparison steps): usestx_base: https://tx.fhir.org/r4andhttps://tx.fhir.org/r5as the "source of truth" to compare every HTS operation ($validate-code, $expand, $subsumes, $translate, etc.) against. Includes availability probes that skip tx comparisons when the server is unreachable.Not affected (already local)
.github/workflows/hts-ig-conformance.ymlalready runs the validator against a local HTS instance (-tx "http://localhost:$HTS_PORT"). Thetx.fhir.orgstrings in that file are only comments explaining upstream-gated / ignored test cases — no live calls. Listed here so it isn't conflated with the above.Proposed work
audit-events.yml's--tx-base-urlat our terminology server (https://hfs.heliossoftware.com/...) with the correct version path.hts.yml'stx_basematrix values (R4/R5) to our server, and revisit the availability-probe / skip logic now that the endpoint is one we control.hfs.heliossoftware.comhas the terminology content these comparisons require loaded (UTG, FHIR core code systems/value sets per version) so the baselines remain meaningful.tx.fhir.organd migrate them too.Notes / open questions
/r4,/r5, etc.) before swapping the strings.hts.ymlcomparisons assume tx.fhir.org's exact expansion totals/displays; once we control the source server we may be able to turn the conditional "skip if unavailable" comparisons into hard assertions.