-
Notifications
You must be signed in to change notification settings - Fork 49
Clarify constraints on the invocations array #323
Copy link
Copy link
Closed
Labels
2.1.0-CSD.1Will be fixed in SARIF v2.1.0 CSD.1.Will be fixed in SARIF v2.1.0 CSD.1.design-approvedThe TC approved the design and I can write the change draftThe TC approved the design and I can write the change draftimpact-documentation-onlynon-substantiveChange falls under editorial discretionChange falls under editorial discretionresolved-fixed
Metadata
Metadata
Assignees
Labels
2.1.0-CSD.1Will be fixed in SARIF v2.1.0 CSD.1.Will be fixed in SARIF v2.1.0 CSD.1.design-approvedThe TC approved the design and I can write the change draftThe TC approved the design and I can write the change draftimpact-documentation-onlynon-substantiveChange falls under editorial discretionChange falls under editorial discretionresolved-fixed
Type
Fields
Give feedbackNo fields configured for issues without a type.
In re: #102. The problem with an invocations array is that it basically creates a nested set of runs within a run object. This has become a clear problem now that we have tool.extensions. How does an invocation associate its results with one of these extensions? We have lost the coherent definition of a tool run if we permit this. Elsewhere in the design, we allow invocationIndex to associate a result with an invocation.
We got this wrong. Instead of an array of invocations, a run should be strongly associated with a single conceptual process/execution/analysis, with a single tool object (with all extensions described) and a single invocation object.
If a system has some sort of notion of chaining invocations in order to create an end-to-end analysis session, the constituent elements should be persisted as discrete run objects that describe all phases. The run id's logical/instance identifier can be used to associate all these elements into a single set. This id can even be used to order them if necessary (by incrementing a counter in the hierarchical id).
Specific proposal: make invocation a single instance of the invocation object and drop invocationIndex. Note that this change also helps alleviate the look-up pain we've introduced by adding extensions and other array items.
@lgolding , FYI.