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

Latest commit

 

History

History
22 lines (17 loc) · 3.73 KB

File metadata and controls

22 lines (17 loc) · 3.73 KB

PackageFileToCsv

This driver hashes every file in the .nupkg as well as the .nupkg itself. The produces CSV has the .nupkg entry hashes. The hash of the .nupkg itself is stored for the SymbolPackageArchiveToCsv driver.

CatalogScanDriverType enum value PackageFileToCsv
Driver implementation PackageFileToCsvDriver
Processing mode process latest catalog leaf per package ID and version
Cursor dependencies LoadPackageArchive: needs to know about the ZIP entries package
Components using driver output PackageArchiveToCsv: uses the .nupkg 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:
PackageFileContainerName: contains CSVs for the PackageArchives table

Table Storage:
PackageHashesTableName: contains hashes of the .nupkg file, if it exists
Output CSV tables PackageFiles

Algorithm

When the incoming leaf scan is new, the .nupkg is downloaded. Then, the .nupkg 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.