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

Profile resolution metadata resolution chooses a difficult to obtain value for metadata/last-modified #1699

Closed
GaryGapinski opened this issue Mar 5, 2023 · 5 comments · Fixed by #1900
Assignees
Labels
Milestone

Comments

@GaryGapinski
Copy link

Describe the bug

The fourth bullet "Metadata Resolution" in "OSCAL Profile Resolution Specification Draft" asserts "The value of metadata:last-modified in the target MUST be set with a valid timestamp representing the time the profile resolution completed." [emphasis mine]. This requires extraordinary effort to achieve when using pure XSLT for profile resolution. Use of XPath current-dateTime() during a transformation will typically provide the time of transformation initiation.

Who is the bug affecting

Implementors of OSCAL profile resolution.

What is affected by this bug

Documentation

How do we replicate this issue

A pure XSLT profile resolution implementation will likely use the XPath current-dateTime() function to obtain the date+time+timezone at the time of profile resolution. This is often (but not always) the point in time at which the XSLT transformation commenced. The actual time of resolution completion cannot be obtained without extraordinary effort.

Expected behavior (i.e. solution)

If profile resolution is considered an atomic operation the actual time of completion could instead be the time of resolution initiation, a time during resolution, or the time of resolution completion, or an arbitrary time elected by the rainha da resolução. Some latitude in the precise choice of asserted completion time would be gratefully received.

If for some reason the time of completion is important, a strict definition of completion is lacking and elusive.

Other comments

No response

@galtm
Copy link
Contributor

galtm commented Apr 18, 2023

@GaryGapinski , I like your point about latitude in the precise choice. I think it makes sense in light of the part of the current-dateTime function's spec that says, "This function is deterministic. The precise instant during the query or transformation represented by the value of fn:current-dateTime() is implementation-dependent." I am not aware of a situation where the time of completion would be important by itself. If an end user were concerned about an imported catalog changing during the resolution process and not knowing whether the resolved profile reflects the latest catalog changes, such a user would need more timestamps than merely when the profile resolution process completed.

On the other hand, if the OSCAL community decides that the profile resolution spec draft shouldn't change this bullet after all, the XSLT profile resolver could get a fresher timestamp by executing a second transform (identity plus setting the timestamp) after the existing profile resolution pipeline ends. The second transform could be mentioned in the manual instructions and added to the wrapper script.

@aj-stein-nist
Copy link
Contributor

The team is in favor loosening the wording of the specification, will consider this a potential issue for an upcoming sprint.

@wendellpiez
Copy link
Contributor

wendellpiez commented Aug 24, 2023

I concur the language should be loosened. Like @GaryGapinski , I am used to a world in which everything-happens-all-at-once.

Yet I am also not sure how a test could determine that a timestamp had been "prematurely" applied (reflecting initiation rather than conclusion of a black-box process). I.e. to validate conformance to a strict reading of this line of the spec. So it may be an unenforceable rule.

@nikitawootten-nist nikitawootten-nist moved this from In Progress to Under Review in NIST OSCAL Work Board Aug 24, 2023
@nikitawootten-nist nikitawootten-nist moved this from Under Review to Reviewer Approved in NIST OSCAL Work Board Aug 24, 2023
@nikitawootten-nist
Copy link
Contributor

Fixed via #1900

@github-project-automation github-project-automation bot moved this from Reviewer Approved to Done in NIST OSCAL Work Board Aug 25, 2023
@aj-stein-nist aj-stein-nist modified the milestones: Next, Ready Now Aug 25, 2023
@aj-stein-nist
Copy link
Contributor

We need to prioritize work to include processing specifications (now profile resolution only) for generating them like before, as the content site and reference site are no longer managed within the same repo. We need to get generated specs automatically deploying like reference material, even in OSCAL-Reference perhaps. :-)

We need to move on usnistgov/OSCAL-Reference#16 in short order. Thanks for pointing this out during sprint review @nikitawootten-nist.

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

Successfully merging a pull request may close this issue.

5 participants