Much like the PackageArchiveToCsv driver, this driver reads the .snupkg ZIP archive and write archive and ZIP entry metadata to CSV.
CatalogScanDriverType enum value |
SymbolPackageArchiveToCsv |
| Driver implementation | SymbolPackageArchiveToCsvDriver |
| Processing mode | process latest catalog leaf per package ID and version |
| Cursor dependencies | SymbolPackageFileToCsv: provides .snupkg hash in table storage(transitive) LoadSymbolPackageArchive: needed by SymbolPackageFileToCsv |
| Components using driver output | 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 blobTaskStateTableName (name prefix): tracks completion of CSV blob aggregation |
| Persistent storage config | Blob Storage:SymbolPackageArchiveContainerName: contains CSVs for the SymbolPackageArchives tableSymbolPackageArchiveEntryContainerName: contains CSVs for the SymbolPackageArchiveEntries table |
| Output CSV tables | SymbolPackageArchiveEntriesSymbolPackageArchives |
For each catalog leaf passed to driver, the symbol package (.snupkg) ZIP central directory, size, and HTTP response headers are fetched from Azure Table Storage. These are populated by the LoadSymbolPackageArchive driver. Unlike the PackageArchiveToCsv driver, a hash of the .snupkg is not calculated because no driver currently downloads the .snupkg and captures the hash. It's possible the NuGetPackageExplorerToCsv driver downloads the .snupkg internally but this hasn't been evaluated yet. A hash of the .snupkg is recorded from blob storage response headers, but this is not verifiable without a .snupkg download.
The ZIP central directory is enumerated. A single CSV record is produced for each .snupkg and one or more CSV records are created for each entry in the ZIP file.
Detailed ZIP information is included in the produced CSV records to aid in the debugging of esoteric ZIP archive issues.