- BRK: Remove defunct and unsupported
kustocommand inSarif.Multitool. - DEP: Remove dependency on
Microsoft.Azure.Kusto.Data. - DEP: Update
Azure.Identityreference from 1.10.2 to 1.13.1 inWorkItemsandSarif.Multitool.Libraryto resolve CVE-2024-29992 and other CVEs. - DEP: Update
Azure.Corefrom 1.35.0 to 1.41.1 to satisfy minimum requirement ofAzure.Identity1.12.1 (that has no known vulnerabilities). - DEP: Update
System.Text.Encodings.Webfrom 5.0.1 to 6.0.0 (required by transitive closure of dependency requirements from other updates). - DEP: Update all
Newtonsoft.Jsonreferences from 12.0.3 to 13.0.3 to resolve CVE-2024-21907. - DEP: Update
Microsoft.Data.SqlClientfrom 2.1.7 to 5.2.2 so its dependenciesMicrosoft.IdentityModel.JsonWebTokensandSystem.IdentityModel.Tokens.Jwtupgrade to non-vulnerable version 6.35.0 (https://github.com/dotnet/aspnetcore/security/advisories/GHSA-59j7-ghrg-fj52). - BUG: Resolve process hangs when a file path is provided with a wildcard, but without a
-r(recurse) flag during the multi-threaded analysis file enumeration phase. - BUG: Fix error
ERR997.NoValidAnalysisTargetswhen scanning symbolic link files. - BUG: Fix
ERR999.UnhandledEngineException: System.IO.FileNotFoundException: Could not find filewhen a file name or directory path contains URL-encoded characters. - BUG: Fix error
ERR997.NoValidAnalysisTargetswhen ambiguous file/directory references are provided toOrderedFileSpecifier. Previously, the code required an explicit directory separator to be added to the end of a directory path. Now, the code inspects the file system and assumes that a reference to an existing directory was intended by the user (even without a trailing separator). - NEW: Allow null archive uri in
MultithreadedZipArchiveArtifactProvider(which indicates that enumerated artifact paths should not include the base archive). - NEW: Update
LogTargetParseError(IAnalysisContext, Region, string, Exception)to include optional exception argument to denote code location where parse error occurred. - NEW:
MultithreadedAnalyzeCommandBase.EnumerateArtifactnow supports scanning into compressed (OPC) files. Initial support file extensions are:.apk,.appx,.appxbundle,.docx,.epub,.jar,.msix,.msixbundle,.odp,.ods,.odt,.onepkg,.oxps,.pkg,.pptx,.unitypackage,.vsdx,.xps,.xlsx,.zip.
**v4.5.4 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Fix incorrect base class in rule ADO2012.
**v4.5.3 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Restructure shared
MessageResourceNamescollections to ensure return of correct error messages.
**v4.5.2 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Update
Skimmerstack inMultitool.Libraryto support sharedMessageResourceNamescollections between base rules and their derivatives. - BUG: Fix message strings to always assume {1} is reserved for the rule's service name.
- BUG: Clean up unused resource strings in Multitool.Library.Rules.RuleResources.resx.
**v4.5.1 Sdk | Driver | Converters | Multitool | Multitool Library
- DEP: Add explicit package references to
SarifandSarif.Driverto resolve version conflict build error.System.Diagnostics.Debug4.3.0,System.IO.FileSystem.Primitives4.3.0,System.Text.Encoding.Extensions4.3.0. - NEW: Expose
MultithreadedAnalyzeCommandBase.BuildDisabledSkimmersSet, a utility function which extracts a disabled skimmer set from aTContext.
**v4.5.0 Sdk | Driver | Converters | Multitool | Multitool Library
- DEP: Downgrade
System.Text.Encoding.CodePagesfrom 8.0.0 to 4.3.0 inSarif. - DEP: Remove explicit versioning for
System.MemoryandSystem.Runtime.CompilerServices.Unsafe. - DEP: Remove spurious references to
System.Collections.Immutable. - DEP: Update
Microsoft.Data.SqlClientreference from 2.1.2 to 2.1.7 inWorkItemsandSarif.Multitool.Libraryto resolve CVE-2024-0056. - DEP: Update
System.Data.SqlClientreference from 4.8.5 to 4.8.6 inWorkItemsto resolve CVE-2024-0056. - BUG: Improve
FileEncoding.IsTextualDatamethod for detecting binary files. - BUG: Update
Stack.Createmethod to populate missingPhysicalLocationinstances when stack frames reference relative file paths. - BUG: Fix
UnsupportedOperationExceptioninZipArchiveArtifact. - BUG: Fix
MultithreadedAnalyzeCommandBaseto return rich return code with the--rich-return-codeoption. - NEW: Add
IsBinaryproperty toIEnumeratedArtifactand implement the property inZipArchiveArtifact. - NEW: Switch to content-based
IsBinarycategorization forZipArchiveArtifacts. - PRF: Change default
max-file-size-in-kbparameter to 10 megabytes. - PRF: Add support for efficiently peeking into non-seekable streams for binary/text categorization.
- NEW: Add a new
--timeout-in-secondsparameter toAnalyzeOptionsBase, which will override theTimeoutInMillisecondsproperty inAnalyzeContextBase. - NEW:
--post-uriwill skip sending the SARIF log to the configured endpoint if the file contains no results or fatal execution errors. - NEW: Add the following rules:
ADO1011.ReferenceFinalSchema,
ADO1013.ProvideRequiredSarifLogProperties,
ADO1014.ProvideRequiredRunProperties,
ADO1015.ProvideRequiredResultProperties,
ADO1016.ProvideRequiredLocationProperties,
ADO1017.ProvideRequiredPhysicalLocationProperties,
ADO1018.ProvideRequiredToolProperties,
ADO2012.ProvideRequiredReportingDescriptorProperties,
GH1011.ReferenceFinalSchema,
GH1013.ProvideRequiredSarifLogProperties,
GH1014.ProvideRequiredRunProperties,
GH1015.ProvideRequiredResultProperties,
GH1016.ProvideRequiredLocationProperties,
GH1017.ProvideRequiredPhysicalLocationProperties,
GH1018.ProvideRequiredToolProperties,
GH2012.ProvideRequiredReportingDescriptorProperties. - NEW: Add a new
--rule-kindparameter toAnalyzeOptionsBase, which specifies rule kinds to run (Sarif,Ghas,Ado). Example:--rule-kind Ado;Sarif.
- DEP: Update reference to
System.Collections.Immutable5.0.0 forSarifandSarif.Converters. - BUG: Emit
WRN997.OneOrMoreFilesSkippedDueToExceedingSizeLimitwhen no valid analysis targets are detected (due to exceeding size limits). - BUG: Emit
FailureLevel.Notemessages with labelinfo(rather thanfail) inConsoleLogger.
**v4.4.0 Sdk | Driver | Converters | Multitool | Multitool Library
- DEP: Add reference to
System.Text.Encoding.CodePages8.0.0 (to support Windows 1252 code pages in binary vs. text classification). - DEP: Update
Newtonsoft.Jsonreference from 8.0.3 to 9.0.1 to providenet462compatibility. - DEP: Update target framework from
net461tonet462inSarifSarif.Convertersprojects (to allow for use ofSystem.Text.Encoding.CodePages). - DEP: Explicitly add
Azure.Identity1.10.2 inSarif.Multitool.LibraryandWorkItemsto avoid the vulnerable 1.3.0 package viaMicrosoft.Azure.Kusto.Data10.0.3 per compliance requirements. - DEP: Explicitly add
Microsoft.Data.SqlClient2.1.2 inSarif.Multitool.LibraryandWorkItemsto avoid the vulnerable 2.1.1 package viaMicrosoft.Azure.Kusto.Data10.0.3 per compliance requirements. - DEP: Explicitly add
System.Data.SqlClient4.8.5 inWorkItemsto avoid the vulnerable 4.2.2 package viaMicrosoft.TeamFoundationServer.Client16.170.0 per compliance requirements. - BRK:
EnumeratedArtifactnow sniffs artifacts to distinguish between textual and binary data. TheContentsproperty will be null for binary files (useBytesinstead). - BRK:
MultithreadedZipArchiveArtifactProvidernow distinguishes binary vs. textual data using a hard-coded binary files extensions list. This data will be made configurable in a future change. Current extensions include.bmp,.cer,.der,.dll,.exe,.gif,.gz,.iso,.jpe,.jpeg,.lock,.p12,.pack,.pfx,.pkcs12,.png,.psd,.rar,.tar,.tif,.tiff,.xcf,.zip. - NEW:
EnumeratedArtifactnow automatically detects and populates aBytesproperty for binary files such as executables and certificates. - NEW:
FileEncoding.IsTextualDatautility can effectively distinguish between binary and textual data.
v4.3.7 Sdk | Driver | Converters | Multitool | Multitool Library
- DEP: Updated NewtonSoft.JSON to 8.0.3 in Sarif.Converters for .NET targets later than
netstandard2.0. - BUG: Logging improved when work item client is called with invalid work item values.
- NEW: Add
Path.Combine,Path.GetDirectoryNameandPath.GetFileNameWithoutExtensiontoIFileSystem.
v4.3.6 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Resolve
InvalidOperationExceptionprocessingRuleNotCalledevents. - BUG: Emit optional data arguments for
RuleNotCalledevents in auto-formatted messages. - PRF: Switch file system traversal to pre-order with producer-consumer to accelerate time to scan first artifact.
v4.3.5 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK: Remove processing of
/u2028(Unicode line separator) and/u2029(Unicode paragraph separator) fromNewLineIndex. - BUG: Resolve
KeyNotFoundException: The given key was not presentexception when scanning content that contains Unicode line and paragraph separators (/u2028and/u2029) when enablingOptionallyEmittedData.RollingHashPartialFingerprints. - BUG: Fix
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Sarif.Multitool.Library, Version=...when using net462 version of the Multitool. #2722
v4.3.4 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Disable certain console outputs (such as reporting of threads count) when
AnalyzeContextBase.Quietis set.
v4.3.3 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Update
dump-eventscommand to be resilient in cases where the thread id changes between artifact enumeration start/stop event pairs. - BUG: Resolve trace parsing
InvalidOperationExceptionby updatingdump-eventscommand to processPartitionInfoExtensionsession event as we doPartitionInfoExtensionV2.
v4.3.2 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Correct multitool query OR logic #2709
v4.3.1 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Improve
HdfConverterto ensure uri data is populated and to provide location and region data property fromSourceLocation. #2704 - BUG: Correct
run.languageregex in JSON schema. [#2708]microsoft#2708 - BUG: Improve
HdfConverterto setprecisionandtagsas recommended by GitHub. #2712
v4.3.0 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Resolve
NullReferenceExceptionretrievingMultithreadedZipArchiveArtifactProvider.SizeInBytesafter content have been faulted in. - BUG: Improve HDF->SARIF conversion to properly map various properties (e.g.,
kind,level,rank) and generally prepare the converted SARIF for ingestion to GitHub Advanced Security.
v4.2.1 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Resolve
NotSupportedExceptionthrown (on .NET 4.8 and earlier) on accessingDeflateStream.LengthfromMultithreadedZipArchiveArtifactProvider.SizeInBytesproperty.
v4.2.0 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK: Change
ArtifactProvicer.SizeInBytesproperty type fromulongtolong. #2675 - BRK: Update
SarifLog.Post(Uri, StreamWriter, HttpClient)return value toHttpResponseMessage(to make returned correlation id and error messages available). #2672 - BRK:
RuntimeConditionsnow of typelongto permit more flag values. Many literal values have changed for individual members. #2660 - BRK:
RuntimeConditions.OneOrMoreFilesSkippedDueToSizerenamed toOneOrMoreFilesSkippedDueToExceedingSizeLimits. #2660 - BRK:
Notes.LogFileSkippedDueToSizerenamed toLogFileExceedingSizeLimitSkipped. #2660 - BRK: Command-line argument
automationGuidrenamed toautomation-guid. #2647 - BRK: Command-line argument
automationIdrenamed toautomation-id. #2647 - BRK: Update
AnalyzeOptionsBaseQuiet,Recurse,LogEnvironment, andRichReturnCodeproperties to bool? type. #2644 - BRK: Rename
Errors.LogExceptionCreatingLogFiletoErrors.LogExceptionCreatingOutputFileto reflect its general purpose. #2643 - BRK: Add
IAnalysisContext.FileRegionsCacheproperty. Used for data sharing across analysis phases. #2642 - BRK: Remove
FileRegionsCache.Instancesingleton object. Analysis should always prefer context file region context instead. #2642 - BRK:
fileRegionsCacheparameter is now required for theInsertOptionalDataVisitor. #2642 - BRK: Add
IAnalysisLogger.TargetAnalysisCompletemethod. #2637 - BRK: Remove unused
quietparameter fromSarifLogger. [#2639]microsoft#2639 - BRK: Remove
ComputeHashDataandAnalysisTargetToHashDataMapproperties fromSarifLogger(in preference of newfileRegionsCacheparameter. #2639 - BRK: Eliminate proactive hashing of artifacts in
SarifLoggerconstructor whenOptionallyEmittedData.Hashesis specified. #2639 - BUG: Provider better size return values for in-memory
EnumeratedArtifactinstances. #2674 - BUG: Fixed
ERR999.UnhandledEngineException: System.InvalidOperationException: This operation is not supported for a relative URIwhen running in Linux with files skipped due to zero byte size. #2664 - BUG: Properly report skipping empty files (rather than reporting file was skipped due to exceeding size limits). #2660
- BUG: Update user messages and code comments that refer to
--force(replaced by--log ForceOverwrite). #2656 - BUG: Handle return code 422
UnprocessableEntitywhen validating that log file POST endpoint is available. #2656 - BUG: Eliminate erroneous
Posted log file successfullymessage when contextPostUriis non-null but empty. #2655 - BUG: Resolves
IOExceptionraised by callingFileSystem.ReadAllTexton file locked for write (but not read). #2655 - BUG: Correct
toolComponent.languageregex in JSON schema. [#2653]microsoft#2653 - BUG: Generate
IAnalysisLogger.AnalyzingTargetcallbacks fromMulthreadedAnalyzeCommandBase. #2637 - BUG: Persist
fileRegionsCacheparameter inSarifLoggerto support retrieving hash data. #2639 - BUG: Allow override of
FailureLevelsandResultKindsin context objects. #2639 - NEW: Add general
Notes.LogFileSkippednotification mechanism for any skipped files. #2675 - NEW: Add 50K files to analysis channel (rather than previous value of 25k). Smooths performance analyzing many small artifacts. #2674
- NEW: Provide new ETW telemetry for runtime behavior, provider
SarifDriver, guidc84480b4-a77f-421f-8a11-48210c1724d4. microsoft#2668 - NEW: Provide convenience enumerator at the
SarifLoglevel that iterates over all results in all runs in the log. #2660 - NEW: Provide
Notes.LogEmptyFileSkippedhelper for reporting zero-byte files skipped at scan time. #2660 - NEW: Add
MemoryStreamSarifLogger(for in-memory SARIF generation). #2655 - NEW: Add
AnalyzeContext.VersionControlProvenanceproperty. #2646 - NEW: Add
DefaultTraces.ResultsSummaryproperty that drives naive results summary in console logger. #2643 - NEW: Prove
AnalyzeContextBase.Inlinehelper. #2643 - NEW:
SarifLogger.FileRegionsCacheproperty added (to support sharing this instance with context and other classes). #2642 - NEW:
MultithreadedAnalyzeCommandBase.Toolis now public to support in-memory analysis (and logging) of targets. #2639 - NEW: Add
DefaultTraces.TargetsScannedwhich is used byConsoleLoggerto emit target start and stop analysis messages. #2637 - NEW: Update
FileRegionsCacheto retrieve cached newline indices and hash data viaGetNewLineIndexandGetHashDatamethods. #2639
v4.1.0 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK:
MultithreadedAnalyzeCommandBaseIDispose implementation now manages logging dispose. Be sure to callbase.Dispose()in any derived type implementations. #2614 - BRK: Eliminate
MulthreadedAnalyzeCommandBase.EngineExceptionandIAnalysisContext.RuntimeExceptionproperties in favor ofIAnalysisContext.RuntimeExceptions. #2627 - BRK: Rename
LogFilePersistenceOptionstoFilePersistenceOptions(due to its general applicability in other file persistence contexts other than output logs).#2625 - BRK: Many breaking changes in
IAnalysisContextandAnalyzeContextBase. #2625 - BUG: In
HDFConverterifcode_descis empty, usedescas the SARIFmessage. #2632 - BUG: Store
HDFConverterdescin SARIF'sFullDescription, notShortDescription. #2634 - BUG: Eliminate creation of extremely large context region snippets (now always restricted to 512 chars). microsoft#2629
- BUG: Eliminate per-context allocations contributing to unnecessary memory use. #2625
- NEW: Rewrite
MultithreadedAnalyzeCommandBasepipeline to allow for timeout, cancellation, and better API-driven use. #2625 - NEW: Move large amounts of scan data to the context object, to streamline pipeline and allow for XML-driven configuration. #2625
- NEW: Switch file processing to an
ArtifactProvidermodel where enumerated artifacts consist of URI and optional content. #2625 - NEW: Add new
FailureLevelSetandResultKindSettypes that are compatible with XML-based configuration. #2625 - NEW: Add
PeakWorkingSetto--tracecommand to report maximum working set value during analysis. #2619 - NEW: Add
ArtifactProviderfor simple artifact enumeration. Add single-threaded and thread-safe classes for enumerating zip archives. #2630
v4.0.0 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK:
SarifLoggerno longer allows providing aToolinstance. Use therunparameter instead (and populate it with any customToolobject). #2614 - BRK:
SarifLoggerupdates version details differently. #2611 - BRK: Add
ToolComponentargument toIAnalysisLogger.Log(ReportingDescriptor, Result)method. #2611 - BRK: Rename
--normalize-for-githubargument to--normalize-for-ghasforconvertcommand and mark--normalize-for-githubas obsolete. #2581 - BRK: Update
IAnalysisContext.LogToolNotificationmethod to addReportingDescriptorparameter. This is required in order to populatedAssociatedRuledata inNotificationinstances. The new method has an option value of null for theassociatedRuleparameter to maximize build compatibility. #2604 - BRK: Correct casing of
LogMissingreportingConfigurationhelper toLogMissingReportingConfiguration. #2599 - BRK: Change type of
MaxFileSizeInKilobytesfrom int to long inIAnalysisContextand other classes. #2599 - BRK: For
Guidproperties defined in SARIF spec, updated Json schema to useuuid, and updated C# object model to useGuid?instead ofstring. #2555 - BRK: Mark
AnalyzeCommandBaseas obsolete. This type will be removed in the next significant update. #2599 - BRK:
LogUnhandledEngineExceptionno longer has a return value (and updates theRuntimeErrorscontext property directly as other helpers do). #2599 - BUG: Populate missing context region data for small, single-line scan targets. #2616
- BUG: Increase parallelism in
MultithreadedAnalyzeCommandBaseby correcting task creation. []#2618](microsoft#2618) - BUG: Resolve hangs due to unhandled exceptions during multithreaded analysis file enumeration phase. #2599
- BUG: Resolve hangs due to unhandled exceptions during multithreaded analysis file hashing phase. #2600
- BUG: Another attempt to resolve 'InvalidOperationException' with message
Collection was modified; enumeration operation may not executeinMultithreadedAnalyzeCommandBase, raised when analyzing with the--hashesswitch. #2459. There was a previous attempt to fix this in #2447. - BUG: Resolve issue where
match-results-forwardcommand fails to generate VersionControlDetails data. #2487 - BUG: Remove duplicated rule definitions when executing
match-results-forwardcommands for results with sub-rule ids. #2486 - BUG: Update
mergecommand to properly produce runs by tool and version when passed the--merge-runsargument. #2488 - BUG: Eliminate
IOExceptionandDirectoryNotFoundExceptionexceptions thrown bymergecommand when splitting by rule (due to invalid file characters in rule ids). #2513 - BUG: Fix classes inside NotYetAutoGenerated folder missing
virtualkeyword for public methods and properties, by regenerate and manually sync the changes. #2537 - BUG: MSBuild Converter now accepts case insensitive keywords and supports PackageValidator msbuild log output. #2579
- BUG: Eliminate
NullReferenceExceptionwhen file hashing fails (due to file locked or other errors reading the file). #2596 - NEW: Provide
PluginDriverproperty (AdditionalOptionsProvider) that allows additional options to be exported (typically for command-line arguments). #2599 - NEW: Provide
LogFileSkippedDueToSizethat fires a warning notification if any file is skipped due to exceeding size threshold. #2599 - NEW: Provide overridable
ShouldEnqueuepredicate method to filter files from driver processing. #2599 - NEW: Provide overridable
ShouldComputeHashespredicate method to prevent files from hashing. #2601 - NEW: Allow external set of
MaxFileSizeInKilobytes, which will allow SDK users to change the value. (Default value is 1024) #2578 - NEW: Add a Github validation rule
GH1007, which requires flattened result message so GHAS code scanning can ingest the log. #2580 - NEW: Provide mechanism to populate
SarifLoggerwith aFileRegionsCacheinstance. - NEW: Allow initialization of file regions cache in
InsertOptionalDataVisitor(previously initialized exclusively fromFileRegionsCache.Instance). - NEW: Provide 'RuleScanTime
trace and emitted timing data. ProvideScanExecution` trace with no utilization. - NEW: Populate associated rule data in
LogToolNotificationas called fromSarifLogger. #2604 - NEW: Add
--normalize-for-ghasargument to therewritecommand to ensure rewritten SARIF is compatible with GitHub Advanced Security (GHAS) ingestion requirements. #2581 - NEW: Allow per-line rolling (partial) hash computation for a file. #2605
- NEW:
SarifLoggernow supports extensions rules data when logging (by providing aToolComponentinstance to the result logging method). #2661 - NEW:
SarifLoggerprovides aComputeHashDatacallback to provide hash data for in-memory scan targets. #2614 - NEW: Provide
HashUtilities.ComputeHashes(Stream)and `ComputeHashesForText(string) helpers. #2614
v3.1.0 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Loosen
System.Collections.Immutableminimum version requirement to 1.5.0. #2504
v3.0.0 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Loosen Newtonsoft.JSON minimum version requirement to 6.0.8 (for .NET framework) or 9.0.1 (for all other compilations) for Sarif.Sdk. Sarif.Converts requires 8.0.1, minimally, for .NET framework compilations.
- BUG: Broaden set of supported .NET frameworks for compatibility reasons. Sarif.Sdk, Sarif.Driver and Sarif.WorkItems requires net461.
v2.4.16 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK: SARIF now requires Newtonsoft.JSON 13.0.1. Updating Newtonsoft.Json to v13.0.1, Microsoft.Json.Schema to v1.1.5, Microsoft.Json.Pointer to v1.1.5, Microsoft.Azure.Kusto.Data to v10.0.3, Microsoft.NET.Test.Sdk to v17.4.0-preview-20220707-01, Microsoft.Extensions.Logging.ApplicationInsights to v.2.20.0, Microsoft.TeamFoundationServer.Client to v.16.170.0, Microsoft.Coyote to v.1.5.8 and Microsoft.Coyote.Test to v.1.5.8 in response to Advisory: Improper Handling of Exceptional Conditions in Newtonsoft.Json. #2504
- BUG: Fix false positive for
SARIF1002.UrisMustBeValidfor file URIs that omit theauthority. #2501 - NEW: Add
max-file-size-in-kbargument that allows filtering scan targets by file size. #2494
v2.4.15 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Fix
ArgumentNullExceptionwhenPropertiesDictionaryis instantiated with a null comparer. #2482 - BUG: Fix
UnhandledEngineExceptionwhen target path does not exist for multithreaded application by validating directories as is done for singlethreaded analysis. #2461
v2.4.14 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK:
Idproperty ofLocationchanged fromint(32bit) toBigInteger(unlimited) to fixNewtonsoft.Json.JsonReaderException: JSON integer XXXXX is too large or small for an Int32.#2463 - BUG: Eliminate dispose of stream and
StreamWriterarguments passed toSarifLog.Savehelpers. This would result inObjectDisposedExceptionbeing raised on attempt to access streams after save.
v2.4.13 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK:
AnalyzeCommandBasepreviously persisted all scan target artifacts to SARIF logs rather than only persisting artifacts referenced by an analysis result, when an option to persist hashes, text file or binary information was set.MultithreadedAnalyzeCommandBasepreviously persisted all scan targets artifacts to SARIF logs in cases when hash insertion was eenabled rather than only persisting artifacts referenced by an analysis result. #2433 - BRK: Fix
InvalidOperationExceptionwhen using PropertiesDictionary in a multithreaded application, and remove[Serializable]from it. Now use of BinaryFormatter on it will result inSerializationException: TypePropertiesDictionaryis not marked as serializable. #2415 - BRK:
SarifLoggernow emits an artifacts table entry ifartifactLocationis not null for tool configuration and tool execution notifications. #2437 - BUG: Adjust Json Serialization property order for ReportingDescriptor and skip emit empty AutomationDetails node. #2420
- BUG: Fix
ArgumentExceptionwhen--recurseis enabled and two file target specifiers generates the same file path. #2438 - BUG: Fix 'InvalidOperationException' with message
Collection was modified; enumeration operation may not executeinMultithreadedAnalyzeCommandBase, which is raised when analyzing with the--hashesswitch. #2447 - BUG: Fix
Mergecommand produces empty SARIF file in Linux when providing file name only without path. #2408 - BUG: Fix
NullReferenceExceptionwhen filing work item with a SARIF file which has no filable results. #2412 - BUG: Fix missing
endLineandendColumnproperties and remove vulnerable packages for ESLint SARIF formatter. #2458 - NEW: Add
--sort-resultsargument to therewritecommand to get sorted SARIF results. #2422
v2.4.12 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Fix number of results when filing work item. #2391
- BUG: Fix
TryIsSuppressedlogic. #2395 - NEW: Add
suppresscommand to multitool. #2394 - NEW:
MultithreadCommandBasewill use cache when hashing is enabled. #2388 - NEW: Flow suppressions when baselining. #2390
v2.4.11 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Fix partitioning visitor log duplication. #2369
- NEW: Add
baselineargument inAnalyzeCommandBaseclasses. #2371 - NEW: Clang-Tidy converter will also accept console output log. #2373
v2.4.10 Sdk | Driver | Converters | Multitool | Multitool Library
- NEW: Add Clang-Tidy converter. #2367
v2.4.9 Sdk | Driver | Converters | Multitool | Multitool Library
v2.4.8 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Fix
file-work-itembaselining. #2344 - BUG: Fix
FileRegionsCachecontext region construction. #2348
v2.4.7 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Fix
SubIdhandling inCachingLogger. #2334 - NEW: Add Hdf converter. #2340
- BUG: Fix max result ingestion from
GitHubIngestionVisitor. #2341
v2.4.6 Sdk | Driver | Converters | Multitool | Multitool Library
- NEW: Add CWE relationship in FlawFinder converter. #2332
- NEW: Add
ResultLevelKindwhich will handleFailureLevelandResultKind. #2331 - BUG: Fix
GitHelperlogic. #2327
v2.4.5 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Fix
FileRegionsCachelogic. #2309
v2.4.4 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Fix performance issue in
CachingLogger. #2301 - BUG: Fix context dispose while analyzing. #2303
- BUG: Fix export json configuration. #2305
- BUG: Fix thread issues while using
Cache. #2306
v2.4.3 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Fix issue when executing sarif.multitool. #2298
v2.4.2 Sdk | Driver | Converters | Multitool | Multitool Library
- NEW:
ConstructMultilineContextSnippetwill retrieve a few character after/before to prevent entire file when the file is one line only. #2288 - NEW:
baselinerwill considerlocations. 2290 - BUG: Fix AzureDevOps title maxLength. #2292
- NEW: Add
PerFingerprintandPerPropertyBagPropertysplitting forfile-work-itemscommand. #2293 - NEW: Add
kustocommand in Sarif.Multitool. #2296
v2.4.1 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK: Move
transformfunctionality intorewriteand delete redundanttransformcommand. #2252 - NEW: kind, level, insert, and remove options can now be added to from environment variables. #2273
- NEW:
Mergecommand will de-duplicate results. #2280 - NEW:
Mergecommand will merge artifacts. #2285
v2.4.0 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK: Entirely remove
verbosewhose fuctionality has been replaced by--leveland--kind. #2241 - BRK: Rename
LoggingOptionstoLogFilePersistenceOptions. #2241 - NEW:
--quietwill now suppress all console messages except for errors. #2241 - BUG: Fix NullReference in SARIF1012 rule validation [#2254]. (microsoft#2254)
- BRK: Rename
--plug-into--plugin. #2264 - NEW: Pass
--pluginto load more binaries to analyze or export data. #2264
v2.3.18 Sdk | Driver | Converters | Multitool | Multitool Library
- NEW: Relax GH1005. #2248
v2.3.17 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK: Move
CommandBaseclass fromMultitool.Libraryassembly toDriver. #2238 - NEW: Argument
VersionControlDetailsforOptionallyEmittedDatain a analysis command will fillVersionControlProvenance. #2237
v2.3.16 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK: Rename flag
VersionControlInformationtoVersionControlDetailsfromOptionallyEmittedData. #2222 - BUG: Fix filtering when using the command
analyzewith custom configuration. #2230 - NEW: If argument
computeFileHashes, it will be converted toOptionallyEmittedData.Hashes. #2231 - NEW: Ensure all command options argument properties are settable (useful for API-driven invocation). #2234
- NEW: TargetUri from context can be relative. #2235
v2.3.14 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Fix concurrency issue in when using
Cache. #2215 - NEW:
ConsoleLoggerwill print exception if that exists. #2217 - BUG: Fix
WebRequestparameters parse that resulted in regex hang #2219
- DEPENDENCY BRK: SARIF now requires Newtonsoft.JSON 12.0.3.
- Add
PerRunsplitting strategy for log file refactoring.
v2.3.10 Sdk | Driver | Converters | Multitool | Multitool Library
- BRK: Rename package
WorkItemstoMicrosoft.WorkItems. #2180 - BUG: Fix
export-validation-configexception. #2181
v2.3.9 Sdk | Driver | Converters | Multitool | Multitool Library
- NEW: Multitool SARIF rewrite accepts
removeparameter. #2160 - BRK: Remove command
export-validation-docsand extendexport-validation-rulescommand to export markdown file. #2156 - DEPENDENCY BRK: SARIF now requires Newtonsoft.JSON 11.0.2 (rather than 10.0.3). #2172
- BRK: Remove unused
runargument from FileRegionsCache constructors. #2173 - BRK: Rename various methods in
IFileSystemandFileSystemclasses (to consistently prefix all method names with their containing .NET static type, e.g.Directory. #2173
v2.3.8 Sdk | Driver | Converters | Multitool | Multitool Library
- NEW: PACKAGE BRK: Upgrade from .NET Framework 4.5 to .NET Framework 4.5.2. #2135
- NEW: Multitool SARIF merge accepts
threadsparameter. #2026 - NEW: Enable GitHub SourceLink to all project #2148
v2.3.7 Sdk | Driver | Converters | Multitool | Multitool Library
- DEPENDENCY BRK: SARIF now requires Newtonsoft.JSON 11.0.2 (rather than 10.0.3)
- DEPENDENCY: SARIF TypeScript package now requires minimist 1.2.3 or later (rather than >=1.2.0)
- BUG: Fix index out of range exception when baselining #2102
- NEW: Add a setter to
GitHelper.GitExePath. #2110 - NEW:
GitHelperwill search in %PATH% variable forgit.exeinstead of its default install location. #2107 - NEW: Add helper in
SarifLogandRuntoApplyPolicies. #2109 - NEW: Add a converter for FlawFinder's CSV output format. #2092
- NEW: Multitool SARIF output is now pretty-printed by default. To remove white space, specify
--minify. #2098 - NEW: The Multitool
querycommand can now evaluate properties in the result and rule property bags, for examplesarif query "properties.confidence:f > 0.95 AND rule.properties.category == 'security'" - NEW: The validation rule
SARIF1004.ExpressUriBaseIdsCorrectlynow verifies that if anartifactLocation.uriis a relative reference, it does not begin with a slash. #2090 - BUG: GitHub policy should not turn off any note level rules. #2089
- NEW: Add
apply-policycommand to Multitool. #2118
v2.3.6 Sdk | Driver | Converters | Multitool | Multitool Library
- BUG: Restore multitool client app package build.
- BUG: Fix ESLint additional formatter corner cases that result in invalid SARIF.
- NEW: COMMAND-LINE BRK: The analysis rules that validate a SARIF file's compatibility with GitHub Advanced Security code scanning now have rule ids that begin with
GHrather thanSARIF.
v2.3.5 Sdk | Driver | Converters | Multitool | Multitool Library
- NEW: COMMAND-LINE BRK: Validation rule
SARIF2005.ProvideToolPropertiesnow requiresinformationUri, it allowsdottedQuadFileVersionto satisfy the requirement that version information be present, and it is configurable. - NEW: Extract the public APIs from Sarif.Multitool into a new dependency package Sarif.Multitool.Library. Sarif.Multitool remains as a dotnet tool package.
- NEW: Validation rule
SARIF2012now checks for the presence of a friendly name in PascalCase in thenameproperty, and is renamed fromProvideHelpUristoProvideRuleProperties. - NEW: The Multitool
rewritecommand now acceptsVersionControlInformationas an argument to the--insertoption. This argument populatesrun.versionControlProvenance, and it re-expresses all absolute URIs as relative references with respect to the nearest enclosing repository root, if any.
v2.3.4 Sdk | Driver | Converters | Multitool
- COMMAND-LINE BRK: Change
mergecommand output directory argument name tooutput-directory. - NEW: Add analysis rules appropriate for SARIF files that are to be uploaded to GitHub Advanced Security code scanning.
- BUG: Various Fortify FPR converter improvements (such as improve variable expansion in result messages).
- BUG: The validator no longer reports
SARIF2010.ProvideCodeSnippetsif embedded file content for the specified artifact is present. #2003
v2.3.3 Sdk | Driver | Converters | Multitool
- NEW: Improve
SarifSdkSampleapplication: useuriBaseIds. - NEW: Add additional checks to SARIF analysis rule
SARIF2004.OptimizeFileSize. - NEW: Introduce new SARIF analysis rule
SARIF2016.FileUrisShouldBeRelative. - BUG: If you created a URI from an absolute file path (for example,
C:\test\file.c), then it would be serialized with that exact string, which is not a valid URI. This is now fixed. #2001
v2.3.2 Sdk | Driver | Converters | Multitool
- NEW: The
Sarif.Multitoolcommand line verbs are now exposed programmatically. For example, thevalidateverb is exposed through the classesValidateCommandandValidateOptions.
v2.3.1 Sdk | Driver | Converters | Multitool
- NEW: Revised and improved validation rules in
Sarif.Multitool. - NEW: Properties serialization performance improved (~20% faster load when Results use Properties).
- NEW: Allow result messages to be truncated for display. #1915
- BUG: Rebase URI command now honors
--insertand--removearguments for injecting or eliding optional data (such as region snippets). - BUG: Ensure all DateTimes on object model are using DateTimeConverter consistently.
- BUG: Fix DateTime roundtripping in properties collections to follow normal DateTime output format.
v2.3.0 Sdk | Driver | Converters | Multitool
- BUG:
ResultLogJsonWriternow creates an emptyresultsarray if there are no results, rather than leavingresultsasnull. #1821 - BUG: In validation rules,
shortDescriptionis now calculated byGetFirstSentencemethod, fixing a bug in sentence breaking. #1887 - BUG:
WorkItemFilernow logs correctly the details forLogMetricsForProcessedModelmethod #1896 - NEW: Add validation rule
SARIF1019, which requires every result to have at least one ofresult.ruleIdandresult.rule.id. If both are present, they must be equal. #1880 - NEW: Add validation rule
SARIF1020, which requires that the $schema property should be present, and must refer to the final version of the SARIF 2.1.0 schema. #1890 - NEW: Expose
Run.MergeResultsFrom(Run)to merge Results from multiple Runs using code from result matching algorithm. - BRK: Rename
RemapIndicesVisitortoRunMergingVisitorand redesign to control how much merging occurs internally.
v2.2.5 Sdk | Driver | Converters | Multitool
- BUG: Fix SDK doubling Uris with certain escaped characters (ex: '-' and '_') on every Load/Save cycle (cause: dotnet/runtime#36288)
v2.2.4 Sdk | Driver | Converters | Multitool
- BUG: Validation rule SARIF1018 was not checking for a trailing slash on
uriproperties inoriginalUriBaseIdsifuriBaseIdwas present. - BUG: Build Sarif.Multitool NPM package non-trimmed to avoid more assembly load problems.
- NEW: DeferredList will cache last item returned and won't throw if same instance written. (SarifRewritingVisitor + Deferred OM usable)
v2.2.3 Sdk | Driver | Converters | Multitool
- NEW: Introduce
SarifConstants.SarifFileExtensionwith value".sarif". - NEW: In validation rule SARIF1018, require
urivalues inoriginalUriBaseIdsto end with a slash, per the SARIF spec. - BUG: Result.GetRule will look up by RuleId if RuleIndex not present.
- BUG: Baselining will properly persist Run.Tool.Driver.Rules if Results reference by RuleId.
- BUG: DeferredOM will properly load files with a BOM. (LineMappingStreamReader fix)
- BUG: Remove CsvHelper dependency to avoid assembly load problem in Sarif.Multitool NPM package.
v2.2.2 Sdk | Driver | Converters | Multitool
- BUG:
dotnet tool installcommand for Multitool now produces a working installation rather than reporting missingSarif.Convertersbinary. - BUG: Result.GetRule will look up by RuleId if RuleIndex not present.
- BUG: Baselining will properly persist Run.Tool.Driver.Rules if Results reference by RuleId.
- BUG: DeferredOM will properly load files with a BOM. (LineMappingStreamReader fix)
v2.2.1 Sdk | Driver | Converters | Multitool
- NEW: Multitool
removeoption now supportsGuidsvalue to removeResult.Guid. - NEW: Significant Baselining algorithm improvements: dynamic
partialFingerprinttrust, location-specific unique what property matching, 'nearby' matching, correct omittedRegionproperty handling, correctReportingDescriptor.DeprecatedIdshandling. - DEPENDENCY BRK: SARIF now requires Newtonsoft.JSON 10.0.3 (rather than 9.0.x).
v2.2.0 Sdk | Driver | Converters | Multitool
- PACKAGE BRK: Update tool directory to netstandard2.1, to reflect use of that version of .NET Core.
- NEW: Multitool
rewritecommand performance when populating regions and snippets is greatly improved. - NEW: Multitool
insertoption now supportsGuidsvalue to populateResult.Guid. - API + SCHEMA BRK: Fix typo in schema: suppression.state should be suppression.status according to the spec. #1785
- BUG: Multitool
rewriteno longer throws when it encounters an invalid value (such as -1) for a region property. - BUG: ESLint SARIF formatter no longer produces invalid SARIF when given an ESLint message with no rule id. It is treated as a
toolConfigurationNotification. #1791 - BUG: Resolve crash on converting PREfast log files with non-null but empty help URLs.
v2.1.25 Sdk | Driver | Converters | Multitool
- NEW: The baseliner (available through the Multitool's
match-results-forwardcommand) now populatesresult.provenance.firstDetectionTimeUtcso you can now track the age of each issue. #1737
v2.1.24 Sdk | Driver | Converters | Multitool
- NEW: Introduce API to partition log files by arbitrary criteria (method
SarifPartitioner.Partitionand classPartitioningVisitor). - BUG:
Tool.CreateFromAssemblynow properly handles file versions that contain extra characters after the "dotted quad" string. #1728
v2.1.23 Sdk | Driver | Converters | Multitool
- API BRK: Remove 'Errors.LogExceptionLoadingPdb' helper (as not relevant to core SDK).
- NEW: Allow emitting non-failure tool notifications as debug/informational messages.
- NEW:
SarifLoggernow populatestool.driver'sorganizationandproductproperties instead of adding"Company"and"ProductName"totool.driver's property bag. #1716 - NEW: Add
closeWriterOnDisposeargument (with a default of 'true') that indicates whether SarifLogger writers are closed during its Dispose() method. Providing a value offalseto this argument allows SarifLogger to work against a stream that can subsequently be reused (for example, to deserialize the logged content back to aSarifLoginstance). - NEW: Update PREfast converter to render optional suppression data.
- BUG: Update PREfast converter to handle paths with no trailing slash.
- BUG: Baselining now matches the first and last Result per URI as an additional pass.
v2.1.22 Sdk | Driver | Converters | Multitool
- BUG: Fix bug in validation rule
EndTimeMustNotBeBeforeStartTime, which threw ifinvocation.startTimeUtcwas present butendTimeUtcwas absent.
v2.1.21 Sdk | Driver | Converters | Multitool
- NEW: Provide an API
SarifPartitioner.Filterthat selects results according to a predicate, and filtersrun.artifactsto only those artifacts used by the included results.
v2.1.20 Sdk | Driver | Converters | Multitool
- NEW: Added Stream-based SarifLog.Load and Save overloads
- NEW: Enhanced property bag serialization unit testing. #1673
- BUG: Fix packaging warning NU5048 during build. #1687
- BUG: SarifLogger.Optimized could not be set from the command line. #1695
- BUG: Result Matching now omits previously Absent results.
- BUG: Result Matching properly compares results from the same RuleID when multiple Rules match the same source line.
- BUG: Result Matching works when a result moves and has the line number in the message.
- BUG: Result Matching always assigns Result.CorrelationGuid and Result.Guid.
- BUG: Null hardening in Result Matching
- BUG: Console logger now outputs file location, if available, when writing notifications.
v2.1.19 Sdk | Driver | Converters | Multitool
- Sort driver skimmers by rule id + name during analysis, in order to improve deterministic ordering of log file data.
- API BRK: Convert various public SARIF Driver framework API to prefer abstract ISet type over HashSet.
- API BRK: Remove helper method
SarifUtilities.DeserializeObjectintroduced in 2.1.15 to fix. #1577 Now that an underlying bug inPropertyBagConverterhas been fixed, there is no need to work around it with this helper method.JsonConvert.DeserializeObjectworks fine. - NEW: Expanding Sarif SDK query mode to support Result.Uri, string StartsWith/EndsWith/Contains.
- NEW: Adding Result.Run and a populating method, so that methods which need the Run context for a given Result have an integrated way to retrieve it.
v2.1.17 Sdk | Driver | Converters | Multitool
- API NON-BRK: emit all core object model members as 'virtual'.
- NEW: Introduce SarifConsolidator to shrink large log files. #1675
- BUG: Analysis rule SARIF1017 incorrectly rejected index-valued properties that referred to taxonomies. #1678
- BUG:
match-results-forward-commanddropped log contents and mishandledrulesarray. #1684
v2.1.16 Sdk | Driver | Converters | Multitool
- BUGFIX, BRK: In the Multitool
pagecommand, the default for--forcewastrueand it could not be changed. #1630 - BUG: The Multitool
match-results-forwardcommand failed if results included logical locations. #1656 - BUG:
SarifLogger(ReportingDescriptor rule, Result result)failed if it tried to log a result whoseruleIdwas a sub-rule; for example,rule.Id == "TEST0001"butresult.ruleId == "TEST0001/1". #1668 - NEW: Implement results and notifications caching when
--hashesis specified on the SARIF driver command line.
v2.1.15 Sdk | Driver | Converters | Multitool
- BUG: Validation rule
SARIF1015incorrectly requiredoriginalUriBaseIdsto be contain URIs. #1485 - BUG: Persist Fortify rule metadata properties. #1490
- BUG: Multitool transform mishandled dottedQuadFileVersion. #1532
- BUG: Restore missing FxCop converter unit test. #1575
- BUG: Multitool transform mishandled date/time values in property bags. #1577
- BUG: Multitool transform could not upgrade SARIF files from the sarif-2.1.0-rtm.1 schema. #1584
- BUG: Multitool merge command produced invalid SARIF if there were 0 input files. #1592
- BUG: FortifyFpr converter produced invalid SARIF. #1593
- BUG: FxCop converter produced empty
result.messageobjects. #1594 - BUG: Some Multitool commands required --force even if --inline was specified. #1642
- NEW: Add validation rule to ensure correctness of
originalUriBaseIdsentries. #1485 - NEW: Improve presentation of option validation messages from the Multitool
pagecommand. #1629
v2.1.14 Sdk | Driver | Converters | Multitool
- BUG: FxCop converter produced logicalLocation.index but did not produce the run.logicalLocations array. #1571
- BUG: Include Sarif.WorkItemFiling.dll in the Sarif.Multitool NuGet package. #1636
- NEW: Add validation rule to ensure that all array-index-valued properties are consistent with their respective arrays.
v2.1.13 Sdk | Driver | Converters | Multitool
- BUG: Respect the --force option in Sarif.Multitool rather than overwriting the output file. #1340
- BUG: Accept URI-valued properties whose value is the empty string. #1632
v2.1.12 Sdk | Driver | Converters | Multitool
- BUG: Improve handling of
nullvalues in property bags. #1581
v2.1.11 Sdk | Driver | Converters | Multitool
- BUG: Result matching should prefer the suppression info from the current run. #1600
v2.1.10 Sdk | Driver | Converters | Multitool
- BUG: Resolve a performance issue in web request parsing code. microsoft#1608
v2.1.9 Sdk | Driver | Converters | Multitool
- NEW: add --remove switch to eliminate certain properties (currently timestamps only) from log file output.
- BUG: remove verbose 'Analyzing file..' reporting for drivers.
v2.1.8 Sdk | Driver | Converters | Multitool
- BUG: Add missing
"additionalProperties": falseconstraints to schema; add missing object descriptions and improve other object descriptions in schema; update schema version to -rtm.4.
v2.1.7 Sdk | Driver | Converters | Multitool
- BUG: Multitool rewrite InsertOptionalData operations fail if a result object references
run.artifactsusing theindexproperty. - BUG: The
SarifCurrentToVersionOneVisitorwas not translating v2result.partialFingerprintsto v1result.toolFingerprintContribution. #1556 - BUG: The
SarifCurrentToVersionOneVisitorwas droppingrun.idand emitting an emptyrun.stableId. #1557
v2.1.6 Sdk | Driver | Converters | Multitool
- BUG: Fortify FPR converter does not populate originalUriBaseIds if the source is a drive letter (e.g. C:)
- BUG: Multitool rebaseUri command throws null reference exception if results reference run.artifacts using the index property.
- BUG: Pre-release transformer does not upgrade schema uri if input version is higher than rtm.1.
v2.1.5 Sdk | Driver | Converters | Multitool
- Change schemas back to draft-04 to reenable Intellisense in the Visual Studio JSON editor.
v2.1.4 Sdk | Driver | Converters | Multitool
- BUG: Fix bugs related to parsing the query portion of a URI, and to the parsing of header strings.
- API NON-BRK: Introduce
WebRequest.TryParseandWebResponse.TryParseto accompany existingParsemethods.
v2.1.3 Sdk | Driver | Converters | Multitool
- Change schema uri to secure (https) instance.
- BUG: Fix tranformer bug where schema id would not be updated if no other transformation occurred.
- BUG:
ThreadFlowLocation.Kindvalue is getting lost during pre-release transformation. #1502 - BUG:
Location.LogicalLocationconvenience setter mishandles null. #1514 - BUG: Upgrade schemas to latest version (remove
draft-04from$schemaproperty and changeidto$id). This is necessary because the schemas use theuri-referenceformat, which was not defined in draft-04. #1521 - API BRK: The
Initmethods in the Autogenerated SARIF object model classes are nowprotected virtual. This enables derived classes to add additional properties without having to copy the entire code of theInitmethod. - BUG: Transformation from SARIF 1.0 to 2.x throws
ArgumentOutOfRangeException, ifresult.locationsis an empty array. #1526 - BUG: Add
Result.Level(and removeResult.Rank) for Fortify Converter based on MicroFocus feedback. - BUG: Invocation constructor should set
executionSuccessfulto true by default. - BUG: Contrast security converter now populates
ThreadFlowLocation.Location. #1530 - BUG: Contrast Security converter no longer emits incomplete
Artifactobjects. #1529 - BUG: Fix crashing bugs and logic flaws in
ArtifactLocation.TryReconstructAbsoluteUri. - NEW: Provide a SARIF converter for Visual Studio log files.
- NEW: Extend the
PrereleaseCompatibilityTransformerto handle SARIF v1 files. - API NON-BRK: Introduce
WebRequest.ParseandWebResponse.Parseto parse web traffic strings into SARIFWebRequestandWebResponseobjects. - API NON-BRK: Introduce
PropertyBagHolder.{Try}GetSerializedPropertyInfo, a safe way of retrieving a property whose type is unknown.
v2.1.2 Sdk | Driver | Converters | Multitool
- API BRK: Change location.logicalLocation to logicalLocations array. oasis-tcs/sarif-spec#414
v2.1.1 Sdk | Driver | Converters | Multitool
- BUG: Multitool crashes on launch: Can't find CommandLine.dll. #1487
v2.1.0 Sdk | Driver | Converters | Multitool
- API NON-BRK:
PhysicalLocation.idproperty is getting lost during 2.1.0 pre-release transformation. #1479 - Add support for converting TSLint logs to SARIF
- Add support for converting Pylint logs to SARIF
v2.1.0-rtm.0 Sdk | Driver | Converters) | Multitool
- API BRK: OneOf
graphTraversal.runGraphIndexandgraphTraversal.resultGraphIndexis required. - API NON-BRK: Add address.kind well-known values "instruction" and "data". oasis-tcs/sarif-spec#397
- API BRK: Rename
invocation.toolExecutionSuccessfultoinvocation.executionSuccessful. oasis-tcs/sarif-spec#399 - API BRK: Add regex patterns for guid and language in schema.
- API NON-BRK: Add
run.specialLocationsin schema. oasis-tcs/sarif-spec#396 - API BRK: Improve
addressobject design. oasis-tcs/sarif-spec#401
v2.1.0-beta.2 Sdk | Driver | Converters) | Multitool
- API NON-BRK: Change
request.targettype to string. oasis-tcs/sarif-spec#362 - API BRK: anyOf
physicalLocation.artifactLocationandphysicalLocation.addressis required. oasis-tcs/sarif-spec#353 - API BRK: Rename
run.defaultFileEncodingtorun.defaultEncoding. - API NON-BRK: Add
threadFlowLocation.taxa. oasis-tcs/sarif-spec#381 - API BRK: anyOf
message.idandmessage.textis required. - API NON-BRK: Add
request.noResponseReceivedandrequest.failureReason. oasis-tcs/sarif-spec#378 - API BRK: anyOf
externalPropertyFileReference.guidandexternalPropertyFileReference.locationis required. - API BRK:
artifact.lengthshould havedefault: -1, minimum: -1values. - API BRK: Rename
fix.changestofix.artifactChanges. - API BRK: Each redaction token in an originalUriBaseId represents a unique location. oasis-tcs/sarif-spec#377
- API BRK: Rename file related enums in
artifact.roles. - API BRK: anyOf
artifactLocation.uriandartifactLocation.indexis required. - API BRK:
multiformatMessageString.textis required. - API BRK:
inlineExternalPropertiesarray must have unique items. - API BRK:
run.externalPropertyFileReferences, update unique flag and minItems on every item according to spec. - API BRK:
run.markdownMessageMimeTypeshould be removed from schema. - API BRK:
externalPropertyFileReference.itemCountshould have a minimum value of 1. - API NON-BRK: Add
toolComponent.informationUriproperty. - API NON-BRK:
toolComponent.isComprehensivedefault value should be false. - API BRK:
artifact.offsetminimum value allowed should be 0. - API NON-BRK: Add
directoryenum value inartifact.roles. - API BRK:
result.suppressionsarray items should be unique and default to null. - API NON-BRK: Add
suppression.guidin schema. - API BRK:
graph.idshould be removed from schema. - API BRK:
edgeTraversal.stepOverEdgeCountminimum should be 0. - API BRK:
threadFlowLocation.nestingLevelminimum should be 0. - API BRK:
threadFlowLocation.importanceshould default toimportant. - API BRK:
request.indexshould have default: -1, minimum: -1. - API BRK:
response.indexshould have default: -1, minimum: -1. - API NON-BRK:
externalProperties.versionis not a required property if it is not root element. - API NON-BRK: Add artifact roles for configuration files. oasis-tcs/sarif-spec#372
- API NON-BRK: Add suppression.justification. oasis-tcs/sarif-spec#373
- API NON-BRK: Associate descriptor metadata with thread flow locations. oasis-tcs/sarif-spec#381
- API BRK: Move
location.physicalLocation.idtolocation.id. oasis-tcs/sarif-spec#375 - API BRK:
result.stacksarray should have unique items. - API BRK:
result.relatedLocationsarray should have unique items. - API BRK: Separate
suppressionstatusfromkind. oasis-tcs/sarif-spec#371 - API BRK:
reportingDescriptorReferencerequires anyOf (index,guid,id). - API BRK: Rename
requestobject and related properties towebRequest. - API BRK: Rename
responseobject and related properties towebResponse. - API NON-BRK: Add
locationRelationshipobject. oasis-tcs/sarif-spec#375 - API BRK:
externalPropertyFileReference.itemCountcan be 0 and defaults to minimum: -1, default: -1. - API BRK:
threadFlowLocation.executionOrdercan be 0 and defaults to -1, so minimum: -1, default: -1 - API BRK: Rename artifact role
traceFiletotracedFile. - API NON-BRK: Add artifact role
debugOutputFile. - API NON-BRK: Add
valuetothreadFlowLocation.kinds. - API NON-BRK: Add a new value to
result.kind:informational. - API NON-BRK: add
address.kindvaluesfunctionandpage. - API NON-BRK:
run.columnKindhas no default value. - API NON-BRK: In the
reportingDescriptorRelationshipobject, add a propertydescriptionof typemessage, optional. - API NON-BRK: In the
locationRelationshipobject, add a propertydescriptionof typemessage, optional. - API BRK:
region.byteOffsetshould have default: -1, minimum: -1. - API BRK: Change
notification.physicalLocationof typephysicalLocationtonotification.locationsof typelocations.
v2.1.0-beta.1 Sdk | Driver | Converters) | Multitool)
- API BRK: Change
request.uritorequest.target. oasis-tcs/sarif-spec#362
v2.1.0-beta.0 Sdk | Driver | Converters) | Multitool)
- API BRK: All SARIF state dictionaries now contains multiformat strings as values. oasis-tcs/sarif-spec#361
- API NON-BRK: Define
requestandresponseobjects. oasis-tcs/sarif-spec#362
v2.0.0-csd.2.beta.2019.04-03.3 Sdk | Driver | Converters) | Multitool)
- API BRK: Rename
reportingDescriptor.descriptortoreportingDescriptor.target. oasis-tcs/sarif-spec#356 - API NON-BRK: Remove
canPrecedeOrFollowfrom relationship kind list. oasis-tcs/sarif-spec#356
v2.0.0-csd.2.beta.2019.04-03.2 Sdk | Driver | Converters) | Multitool)
- API NON-BRK: Add
moduletoaddress.kind. oasis-tcs/sarif-spec#353 - API BRK:
address.baseAddress&address.offsetto int. oasis-tcs/sarif-spec#353 - API BRK: Update how reporting descriptors describe their taxonomic relationships. oasis-tcs/sarif-spec#356
- API NON-BRK: Add
initialStateandimmutableStateproperties to thread flow object. AddimmutableStatetographTraversalobject. oasis-tcs/sarif-spec#168
v2.0.0-csd.2.beta.2019.04-03.1 Sdk | Driver | Converters) | Multitool)
- API BRK: Rename
message.messageIdproperty tomessage.id. oasis-tcs/sarif-spec#352
v2.0.0-csd.2.beta.2019.04-03.0 Sdk | Driver | Converters) | Multitool)
- API NON-BRK: Introduce new localization mechanism (post ballot changes). oasis-tcs/sarif-spec#338
- API BRK: Add
addressproperty to alocationobject (post ballot changes). oasis-tcs/sarif-spec#302 - API NON-BRK: Define result
taxonomies. oasis-tcs/sarif-spec#314 - API NON-BRK: Define a
reportingDescriptorReferenceobject. oasis-tcs/sarif-spec#324 - API BRK: Change
run.graphsandresult.graphsfrom objects to arrays. oasis-tcs/sarif-spec#326 - API BRK: External property file related renames (post ballot changes). oasis-tcs/sarif-spec#335
- API NON-BRK: Allow toolComponents to be externalized. oasis-tcs/sarif-spec#337
- API BRK: Rename all
instanceGuidproperties toguid. oasis-tcs/sarif-spec#341 - API NON-BRK: Add
reportingDescriptor.deprecatedNamesanddeprecatedGuidsto matchdeprecatedIdsproperty. oasis-tcs/sarif-spec#346 - API NON-BRK: Add
referencedOnCommandLineas a role. oasis-tcs/sarif-spec#347 - API NON-BRK: Rename
reportingConfigurationOverridetoconfigurationOverride. oasis-tcs/sarif-spec#350
v2.0.0-csd.2.beta.2019.02-20 Sdk | Driver | Converters) | Multitool)
- COMMAND-LINE BRK: Rename
--sarif-versionto--sarif-output-version. Remove duplicative tranform--target-versioncommand-line argument. - COMMAND-LINE NON-BRK: add
--inlineoption to multitoolrebaseuriverb, to write output directly into input files. - API NON-BRK: Add additional properties to
toolComponent. oasis-tcs/sarif-spec#336 - API NON-BRK: Provide a caching mechanism for duplicated code flow data. oasis-tcs/sarif-spec#320
- API NON-BRK: Add
inlineExternalPropertyFilesat the log level. oasis-tcs/sarif-spec#321 - API NON-BRK: Update logical location kinds to accommodate XML and JSON paths. oasis-tcs/sarif-spec#291
- API NON-BRK: Define result taxonomies. oasis-tcs/sarif-spec#314
- API BRK: Remove
invocation.attachments, now replaced byrun.tool.extensions. oasis-tcs/sarif-spec#327 - API NON-BRK: Introduce new localization mechanism. oasis-tcs/sarif-spec#338
- API BRK: Remove
tool.languageand localization support. oasis-tcs/sarif-spec#325 - API NON-BRK: Add additional properties to toolComponent. oasis-tcs/sarif-spec#336
- API BRK: Rename
invocation.toolNotificationsandinvocation.configurationNotificationstotoolExecutionNotificationsandtoolConfigurationNotifications. oasis-tcs/sarif-spec#330 - API BRK: Add address property to a location object (and other nodes). oasis-tcs/sarif-spec#302
- API BRK: External property file related renames. oasis-tcs/sarif-spec#335
v2.0.0-csd.2.beta.2019.01-24.1 Sdk | Driver | Converters) | Multitool)
- BUG:
region.charOffsetdefault value should be -1 (invalid value) rather than 0. Fixes an issue whereregion.charLengthis > 0 butregion.charOffsetis absent (because its value of 0 was incorrectly elided due to being the default value).
v2.0.0-csd.2.beta.2019.01-24 Sdk | Driver | Converters) | Multitool)
- BUG: SDK compatibility update for sample apps.
- BUG: Add Sarif.Multitool.exe.config file to multitool package to resolve "Could not load file or assembly
Newtonsoft.Json, Version=9.0.0.0" exception on using validate command. - API BRK: rename baselineState
existingvalue tounchanged. Add new baselineState valueupdated. oasis-tcs/sarif-spec#312 - API BRK: unify result and notification failure levels (
note,warning,error). Break out result evaluation state intoresult.kindproperty with valuespass,fail,open,review,notApplicable. oasis-tcs/sarif-spec#317 - API BRK: remove IRule entirely, in favor of utilizing ReportingDescriptor base class.
- API BRK: define
toolComponentobject to persist tool data. Thetool.drivercomponent documents the standard driver metadata.tool.extensionsis an array oftoolComponentinstances that describe extensions to the core analyzer. This change also deletestool.sarifLoggerVersion(from the newly createdtoolComponentobject) due to its lack of utility. Addsresult.extensionIndexto allow results to be associated with a plug-in.toolComponentalso added as a new file role. oasis-tcs/sarif-spec#179 - API BRK: Remove
run.resourcesobject. Renameruleobject toreportingDescriptor. Move rule and notification reportingDescriptor objects totool.notificationDescriptorsandtool.ruleDescriptors.resources.messageStringsnow located attoolComponent.globalMessageStrings.rule.configurationproperty now namedreportingDescriptor.defaultConfiguration.reportingConfiguration.defaultLevelandreportingConfiguration.defaultRanksimplified toreportingConfiguration.levelandreportingConfiguration.rank. Actual runtime reportingConfiguration persisted to new array of reportingConfiguration objects atinvocation.reportingConfiguration. oasis-tcs/sarif-spec#311 - API BRK:
run.richTextMessageMimeTyperenamed torun.markdownMessageMimeType.message.richTextrenamed tomessage.markdown.message.richMessageIddeleted. CreatemultiformatMessageStringobject, that holds plain text and markdown message format strings.reportingDescriptor.messageStringsis now a dictionary of these objects, keyed by message id.reporting.Descriptor.richMessageStringsdictionary is deleted. oasis-tcs/sarif-spec#319 - API BRK:
threadflowLocation.kindis nowthreadflowLocation.kinds, an array of strings that categorize the thread flow location. oasis-tcs/sarif-spec#202 - API BRK:
filerenamed toartifact.fileLocationrenamed toartifactLocation.run.filesrenamed torun.artifacts. oasis-tcs/sarif-spec#309
v2.0.0-csd.2.beta.2019-01-09 Sdk | Driver | Converters | Multitool
- BUG: Result matching improvements in properties persistence.
- NEW: Fortify FPR converter improvements.
- API NON-BRK: Remove uniqueness requirement from
result.locations. - API NON-BRK: Add
run.newlineSequencesto schema. oasis-tcs/sarif-spec#169 - API NON-BRK: Add
rule.deprecatedIdsto schema. oasis-tcs/sarif-spec#293 - API NON-BRK: Add
versionControlDetails.mappedTo. oasis-tcs/sarif-spec#248 - API NON-BRK: Add result.rank
. AddruleConfiguration.defaultRank`. - API NON-BRK: Add
file.sourceLocationandregion.sourceLanguageto guide in snippet colorization.run.defaultSourceLanguageprovides a default value. oasis-tcs/sarif-spec#286 - API NON-BRK: default values for
result.rankandruleConfiguration.defaultRankis now -1.0 (from 0.0). oasis-tcs/sarif-spec#303 - API BRK: Remove
run.architectureoasis-tcs/sarif-spec#262 - API BRK:
result.messageis now a required property oasis-tcs/sarif-spec#283 - API BRK: Rename
tool.fileVersiontotool.dottedQuadFileVersionoasis-tcs/sarif-spec#274 - API BRK: Remove
openfrom valid rule default configuration levels. The transformer remaps this value tonote. oasis-tcs/sarif-spec#288 - API BRK:
run.columnKinddefault value is nowunicodeCodePoints. The transformer will injectutf16CodeUnits, however, when this property is absent, as this value is a more appropriate default for the Windows platform. #1160 - API BRK: Make
run.logicalLocationsan array, not a dictionary. Add result.logicalLocationIndex to point to associated logical location. - API BRK:
run.externalFilesrenamed torun.externalPropertyFiles, which is not a bundle of external property file objects. NOTE: no transformation will be provided for legacy versions of the external property files API. - API BRK: rework
result.provenanceobject, including moving result.conversionProvenance toresult.provenance.conversionSources. NOTE: no transformation currently exists for this update. - API BRK: Make
run.filesan array, not a dictionary. Add fileLocation.fileIndex to point to a file object associated with the location withinrun.files. - API BRK: Make
resources.rulesan array, not a dictionary. Add result.ruleIndex to point to a rule object associated with the result withinresources.rules. - API BRK:
run.logicalLocationsnow requires unique array elements. oasis-tcs/sarif-spec#304
v2.0.0-csd.2.beta.2018-10-10.2 Sdk | Driver | Converters | Multitool
- BUG: Don`t emit v2 analysisTarget if there is no v1 resultFile.
- BUILD: Bring NuGet publishing scripts into conformance with new Microsoft requirements.
v2.0.0-csd.2.beta.2018-10-10.1 Sdk | Driver | Converters | Multitool
- BUG: Persist region information associated with analysis target
v2.0.0-csd.2.beta.2018-10-10 Sdk | Driver | Converters | Multitool
- NEW:Add --sarif-version command to driver (to transform SARIF output to v1 format)
- BUG: Drop erroneous persistence of redaction tokens as files objects.
- API NON-BRK: Add
result.occurrenceCount(denotes # of occurrences of an identical results within an analysisRun) - API NON-BRK: Add
run.externalFilesobject to schema. Sync generally to OASIS TC schema. - API BRK:
originalUriBaseIdsis now a dictionary of file locations, not strings. - API BRK: Suffix
invocation.startTime,invocation.endTime,file.lastModifiedTimeandnotification.timewith Utc (startTimeUtc,endTimeUtc, etc.). - API BRK:
threadflowLocation.timestamprenamed toexecutionTimeUtc. - API BRK:
versionControlDetails.timestamprenamed toasOfTimeUtc. - API BRK:
versionControlDetails.urirenamed torepositoryUri. - API BRK:
versionControlDetails.tagrenamed torevisionTag - API BRK:
exception.messagetype converted from string to message object. - API BRK:
file.hashesis now a string/string dictionary, not an array ofhashobjects (the type for which is deleted) - API BRK:
run.instanceGuid,run.correlationGuid,run.logicalId,run.descriptioncombined into newrunAutomationDetailsobject instance defined atrun.id. - API BRK:
run.automationLogicalIdsubsumed byrun.aggregateIds, an array ofrunAutomationDetailsobjects. - API BRK: Remove
threadFlowLocation.step - API BRK:
invocation.workingDirectoryis now a FileLocation object (and not a URI expressed as a string)
v2.0.0-csd.1.0.2 Sdk | Driver | Converters | Multitool
- BUG: In result matching algorithm, an empty or null previous log no longer causes a NullReferenceException.
- BUG: In result matching algorithm, duplicate data is no longer incorrectly detected across files. Also: changed a "NotImplementedException" to the correct "InvalidOperationException".
v2.0.0-csd.1.0.1 Sdk | Driver | Converters | Multitool
- API BREAKING CHANGE: Fix weakly typed CreateNotification calls and make API more strongly typed
- API BREAKING CHANGE: Rename OptionallyEmittedData.ContextCodeSnippets to ContextRegionSnippets
- API BREAKING CHANGE: Eliminate result.ruleMessageId (in favor of result.message.messageId)
v2.0.0-csd.1 Sdk | Driver | Converters | Multitool
- Convert object model to conform to SARIF v2 CSD.1 draft specification
- Distinguish textual vs. binary file persistence in rewrite option (and allow for both in multitool rewrite verb)
- NOTE: the change above introduces a command-line breaking change. --persist-file-contents is now renamed to --insert
- Add ComprehensiveRegionProperties, RegionSnippets and ContextCodeSnippets as possible qualifier to --insert option
- Provide SARIF v1.0 object model and v1 <-> v2 transformation API
v1.7.5 Sdk | Driver | Converters | Multitool
- Disabling skimmers text fix
- Fix a serialization bug with strings in a PropertyBag (not correctly escaped after a reserializing the data structure).
- Multitool improvements--added "rebaseUri" and "absoluteUri" tasks, which will either make the URIs in a SARIF log relative to some base URI, or take base URIs stored in SARIF and make the URIs absolute again.
- Added a "processing pipeline" model to the SARIF SDK in order to allow easy chaining of operations on SARIF logs (like making all URIs relative/absolute).
v1.7.4 Sdk | Driver | Converters | Multitool
- Platform Specific Tooling Text Fix
- Skimmers can now be disabled via the configuration file
- The Driver will now pull configuration from a default location to allow for easier re-packaging of tools with custom configurations
v1.7.3 Sdk | Driver | Converters | Multitool
- Make SupportedPlatform a first class concept for skimmers
- Rename --pretty argument to --pretty-print
v1.7.2 Sdk | Driver | Converters | Multitool
- Update Multitool nuget package build
- Enable "pretty print" .sarif formatting via --pretty argument
- Code sign 3rd party dependency assemblies (CommandLineParser, CsvHelper, Newtonsoft.Json)
- Remove -beta flag from Driver and Multitool packages
v1.7.1 Sdk | Driver | Converters | Multitool
- Update nuget package build
v1.7.0 Sdk | Driver | Converters | Multitool
- Security and accessibility clean-up
- TSLint converter fixes
- Provide .NET core version
- VSIX improvements (including auto-expansion of file contents persisted to SARIF logs)
- Enable persistence of base64-encoded file contents via SarifLogger.
- Rename AnalyzeOptions.ComputeTargetsHash to ComputeFileHashes
- Fix bug in Semmle conversion (crash on embedded file:// scheme links)
- Enable converter plugins
- Adjust RuntimeConditions enum so that
command line parseerror is 0x1.
- Resolved crash deserializing empty property bags
- Track RuntimeConditions.OneOrMoreWarnings|ErrorsFired in RuleUtilities.BuildResult
- Update default AnalyzeCommandBase behavior to utilize rich return code, if specified.
- Expose EntryPointUtilities helpers as public
- Add EntryPointUtilities class that provides response file injection assistance
- Rich return code support
- Control invocation property logging
- Add JSON settings persistence
- Populate context objects from configuration file argument
- Loosen requirement to explicitly provide --config argument for default configuration
- Convert Semmle embedded links to related locations
- Add File/Open of Semmle CSV to VS add-ing
- Eliminate redundant output of notifications
- Update FileSpecifier to resolve patternts such as File* properly
- Preliminary Semmle converter
- Further refinements to output on analysis completion.
- Provide better reporting for non-fatal messages.
- Add
configurationmember to rule objects
- Update schema for
annotationsobject required properties
- Resolve crash generating
not applicablemessages
- Add
annotationsmember to annotatedCodeLocation object. - Rename annotatedCodeLocation
variablesmember tostate - Rename annotatedCodeLocation
parametersmember tovalues
- API BREAKING CHANGE: RuleUtilities.BuildResult no longer automatically prepends the target file path to the list of FormattedRuleMessage.Arguments array in the Result object being built.
- Add static helper method
AnalyzeCommandBase.LogToolNotification.
- Add
--quietoption to suppress console output.
- API BREAKING change: rename PropertyBagDictionary to PropertiesDictionary
- Add
functionReturnto annotatedCodeLocation.kind - Remove
source,sinkandsanitizerfrom annotatedCodeLocation.kind - Add
taintenum to annotatedCodeLocation with valuessource,sinkandsanitizer - Add
parametersandvariablesmembers to annotatedCodeLocation - Rename annotatedCodeLocation.callee member to
target - Rename annotatedCodeLocation.calleeKey member to
targetKey
- Ship checked in CommandLine.dll in order to allow this
betaNuGet component to ship in Driver non-beta release
- API BREAKING change on SarifLogger to explicitly specify hash computation for all files
- SarifLogger now automatically persists file data for all URIs through format
- Add run.stableId, a consistent run-over-run log identifier
- Add annotatedCodeLocation.callee and annotatedCodeLocation.calleeKey for annotation call sites
- Add invocation.responseFiles to capture response file contents
- Drop .NET framework dependency to 4.5 (from 4.5.1)
- NOTE: NON-BETA RELEASE
- Add a converter for Static Driver Verifier trace files
- Add SuppressedExternally to SuppressionStates enum
- Permit annotatedCodeLocation.id to be a numeric value (in addition to a string)
- Rename
codeSnippettosnippet - Remove requirement to specify
descriptionon code fixes - Add
architectureback torunobject
- Add suppressionStates enum (with a single current value, indicating
suppressedInSource) - Add
idandcorrelationIdas arguments to ResultLogJsonWriter.Initialize. Logidis populated with a generated guid by default. - Add
sarifLoggerVersionthat identifies the SDK logger version used to produce a log file. - Provide serialization of arbitrary JSON content to
propertiesmembers. - Move
tagsinto properties (but provide top-level Tags member for setting/retrieving this data) - Add annotatedCodeLocation.kind enum (with values such as
branch,declaration, et al.) - Update all converters to Sarif beta.5
- Add optional
idto each result, to allow correlation with external data, annotations, work items, etc. - Add flag to configure file hash computation to FileData.Create helper
- Add
uriBaseIdconceptual base URI to all format URI properties (to allow all URIs to be relative) - Add
analysisTargetUrito run object, for cases where a single target is associated with a run - Add
threadIdto notification, annotatedCodeLocation and stackFrame. - Rework files and logicalLocations dictionary to store discrete items (with parent keys), not arrays
- Add logicalLocationKey and fullyQualifiedLogicalLocationName to annotatedCodeLocation
- Add
idandessentialproperties to annotatedCodeLocation - Rename
toolFingerprinttotoolFingerprintContribution - Add baselineId. Rename
correlationIdtoautomationId - Add
physicalLocationproperty to notification
- Persist mime-type for files in SarifLogger
- Remove stack persistence for configuration notification exceptions
- Reclassify
could not parse targetas a configuration notification - Fix diffing visitor to diff using value type semantics rather than by reference equality
- Rename Microsoft.CodeAnalysis.Sarif.Sdk namespace to Microsoft.CodeAnalysis.Sarif
- Rename Microsoft.CodeAnalysis.Sarif.Driver namespace to Microsoft.CodeAnalysis.Driver
- Eliminate some tool version details. Add SarifLogger version as tool property
- Moved SarifLogger and its dependencies from driver to SDK package
- Include this file and JSON schema in packages