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

Add WIP ADR for attachment handling for #1061 #1062

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from

Conversation

aj-stein-gsa
Copy link
Contributor

Committer Notes

Closes #1061.

All Submissions:

By submitting a pull request, you are agreeing to provide this contribution under the CC0 1.0 Universal public domain dedication.

@aj-stein-gsa aj-stein-gsa self-assigned this Jan 3, 2025
@aj-stein-gsa aj-stein-gsa changed the title [skip ci] Add WIP ADR for attachment handling for #1061 Add WIP ADR for attachment handling for #1061 Jan 3, 2025
@aj-stein-gsa
Copy link
Contributor Author

This is not necessarily ready for review right right now, but it will be later in the afternoon and more importantly for others first thing Monday once I am on leave. So on that note, I will be changing status for my future aspirations now. 😄

@aj-stein-gsa aj-stein-gsa marked this pull request as ready for review January 3, 2025 21:46
@aj-stein-gsa aj-stein-gsa requested a review from a team as a code owner January 3, 2025 21:46
@aj-stein-gsa aj-stein-gsa linked an issue Jan 3, 2025 that may be closed by this pull request
2 tasks
@aj-stein aj-stein force-pushed the 1061-design-approach-for-managing-oscal-and-non-oscal-attachments branch from eff7c18 to 2034743 Compare January 6, 2025 11:50
Copy link

@wandmagic wandmagic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rmf-use is a good choice for the param, i like this solution

Comment on lines +69 to +70
<prop name="published" value="2023-05-31T00:00:00Z"/>
<prop ns="http://fedramp.gov/ns/oscal" name="has-oscal-document" value="yes"/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would we not still need <prop name="type" value="plan"/> in addition to <prop ns="http://fedramp.gov/ns/oscal" name="has-oscal-document" value="yes"/> for approach 2B?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm, I think about this, I had not considered that when I originally wrote the thing. 😅

<title>Plan of Actions and Milestones (POAM)</title>
<prop name="published" value="2023-05-31T00:00:00Z"/>
<prop name="type" value="plan"/>
<rlink href="./attachments/POAMs/SAMPLE_POAM_20230531.xml" media-type="application/xml; oscal-model=poam;fedramp-use=poam;"/>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was initially getting hung up on the difference between oscal-model=poam and fedramp-use=poam but I see that the former specifies if its an oscal model, while the latter specifies the specific use case.

I recommend we use something like oscal-model=true|false or oscal-model=yes|no

And for the use case, we have either fedramp-use=catalog|profile|ssp|sap|sar|poam or rmf-use=catalog|profile|ssp|sap|sar|poam

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes i prefer rmf-use, and something seperate that declares its an oscal item

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are the conversations I was hoping to have! 😄

So in this one-off case, it would seem redundant. But where this will probably become less redundant over time (or at least the beginning) is where certain non-OSCAL data is handled for similarly named OSCAL uses cases.

At this point, there are a collection of attachment types that can 1) encode data in an alternative format to OSCAL or 2) there is no alternative to OSCAL. Is there another approach to meaningfully handle that? There are a series of others that get a little more nuanced after that.

<resource uuid="11111111-2222-4000-8000-001000000048">
    <title>Assessment Results (SAR)</title>
    <prop name="published" value="2023-05-31T00:00:00Z"/>
    <rlink href="./attachments/POAMs/SAMPLE_SAR_20230531.xml" media-type="application/xml;oscal-model=assessment-results; fedramp-use=ret"/>
    <rlink href="./attachments/POAMs/SAMPLE_POAM_20230531.xlsx" media-type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;oscal-model=none; fedramp-use=ret"/>
</resource>
<resource uuid="11111111-2222-4000-8000-001000000048">
    <title>CIS/CRM</title>
    <prop name="published" value="2023-05-31T00:00:00Z"/>
    <!-- Strictly speaking there is no pure CIS/CRM model in core OSCAL yet. -->
    <rlink href="./attachments/POAMs/SAMPLE_POAM_20230531.xlsx" media-type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;oscal-model=none; fedramp-use=crm"/>
</resource>

As it stands now, we also have ConMon, but no definitve ConMon model. So I would assume assessment for authorization and ConMon use AP/AR bundles, but it might not be clear if there are multiple ARs in a presentation view into a "whole package over time" what that would look like without having both params, so less redundancy than our first case.

<resource uuid="11111111-2222-4000-8000-001000000048">
    <title>Authorization Assessment Results from a while ago (SAR)</title>
    <prop name="published" value="2023-05-31T00:00:00Z"/>
    <rlink href="./attachments/POAMs/SAMPLE_SAR_20230531.xml" media-type="application/xml;oscal-model=assessment-results; fedramp-use=authorization-sar"/>
    <rlink href="./attachments/POAMs/SAMPLE_POAM_20230531.xlsx" media-type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;oscal-model=none; fedramp-use=ret"/>
</resource>
<resource uuid="11111111-2222-4000-8000-001000000049">
    <title>ConMon Assessment Results (SAR)</title>
    <prop name="published" value="2025-01-26T00:00:00Z"/>
    <rlink href="./attachments/POAMs/SAMPLE_SAR_20250126.xml" media-type="application/xml;oscal-model=assessment-results;fedramp-use=conmon-sar"/>
    <rlink href="./attachments/POAMs/SAMPLE_POAM_20230531.xlsx" media-type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;oscal-model=none; ;fedramp-use=conmon-sar"/>
</resource>

I think in these cases having both params gives us some of that context without overloading one parameter with a need for a bunch of conditional logic for a few cases, and this is just the first one that comes to mind with hybrid data that will be OSCAL and non-OSCAL for specific use cases.

Thoughts?

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

Successfully merging this pull request may close these issues.

Design approach for managing OSCAL and non-OSCAL attachments
4 participants