{"id":28469225,"url":"https://github.com/firelyteam/firely-terminal-pipeline","last_synced_at":"2026-05-24T06:02:51.504Z","repository":{"id":53060396,"uuid":"341853868","full_name":"FirelyTeam/firely-terminal-pipeline","owner":"FirelyTeam","description":"Run Firely.Terminal as GitHub Actions","archived":false,"fork":false,"pushed_at":"2026-03-20T23:45:54.000Z","size":563,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-03-21T14:52:41.333Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FirelyTeam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-02-24T09:55:35.000Z","updated_at":"2026-03-20T23:45:23.000Z","dependencies_parsed_at":"2026-01-08T10:03:19.945Z","dependency_job_id":null,"html_url":"https://github.com/FirelyTeam/firely-terminal-pipeline","commit_stats":null,"previous_names":[],"tags_count":216,"template":false,"template_full_name":null,"purl":"pkg:github/FirelyTeam/firely-terminal-pipeline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FirelyTeam%2Ffirely-terminal-pipeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FirelyTeam%2Ffirely-terminal-pipeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FirelyTeam%2Ffirely-terminal-pipeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FirelyTeam%2Ffirely-terminal-pipeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FirelyTeam","download_url":"https://codeload.github.com/FirelyTeam/firely-terminal-pipeline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FirelyTeam%2Ffirely-terminal-pipeline/sbom","scorecard":{"id":50504,"data":{"date":"2025-08-11","repo":{"name":"github.com/FirelyTeam/firely-terminal-pipeline","commit":"ab1e5dedc0238899f54d8100098741a88b4951ec"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.4,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 0/10 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/update_firelyterminal.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/FirelyTeam/firely-terminal-pipeline/update_firelyterminal.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/update_javavalidator.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/FirelyTeam/firely-terminal-pipeline/update_javavalidator.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/update_sushi.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/FirelyTeam/firely-terminal-pipeline/update_sushi.yml/main?enable=pin","Info:   0 out of   3 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/update_firelyterminal.yml:1","Warn: no topLevel permission defined: .github/workflows/update_javavalidator.yml:1","Warn: no topLevel permission defined: .github/workflows/update_sushi.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T23:37:34.727Z","repository_id":53060396,"created_at":"2025-08-14T23:37:34.727Z","updated_at":"2025-08-14T23:37:34.727Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31683003,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-07T08:30:56.885Z","updated_at":"2026-04-11T14:07:39.336Z","avatar_url":"https://github.com/FirelyTeam.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# firely-terminal-pipeline\nRun [Firely Terminal](https://fire.ly/products/firely-terminal/), and optionally the Java Validator too, as GitHub Actions on your FHIR GitHub repository. Validate conformance resource and examples against the FHIR specification and [your custom business rules](https://fire.ly/2021/03/04/quality-control-how-to-validate-full-fhir-specifications-in-one-click/) on every commit and pull request.\n\u003cimg align=\"right\" width=\"40%\" src=\"illustration_firely_terminal.png\"\u003e\n\nExample setup can be found on [this project](https://github.com/FirelyTeam/fhir-specification-template-repository):\n* Copy the contents of or download [this example `main.yml` setup file](https://github.com/FirelyTeam/fhir-specification-template-repository/blob/main/.github/workflows/main.yml).\n* Add the contents to a `main.yml` file in your GitHub repository in the `.github/workflows` folder.\n* You should now see the pipeline on your Actions tab and it should run on every push or pull request to the `main` or `master` branch. This can be configured in the yml file.\n\nYou can add a badge to your repository with the current pipeline status:\n* Go to the Actions tab on your repository\n* Select the Firely Validation pipeline\n* Select the three dots and click 'Create status badge'\n* Paste this code in the beginning of your `README.md` file.\n\n## Input (FHIR Conformance resources)\n\nThe Firely Terminal Pipeline allows to validate all FHIR conformnce resources and corresponding examples.\nThe pipeline expects the following content to be present in the repository:\n\n* package.json containing all dependencies of the project (required, root-level of the project)\n* project.yaml containing [canonical claims](https://docs.fire.ly/projects/Simplifier/simplifierCanonicalClaims.html) (optional, root-level of the project)\n* A folder containing all terminology resources (optional, path can be configured. See PATH_TO_CONFORMANCE_RESOURCES)\n* A folder containing all StructureDefinitions (optional, path can be configured. See PATH_TO_CONFORMANCE_RESOURCES)\n* A folder containing all examples (optional, path can be configured. See PATH_TO_EXAMPLES)\n\n## Options\n\nYou can specify the following options using the [\"with\" syntax](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstepswith) in your GitHub Actions yml configuration:\n\n* PATH_TO_CONFORMANCE_RESOURCES:\n    - description: 'Relative paths of the folder(s) containing FHIR Conformance resources (StructureDefinition, ValueSet, CodeSystem).'\n    - required: true\n* PATH_TO_EXAMPLES:\n    - description: 'Relative paths of the folder(s) containing examples for the FHIR Conformance resources defined by the project'\n    - required: false\n* PATH_TO_QUALITY_CONTROL_RULES:\n    - description: 'Relative path pointing to Quality Control rules. Path MUST not include the .rules.yaml part of the file. Runs minimal.rules.yaml by default.'\n    - required: false\n* DOTNET_VALIDATION_ENABLED:\n    - description: 'Boolean flag to run the .NET validator to validate conformance resources and examples'\n    - required: false\n    - default: true\n* JAVA_VALIDATION_ENABLED:\n    - description: 'Boolean flag to run the offical HL7 Java validator to validate conformance resources and examples'\n    - required: false\n    - default: false\n* EXPECTED_FAILS:\n    -  description: Specify which steps in your validation workflow are expected to fail due to possible bugs in the validator(s). Allowed values: 'VALIDATION_CONFORMANCE_DOTNET', 'VALIDATION_CONFORMANCE_JAVA', 'VALIDATION_EXAMPLES_JAVA'\n    -  required: false\n * JAVA_VALIDATION_OPTIONS:\n   - description: 'Custom options passed to the Java validator. See https://confluence.hl7.org/display/FHIR/Using+the+FHIR+Validator'\n   - default: '-output-style compact'\n   - required: false\n * SIMPLIFIER_USERNAME:\n   - description: 'Simplifier email address (not username), needed for running Quality Control checks. Please use GitHub Secrets for this variable.'\n   - required: true\n * SIMPLIFIER_PASSWORD:\n   - description: 'Simplifier password, needed for running Quality Control checks. Please use GitHub Secrets for this variable.'\n   - required: true\n * SUSHI_ENABLED:\n   - description: 'Boolean flag to run fsh-sushi on the current repository to generated conformance resources based on FHIR shorthand'\n   - required: false\n   - default: false\n * SUSHI_VERSION:\n   - description: 'Version of SUSHI used for compiling the FSH files'\n   - default: '3.17.0'\n   - required: true\n * SUSHI_OPTIONS:\n   - description: 'Custom options passed to SUSHI. See https://www.npmjs.com/package/fsh-sushi'\n   - required: false\n * SUSHI_USE_CONFIG_DEPENDENCIES:\n   - description: 'When SUSHI is enabled, use dependencies from sushi-config.yaml instead of package.json. If sushi-config.yaml exists and package.json does not, this will automatically convert sushi-config.yaml to package.json.'\n   - required: false\n   - default: true\n * FIRELY_TERMINAL_VERSION:\n   - description: 'Version of Firely Terminal used for .NET-based validation'\n   - default: '3.5.0'\n   - required: true\n * FIRELY_TERMINAL_VALIDATOR_ENGINE:\n   - description: 'Optional: Firely Terminal validator engine to use for .NET validation. From Firely Terminal 3.5.0 onwards, the default validator engine changed. Use \"netsdk\" to use the old validator engine from pre-3.5.0 versions. Available options: Firely, netsdk. If not specified, Firely Terminal uses its built-in default.'\n   - required: false\n * JAVA_VALIDATOR_VERSION:\n   - description: 'Version of org.hl7.fhir.core library used for Java-based validation'\n   - default: '6.8.1'\n   - required: true\n* JAVA_VALIDATOR_DOWNLOAD_LOCATION:\n    description: 'URL from which to download the Java validator JAR'\n    default: 'https://github.com/hapifhir/org.hl7.fhir.core/releases/download/$JAVA_VALIDATOR_VERSION/validator_cli.jar'\n * CLOSE_SLICING_FOR_VALIDATION:\n   - description: 'Constrains all defined element slicings to closed, ensuring that instance elements must conform to one of the declared slices. This strengthens validation by preventing acceptance of elements that do not match the defined slicing discriminators.'\n   - default: false\n   - required: false\n\n## Changelog\n\n### v0.6.0 - 2025-01-01\n\n- Feature: Upgrade SUSHI to v3.14.0\n\n### v0.5.0 - 2024-12-26\n\nThis version is beside the fix mentioned below identical to v0.4.7. Due to the previously removed and changed options, the last release should have been released as v0.5.0 already. Sorry!\n\n- Fix: Adjusted color for \"All OK\" output\n\n### v0.4.7 - 2024-12-26\n\n- Feature: Upgrade SUSHI to v3.13.1\n- Feature: Upgrade Java validator to v6.5.2\n- Feature: Added JAVA_VALIDATOR_DOWNLOAD_LOCATION as an input variable to specify from where to download the Java validator .jar\n- Feature: Use '-output-style compact' as the default for JAVA_VALIDATION_OPTIONS. This enhances the readability of the log. It's recommended to include this in case JAVA_VALIDATION_OPTIONS get overridden by a local config\n- Feature: Use colors to highlight \"Error\", \"Warning\", \"Information\" messages in the output of the Java validator\n- Changed: Remove OUTPUT_FORMAT variable, use '-output-style compact' instead\n\n### v0.4.6 - 2024-12-12\n\n- Feature: Upgrade Java validator to v6.5.0\n\n### v0.4.5 - 2024-11-25\n\nHotfix for v0.4.4 which accidentally increased the SUSHI version to v3.12.2 which doesn't exist (yet)\n\n### v0.4.4 - 2024-11-25\n\n- Feature: Upgrade Firely Terminal to v3.3.2\n- Feature: Upgrade Java validator to v6.4.4\n- Feature: Upgrade SUSHI to v3.12.2\n\n### v0.4.3 - 2024-10-18\n\n- Feature: Upgrade Firely Terminal to v3.2.0\n- Feature: Upgrade Java validator to v6.3.32\n- Feature: Upgrade SUSHI to v3.12.0\n\n### v0.4.2 - 2024-06-05\n\n- Feature: Upgrade Java validator to v6.3.14\n- Feature: Upgrade SUSHI to v3.11.0\n\n### v0.4.1 - 2024-03-18\n\n- Feature: Upgrade Firely Terminal to v3.1.0\n- Feature: Upgrade Java validator to v6.3.1\n- Feature: Upgrade SUSHI to v3.8.0\n\n### v0.4.0 - 2023-02-20\n\n- Feature: Upgrade Java validator to v5.6.98\n- Feature: Remove 1 by 1 validation with .NET validator in favor for Simplifier Quality Control\n\n### v0.3.5 - 2022-09-22\n\n- Fix: Always execute fhir restore if SUSHI is enabled\n- Fix: Run SUSHI before validation\n- Fix: Only install Firely Terminal if it's not already installed\n- Feature: Add FIRELY_TERMINAL_VERSION, JAVA_VALIDATOR_VERSION, SUSHI_VERSION as options\n- Feature: Upgrade Firely Terminal to v3.0.0\n- Feature: Upgrade Java validator to v5.6.65\n- Feature: Upgrade SUSHI to v2.7.0\n\n### v0.3.4 - 2022-06-01\n\n- Feature: Upgrade SUSHI to v2.5.0\n\n### v0.3.3 - 2022-03-30\n\n- Fix: Only load XML and JSON files in Java validator\n- Fix: Check fhirVersion in package.json and execute fhir spec\n- Feature: Upgrade Java validator to v5.6.39\n\n### v0.3.2 - 2022-01-26\n\n- Feature: Upgrade Firely.Terminal to v2.5.0-beta-7\n- Feature: Upgrade Java validator to v5.6.27\n- Feature: Upgrade SUSHI to v2.2.6\n\n### v0.3.1 - 2021-12-08\n\n- Feature: Upgrade Firely.Terminal to v2.5.0-beta-4\n\n### v0.3.0 - 2021-11-25\n\n- Feature: Add SUSHI_ENABLED and SUSHI_OPTIONS options\n- Feature: Add option to push resource without subfolders\n- Feature: Update to Firely.Terminal v2.5.0-beta-2\n- Feature: Update Java validator to v5.6.0\n\n### v0.2.1 - 2021-06-26\n- Feature: Upgrade Java validator to version 5.4.6\n\n### v0.2.0  - 2021-06-23\n- Feature: Enable Quality Control if DOTNET_VALIDATION_ENABLED is enabled. A Simplifier Login is required to use this feature. See SIMPLIFIER_USERNAME and SIMPLIFIER_PASSWORD option.\n- Feature: Upgrade Java validator to version 5.4.5\n\n### v0.1.0-beta2 - 2021-04-22\n- Feature: Upgrade Java validator to version 5.3.11\n\n### v0.1.0-beta1 - 2021-04-14\n- Feature: Upgrade Java validator to version 5.3.9\n\n### Intital Release - 2021-04-08\n    \n## Known Issues\n- PATH_TO_EXAMPLES is currently not supported in combination with DOTNET_VALIDATION_ENABLED. The .NET part will currently ignore examples.\n- All folders in PATH_TO_CONFORMANCE_RESOURCES are currently validated individually in the Java validator. Each folders therefore is validated in it's own context with no access to the other folders\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirelyteam%2Ffirely-terminal-pipeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffirelyteam%2Ffirely-terminal-pipeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffirelyteam%2Ffirely-terminal-pipeline/lists"}