-
Notifications
You must be signed in to change notification settings - Fork 184
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
Adding 'uuid' flag to objects in addition to 'id' flag? #676
Comments
Historyreverse chronological order Would one of you turn the contents of your last two emails into an issue? Thanks, From: Piez, Wendell A. (Fed) wendell.piez@nist.gov Hi, Would it be too confusing to permit two different flags, with different semantics? A @uuid value that would be expected to be “fresh” every time, and an @id flag that would provide an identifier for specific local operations where a more stable ID would be wanted and where “clashing” is a feature not a bug? IDs are usually overloaded and indeed I think it’s impossible to prevent this. It is just too tempting and too useful to hand “identity” on an ID, even without thinking through the scoping issues (or more realistically, putting them off for another day). I am thinking in particular of things like cross-references. I would hate for one version of a document to have the same resources list including citations as last year’s version, but require every citation and every pointer to it to have a new ID, because the document was “new” (different from last year’s albeit only updated). Having said this I have no firm ideas of what the criteria should be for using one or the other, or where a schema would permit or require one, the other, or both. I do think that controls, resources and other targets of cross-referencing (assessment objectives etc.) have need for IDs that are stable across document versions. Just a thought – From: Brian Ruf - QQC-C brian.ruf@gsa.gov Hi Dave and Wendell, A few weeks back (maybe longer - it's a blur), Dave mentioned the possibility of moving to UUIDs for nearly all ID fields (except possibly roles). I just realized a challenge with a feature of the assessment-results model that this would solve. We've included the ability to reflect previous snapshot-in-time assessments in the current model, which supports both continuous monitoring goals as well as a requirement for FedRAMP tools to be able to compare current results to historic results. (The current SAR requires the assessor to manually duplicate past assessment results into a certain column of the test case workbook). The challenge is in ensuring that when a previous year's results are imported, there are no ID conflicts. There are a few approaches for addressing this.
In fact, I may go so far as to recommend that finding IDs are assigned UUID values in the FedRMAP SAR guide, to get out in front of this problem. This is all just an FYI for now - but I am always open to your thoughts. Best Regards, |
Based on Friday's conversation (myself, @wendellpiez and @david-waltermire-nist): Guidelines
Root ElementChange ID to UUID Metadata & BackmatterKeep as ID
Change ID to UUID
SSP
Keep as ID
Change ID to UUID
Add to Metaschema:
ASSESSMENT LAYERSKeep as ID
Change ID to UUID
|
@brianrufgsa This is cool, but I would like to stress there is a difference between an ID (whether or not a UUID) and a reference to an ID. I do not believe any references to UUIDs need to be validated as UUIDs. This is because while they may take the lexical form of UUIDs, they are not actually UUIDs, for example, they are not unique. The constraint they introduce for validation is not a constraint over the format, but rather over whether the link target exists and is addressable unambiguously. Anything that is actually a reference, not an identifier, should not be a candidate for UUID validation in my view. This includes Let me know if this makes (no) sense! |
Implemented uuids addressing issue usnistgov#676.
* Renamed group-as names to make them more consistent. * Moved levergaed-authorizations to system-implementation. Made system-implementation and control-implementation required. * Added metadata and fixed other front matter in content * Updated examples with AU-5 mock-up data * Filled in missing titles and descriptions. Added role/user. * Updates to examples. Tweak to SSP Metaschema * Adding metaschema support for UUIDs. Implemented uuids addressing issue #676. * Fixed broken schema and schematron paths. * Fixed content to use new uuid-based flags. * Profile resolution test set update to M3 models * Updating profile resolver; renaming uuid support XSLT (#42) * Removed SSL certificate check for wget to deal with broken SSL cert on apache archive site. * Updated OSCAL version in metaschema files. * Migrated definition of a system interconnection and service into components. The "service" and "interconnection" component types are now used to define these. (#498) * Flattened party -> org/person to be just party. Party now has a type which identifies if the party is a person or organization. * Added SHA-3 algorithms to the hash algorithm list. (#632) * Fixed Docker container to run scripts that require in-place editing. * Fixed SSP elements that reference a component UUID, but lacked the correct type. * Added a location title. * Updating metaschema support to fix bug (usnistgov/metaschema#56). * Added "homepage" link relation. * Fixed message error in round-trip validation which indicated the wrong type of conversion as compared to what was actually happening. Fixed remaining round-trip issues. * Updated Assessment Metaschemas * Updated FedRAMP Profiles * WIP - UUID transition prep * WIP assessment * Finished UUID Transition * Significant assessment metaschema updates * Assessment metaschema changes * Assessment metaschema changes * party assembly tweaks * Assessment Metaschema Updates * Updated FedRAMP Profiles * additional assessment model tweaks * SAR and POA&M Model Adjustments * Metaschema gymnastics * Fixed invalid content. * SSP Example - Remove Schema Line * Baselines with relative path to catalog * Baseline path tweaks Co-authored-by: David Waltermire <david.waltermire@nist.gov> Co-authored-by: Wendell Piez <wendell.piez@nist.gov> Co-authored-by: Wendell Piez <wapiez@wendellpiez.com>
* Completing and cleaning up release upgrade and XSLTs * Adjusting SSP metaschema to have uuid instead of id at the top #676 * Updated Markdown version of change history log
* Renamed group-as names to make them more consistent. * Moved levergaed-authorizations to system-implementation. Made system-implementation and control-implementation required. * Added metadata and fixed other front matter in content * Updated examples with AU-5 mock-up data * Filled in missing titles and descriptions. Added role/user. * Updates to examples. Tweak to SSP Metaschema * Adding metaschema support for UUIDs. Implemented uuids addressing issue usnistgov#676. * Fixed broken schema and schematron paths. * Fixed content to use new uuid-based flags. * Profile resolution test set update to M3 models * Updating profile resolver; renaming uuid support XSLT (#42) * Removed SSL certificate check for wget to deal with broken SSL cert on apache archive site. * Updated OSCAL version in metaschema files. * Migrated definition of a system interconnection and service into components. The "service" and "interconnection" component types are now used to define these. (usnistgov#498) * Flattened party -> org/person to be just party. Party now has a type which identifies if the party is a person or organization. * Added SHA-3 algorithms to the hash algorithm list. (usnistgov#632) * Fixed Docker container to run scripts that require in-place editing. * Fixed SSP elements that reference a component UUID, but lacked the correct type. * Added a location title. * Updating metaschema support to fix bug (usnistgov/metaschema#56). * Added "homepage" link relation. * Fixed message error in round-trip validation which indicated the wrong type of conversion as compared to what was actually happening. Fixed remaining round-trip issues. * Updated Assessment Metaschemas * Updated FedRAMP Profiles * WIP - UUID transition prep * WIP assessment * Finished UUID Transition * Significant assessment metaschema updates * Assessment metaschema changes * Assessment metaschema changes * party assembly tweaks * Assessment Metaschema Updates * Updated FedRAMP Profiles * additional assessment model tweaks * SAR and POA&M Model Adjustments * Metaschema gymnastics * Fixed invalid content. * SSP Example - Remove Schema Line * Baselines with relative path to catalog * Baseline path tweaks Co-authored-by: David Waltermire <david.waltermire@nist.gov> Co-authored-by: Wendell Piez <wendell.piez@nist.gov> Co-authored-by: Wendell Piez <wapiez@wendellpiez.com>
* Completing and cleaning up release upgrade and XSLTs * Adjusting SSP metaschema to have uuid instead of id at the top usnistgov#676 * Updated Markdown version of change history log
User Story:
On #538 we are tracking the higher-level issue of developing an idea of "control identity" over and above simply marking a control's
id
flag, for example taking account of catalog of origin. Similar "object identity" issues apply -- at least -- to parameters, resources and possibly other kinds of objects. Related to this, more lately, we are finding more requirements that suggest a need for a more robust ID (such as a UUID) that can be relied on to distinguish between two similar objects (rather than assert or represent their identity).Since the
id
flag is envisioned as "robust" for given referenda (controls, parameters etc) across document versions, it is not suitable for this. But the requirement could be addressed by permitting some objects to haveuuid
flags in addition toid
flags. This would permit a distinction to be made in operation between identifiers deployed with respect to different constraint sets (expectations of uniqueness over different scopes). It would also ease the problem of control or object identity by offering another (tight) point of comparison between like objects. UUID semantics would also be useful for some (many) applications to have available.Not only would this hook enable new functionalities (for example, in document or object comparison); it would also ease (not entirely remove) the issue of determining control identity for purposes of profile resolution (for example).
Discussion and experiment is probably called for. See background copied into the comment.
Goals:
uuid
flag to objects that need it. (See notes below for a start.) Determine where and what those objects are. Push forward such a feature.Dependencies:
This depends on issue usnistgov/metaschema#32.
See email exchange below copied into a comment.
Also, see #538. This does not resolve that Issue but it helps address it.
Acceptance Criteria
One of the following (check one check all):
The text was updated successfully, but these errors were encountered: