Skip to content
This repository was archived by the owner on Mar 31, 2026. It is now read-only.

Latest commit

 

History

History
23 lines (18 loc) · 3.91 KB

File metadata and controls

23 lines (18 loc) · 3.91 KB

SymbolPackageFileToCsv

This driver hashes every file in the .snupkg as well as the .snupkg itself. These entries are mostly portable PDB files. The produces CSV has the .snupkg entry hashes. The hash of the .snupkg itself is stored for the SymbolPackageArchiveToCsv driver.

CatalogScanDriverType enum value SymbolPackageFileToCsv
Driver implementation SymbolPackageFileToCsvDriver
Processing mode process latest catalog leaf per package ID and version
Cursor dependencies LoadSymbolPackageArchive: needs to know if a .snupkg exists for the package
Components using driver output SymbolPackageArchiveToCsv: uses the .snupkg hash saves to table storage
Kusto ingestion via KustoIngestionMessageProcessor, since this driver produces CSV data
Temporary storage config Table Storage:
CsvRecordTableName (name prefix): holds CSV records before they are added to a CSV blob
TaskStateTableName (name prefix): tracks completion of CSV blob aggregation
Persistent storage config Blob Storage:
SymbolPackageFileContainerName: contains CSVs for the PackageArchives table

Table Storage:
SymbolPackageHashesTableName: contains hashes of the .snupkg file, if it exists
Output CSV tables SymbolPackageFiles

Algorithm

When the incoming leaf scan is new, the .snupkg is downloaded. Then, the .snupkg is opened as a ZIP archive and each file entries is hashed. The hashes are stored in table storage. The results are written out as CSV records.

If the incoming leaf is not new or is stale, cached file entry hashes are used to produce the CSV records.