Skip to content

Releases: metaschema-framework/oscal-cli

v3.0.0

12 Jan 04:40

Choose a tag to compare

✨ Highlights

  • Namespace Migration to dev.metaschema (#219) - All Java packages have been migrated from gov.nist.secauto.* to dev.metaschema.* to align with upstream namespace changes. This is a breaking change for anyone extending or embedding the CLI.

  • Shell Completion Support (#227) - The CLI now supports generating shell completion scripts for bash and zsh, enabling tab completion for commands and options.

  • OCI Container Image (#208) - Official multi-architecture container images are now available, making it easy to run the CLI in containerized environments without local installation.

  • Comprehensive Documentation (#228) - Major documentation expansion including installation guides, building from source, CLI reference, and integration guides.

  • Upstream Improvements - This release incorporates significant improvements from metaschema-java v3.0.0.M2 and liboscal-java v7.0.0, including enhanced constraint validation, performance improvements, and bug fixes.

⚠️ Breaking Changes

Package Namespace Migration

All Java packages have been migrated to align with upstream changes:

  • gov.nist.secauto.metaschema.*dev.metaschema.*
  • gov.nist.secauto.oscal.*dev.metaschema.oscal.*

Migration: Update all import statements if you are extending or embedding the CLI.

(#219) by @david-waltermire

✨ New Features

  • Shell completion - Generate bash/zsh completion scripts with oscal-cli shell-completion (#227) by @david-waltermire
  • SARIF findings - Detailed SARIF findings in security scan summaries (#223) by @david-waltermire
  • OCI container image - Build and run the CLI in Docker containers (#208) by @aj-stein
  • Parallel validation (experimental) - New --threads N option enables concurrent constraint validation on multi-core systems for improved performance on large documents (metaschema-java#560)

🐛 Bug Fixes

From metaschema-java v3.0.0.M2

From liboscal-java v7.0.0

  • Support field nodes in has-oscal-namespace function, returning FALSE instead of throwing an exception (liboscal-java#233)
  • Make ComponentDefinition and MappingCollection implement IOscalInstance to fix ClassCastException with fragment references (liboscal-java#226)
  • Update for OSCAL 1.2.0 model compatibility using ProfileMatching for control selection (liboscal-java#223)

📚 Documentation Improvements

🔧 Build & CI Improvements

📦 Dependency Updates

Java Libraries

  • org.junit:junit-bom: 6.0.1 → 6.0.2 (#220)

Maven Plugins

  • org.sonatype.central:central-publishing-maven-plugin: 0.9.0 → 0.10.0 (#222)
  • org.codehaus.mojo:license-maven-plugin: 2.7.0 → 2.7.1 (#218)

GitHub Actions

  • github/codeql-action: 4.31.7 → 4.31.9 (#205, #211)
  • actions/upload-artifact: 5.0.0 → 6.0.0 (#209)

Core Dependencies

  • metaschema-java: 3.0.0.M1 → 3.0.0.M2
  • liboscal-java: 6.0.0 → 7.0.0

v2.6.0

14 Dec 19:35

Choose a tag to compare

Download the OSCAL CLI tool. (GPG Signature)

This major release brings OSCAL 1.2.0 support and upgrades to metaschema-java 3.0.0.M1 and liboscal-java 6.0.0, along with a new --pretty-print option for profile resolution and CI/CD improvements.

✨ Highlights

  • OSCAL 1.2.0 Support: Updated to the latest OSCAL model with full compatibility
  • New --pretty-print option: Format profile resolution output for XML, JSON, and YAML files
  • metaschema-java 3.0.0.M1: Major framework upgrade with improved module loading and exception handling
  • liboscal-java 6.0.0: Updated to latest OSCAL library
  • Improved CI/CD: Added workflow concurrency control and scheduled nightly builds

⚠️ Breaking Changes

metaschema-java 3.0.0.M1 Migration

This release requires migrating to the new metaschema-java 3.0.0.M1 APIs. See the metaschema-java v3.0.0.M1 release notes for complete details.

Dependency Previous Version New Version
metaschema-java 2.2.0 3.0.0.M1
liboscal-java 5.2.1 6.0.0

API Changes

The IBindingContext.registerModule() method signature changed in metaschema-java 3.0.0 to throw a checked MetaschemaException. Error handling has been improved to provide more descriptive error messages and proper exit codes when module registration fails.

✨ New Features

🔧 Build & CI Improvements

  • Added concurrency configuration to cancel in-progress workflow runs on new commits (#206)
  • Added scheduled nightly builds at 4:00 AM UTC (#206)
  • Removed deprecated --exclude-mail flag from lychee-action (#194)

What's Changed

Features

Core Changes

Build & CI

Full Changelog: v2.5.1...v2.6.0

📦 Dependency Updates

Java Libraries

  • gov.nist.secauto.metaschema:metaschema-java: 2.2.0 → 3.0.0.M1 (#204, #207)
  • gov.nist.secauto.oscal:liboscal-java: 5.2.1 → 6.0.0 (#204, #207)
  • commons-io:commons-io: 2.18.0 → 2.21.0 (#195)
  • org.json:json: 20250107 → 20250517 (#153)
  • org.junit:junit-bom: 5.12.1 → 6.0.1 (#199)
  • org.apache.logging.log4j:log4j-bom: 2.24.3 → 2.25.2 (#180)
  • org.xmlresolver:xmlresolver: 6.0.14 → 6.0.19 (#203)
  • org.fusesource.jansi:jansi: 2.4.1 → 2.4.2
  • com.github.erosb:everit-json-schema: 1.14.5 → 1.14.6

Maven Plugins

  • org.codehaus.mojo:license-maven-plugin: 2.5.0 → 2.7.0 (#179)
  • org.sonatype.central:central-publishing-maven-plugin: updates (#181)
  • io.github.git-commit-id:git-commit-id-maven-plugin: updates (#157)
  • me.fabriciorby:maven-surefire-junit5-tree-reporter: updates (#202)

GitHub Actions

  • actions/checkout: 4.2.2 → 6.0.1 (#168, #197)
  • actions/setup-java: 4.7.1 → 5.1.0 (#170, #201)
  • actions/upload-artifact: 4.6.2 → 5.0.0 (#196)
  • actions/github-script: 7.0.1 → 8.0.0 (#175)
  • github/codeql-action: 3.28.17 → 4.31.8 (#191, #200, #205)
  • peter-evans/create-issue-from-file: 5.0.1 → 6.0.0 (#198)
  • lycheeverse/lychee-action: 2.4.1 → 2.7.0 (#190)

v2.5.1

16 May 13:34

Choose a tag to compare

Download the OSCAL CLI tool. (GPG Signature)

This patch release incorporates the liboscal-java 5.2.0 patch and build environment updates.

What's Changed

New Contributors

Full Changelog: v2.5.0...v2.5.1

v2.5.0

06 Apr 15:50

Choose a tag to compare

Download the OSCAL CLI tool. (GPG Signature)

This minor release incorporates feature improvements and bug fixes from metaschema-framework/metaschema-java v2.2.0 and metaschema-framework/liboscal-java v5.2.0.

The OSCAL version used by this tool is v1.1.3.

New and Noteworthy

Important Bug Fixes

  • Ensured that controls defined at the catalog level are not duplicated during profile resolution. This fixes a bug (#60) caused during the import handling phase of profile resolution, which was "promoting" controls defined at the catalog level, causing a second copy of the control to be added. This was fixed by making controls at the catalog level always eligible for selection. Supported by metaschema-framework/liboscal-java#92.
  • Added missing functionality for the DEBUG constraint level adderessing bug #92, based on metaschema-framework/metaschema-java#307.

What's Changed

Full Changelog: v2.4.0...v2.5.0

v2.4.0

26 Nov 18:27

Choose a tag to compare

Download the OSCAL CLI tool. (GPG Signature)

This minor release incorporates feature improvements and bug fixes from metaschema-java.

The OSCAL version used by this tool has been updated to v1.1.3.

What's Changed

Full Changelog: v2.3.1...v2.4.0

v2.3.1

09 Nov 22:06

Choose a tag to compare

Download the OSCAL CLI tool. (GPG Signature)

This patch release incorporates bug fixes from metaschema-java.

What's Changed

  • Add unit tests for a bug causing error messages to be silently dropped by @david-waltermire in #69

Full Changelog: v2.3.0...v2.3.1

v2.3.0

04 Nov 02:47

Choose a tag to compare

Download the OSCAL CLI tool. (GPG Signature)

This minor release integrates changes from metaschema-framework/metaschema-java v2.0.0. A major release was chosen here since this release only adds functionality to and fixes bugs in the CLI.

This release fixes #67 based on metaschema-java changes. See metaschema-framework/metaschema-java#232.

What's Changed

Full Changelog: v2.2.0...v2.3.0

v2.2.0

08 Oct 23:52

Choose a tag to compare

Download the OSCAL CLI tool. (GPG Signature)

Changelog

What's Changed

Full Changelog: v2.1.0...v2.2.0

v2.1.0

16 Sep 16:52

Choose a tag to compare

Download the OSCAL CLI tool. (GPG Signature)

What's new

This minor release adds the oscal-cli list-allowed-values command, which lists all allowed values constraints associated with a given node in the OSCAL model graph.

usage: oscal-cli list-allowed-values [<options>] [<destination-file>]
 -c <URL>                additional constraint definitions
 -h,--help               display this help message
    --no-color           do not colorize output
    --overwrite          overwrite the destination if it exists
 -q,--quiet              minimize output to include only errors
    --show-stack-trace   display the stack trace associated with an error
    --version            display the application version

This release also adds new commands under the oscal-cli metaschema command path, which are provided by metaschema-java.

These include:

  • oscal-cli metaschema metapath eval
  • oscal-cli metaschema generate-diagram

Additionally, all content validation commands now allow you to disable schema or constraint validation using arguments.

--disable-constraint-validation   do not perform constraint validation
--disable-schema-validation       do not perform schema validation

What's Changed

New Contributors

Full Changelog: v2.0.2...v2.1.0

v2.0.2

20 Aug 13:28

Choose a tag to compare

Download the OSCAL CLI tool. (GPG Signature)

What's Changed

Full Changelog: v2.0.1...v2.0.2