Skip to content

Commit

Permalink
Document where to find OSCAL-specific custom metaschema functions not…
Browse files Browse the repository at this point in the history
… in metaschema java (#41)

* [skip ci] Document custom fns location for #40

* Change paths to external docs, using absolute URLs, to address PR feedback

* [skip ci] Point to main, not develop, for fn docs per review feedback

Co-authored-by: David Waltermire <davewaltermire@gmail.com>

---------

Co-authored-by: David Waltermire <davewaltermire@gmail.com>
  • Loading branch information
aj-stein-gsa and david-waltermire authored Oct 4, 2024
1 parent 20b7a77 commit 1200e43
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,18 @@ Note: One or more pull requests must be submitted addressing all user story goal

## Communications mechanisms

You can contact the maintainers of this project at [maintainers@metaschema.dev](mailto:maintainers@metaschema.dev) if you are interested in contributing to the development of this project or exchanging ideas.
You can contact the maintainers of this project at [maintainers@metaschema.dev](mailto:maintainers@metaschema.dev) if you are interested in contributing to the development of this project or exchanging ideas.

## Developer information

### Core metaschema functions and custom project functions

The Metaschema [specification](https://pages.nist.gov/metaschema/specification/syntax/metapath/) and the conformant [metaschema-java](https://github.com/metaschema-framework/metaschema-java/tree/main/CONTRIBUTING.md#core-metaschema-functions-functions) library implement the Metapath functions required by the specification. However, other libraries, such as this [this project's library](https://github.com/metaschema-framework/liboscal-java) can extend the inventory of available functionality with custom functions that are not required in the core specification. These are OSCAL-specific functions, not core Metaschema functions. At the the of the v4.1.0 release, there are only two custom OSCAL-specific functions in this library.

- The [`HasOscalNamespace` class](https://github.com/metaschema-framework/liboscal-java/blob/v4.1.0/src/main/java/gov/nist/secauto/oscal/lib/metapath/function/library/HasOscalNamespace.java) implements the `has-oscal-namespace` function.
- The [`ResolveProfile` class](https://github.com/metaschema-framework/liboscal-java/blob/v4.1.0/src/main/java/gov/nist/secauto/oscal/lib/metapath/function/library/HasOscalNamespace.java) implements the `resolve-profile()` function.

See the library's [registry class with an inventory of these functions](https://github.com/metaschema-framework/liboscal-java/blob/main/src/main/java/gov/nist/secauto/oscal/lib/metapath/function/library/OscalFunctionLibrary.java) for a current list of custom, OSCAL-specific functions after the v4.1.0 release.

# Licenses and attribution

Expand Down

0 comments on commit 1200e43

Please sign in to comment.