Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change REST API JSON Schemas to NIST GitHub References #32

Open
rgauss opened this issue Dec 2, 2021 · 11 comments
Open

Change REST API JSON Schemas to NIST GitHub References #32

rgauss opened this issue Dec 2, 2021 · 11 comments
Assignees

Comments

@rgauss
Copy link
Contributor

rgauss commented Dec 2, 2021

As part of a previous issue, it was found that the JSON schemas NIST produces contain $ref elements by $id rather than path which seems to only be supported in OpenAPI v3.1 (and Swagger UI hasn't caught up to that yet). See GitHub comment

We’ve also submitted a feature request to another NIST repo that facilitates the pipeline that creates the OSCAL JSON schemas: usnistgov/metaschema#160

As a result, in we forked the NIST OSCAL repo and 'manually' changed the JSON schemas to ref by path.

If/when NIST updates their JSON schemas or Swagger supports OpenAPI v3.1 we should revert the OSCAL REST API definition to reference NIST GitHub JSON schemas rather than our fork.

@rgauss
Copy link
Contributor Author

rgauss commented Dec 2, 2021

Migrated from Jira

@flickerfly
Copy link
Contributor

I actually started a discussion at NIST OSCAL's repo on this as I was trying to figure out what was going on.
usnistgov/OSCAL#1057

@rgauss
Copy link
Contributor Author

rgauss commented Dec 16, 2021

I actually started a discussion at NIST OSCAL's repo on this as I was trying to figure out what was going on.
usnistgov/OSCAL#1057

Thanks @flickerfly, just added another comment there.

@rgauss
Copy link
Contributor Author

rgauss commented May 20, 2022

Adding comments from a duplicate issue #48:

NIST is working on updating the JSON schema to support path refs.

We have created a PoC branch that points to those changes which seems to render appropriately in the Swagger Editor.

Once those changes have been finalized we should update our references.

and

Looks like the gist has been updated and we'll need to make some tweaks.

@laurelmay
Copy link
Contributor

To provide an update on this, as of today, neither the OSCAL schemas have been updated nor has Swagger editor gotten support for OpenAPI v3.1. We will have to continue to point to our fork for now.

It does look like the Metaschema change has been added to the 0.9.0 milestone which is their "current" milestone.

@schen2166 schen2166 self-assigned this Jul 28, 2022
@laurelmay laurelmay added the blocked Work is blocked until another task is completed label Aug 4, 2022
@laurelmay laurelmay removed this from the 0.4 Tech Investments milestone Aug 5, 2022
@brian-comply0
Copy link
Contributor

@mpemy did you experience this.
Now that we've are producing OpenAPI 3.1 syntax, which is now supported by the new Swagger, are we able to close this issue?
If not, is this something you can have your OpenAPI generator application address automatically?

@brian-comply0 brian-comply0 removed the blocked Work is blocked until another task is completed label Mar 25, 2024
@brian-comply0
Copy link
Contributor

Made good progress on the collection of issues. This one will be addressed in sprint 68.

@mpemy
Copy link
Contributor

mpemy commented May 2, 2024

Current NIST meta schemas are only available in xml. I was not able to locate json versions.

Image

@mpemy
Copy link
Contributor

mpemy commented May 2, 2024

Got some new insights from @brian-comply0, will address the remaining issue in sprint 69.

@brian-comply0
Copy link
Contributor

A few versions back, NIST moved away from publishing the JSON schemas in the repo and only making them available as download assets. Unfortunately this prevents us from linking to those files "in place" from the OpenAPI file.

The OpenAPI file needs to link to the schema files in a reliable and publicly accessible location. As a result, we moved clean copies of the NIST OSCAL v1.1.2 JSON schema files into this repo's develop branch via PR #95 , such that the OpenAPI file can use https://raw.githubusercontent.com/EasyDynamics/oscal-rest/develop/oscal-schema/v1.1.2/oscal_[model-name]_schema.json where the NIST schema needs to be referenced.

@brian-comply0
Copy link
Contributor

After review with @mpemy we have learned that the published NIST OSCAL JSON schema definitions continue to be incompatible as references for the OpenAPI definition as-is.

We will continue using the manually adjusted version of those files for the foreseeable future, and will place this issue back on hold.

Possible future steps include:

  • creating a script that will auto-modify all NIST schema files for our needs.
  • continue exploring the OpenAPI 3.1 specification for alternative syntax or approaches that enable us to use the NIST JSON schema files as-is

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants