Skip to content
This repository was archived by the owner on Dec 1, 2024. It is now read-only.

Commit 22a9e3c

Browse files
committed
Cleanup and fix documentation
Update URLs to JSON schema, update/fix API documentation.
1 parent ba8351a commit 22a9e3c

File tree

9 files changed

+15
-28
lines changed

9 files changed

+15
-28
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ I0820 09:16:29.316352 1197925 cve.go:311] downloading data file "https://static.
187187

188188
### vulndb
189189

190-
vulndb is a command line tool to manage NVD-like vulnerability databases, backed by MySQL.
190+
*vulndb* is a command line tool to manage NVD-like vulnerability databases, backed by MySQL.
191191

192192
Supports NVD CVE JSON 1.0 feeds. Data is versioned, organized by provider names and grouped by vendor, custom, and snoozes datasets:
193193

cmd/vulndb/customcmd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ The database supports multiple providers, and for each provider there should
4949
be an owner (a unixname or other form of ID). Each import requires setting
5050
the --provider and --owner flags.
5151
52-
File schema: https://csrc.nist.gov/schema/nvd/feed/0.1/nvd_cve_feed_json_0.1_beta.schema
52+
File schema: https://csrc.nist.gov/schema/nvd/feed/1.0/nvd_cve_feed_json_1.0.schema
5353
`,
5454
Run: func(cmd *cobra.Command, args []string) {
5555
if len(args) != 1 {

cmd/vulndb/vendorcmd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ The database supports multiple providers, and for each provider there should
5151
be an owner (a unixname or other form of ID). Each import requires setting
5252
the --provider and --owner flags.
5353
54-
File schema: https://csrc.nist.gov/schema/nvd/feed/0.1/nvd_cve_feed_json_0.1_beta.schema
54+
File schema: https://csrc.nist.gov/schema/nvd/feed/1.0/nvd_cve_feed_json_1.0.schema
5555
`,
5656
Run: func(cmd *cobra.Command, args []string) {
5757
if len(args) == 0 {

vulndb/custom.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ func (o CustomDataExporter) condition() *sqlutil.QueryConditionSet {
131131
return cond
132132
}
133133

134-
// CSV exports data to w.
134+
// CSV writes custom data records to w.
135135
func (o CustomDataExporter) CSV(ctx context.Context, w io.Writer, header bool) error {
136136
fields := []string{
137137
"owner",
@@ -192,7 +192,7 @@ func (o CustomDataExporter) CSV(ctx context.Context, w io.Writer, header bool) e
192192
return nil
193193
}
194194

195-
// JSON exports NVD CVE JSON to w.
195+
// JSON writes NVD CVE JSON to w.
196196
func (o CustomDataExporter) JSON(ctx context.Context, w io.Writer, indent string) error {
197197
q := sqlutil.Select(
198198
"cve_id",

vulndb/schema.go

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,3 @@
1-
// Copyright (c) Facebook, Inc. and its affiliates.
2-
//
3-
// Licensed under the Apache License, Version 2.0 (the "License");
4-
// you may not use this file except in compliance with the License.
5-
// You may obtain a copy of the License at
6-
//
7-
// http://www.apache.org/licenses/LICENSE-2.0
8-
//
9-
// Unless required by applicable law or agreed to in writing, software
10-
// distributed under the License is distributed on an "AS IS" BASIS,
11-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12-
// See the License for the specific language governing permissions and
13-
// limitations under the License.
14-
151
package vulndb
162

173
import (
@@ -42,4 +28,4 @@ func SchemaSQL() []string {
4228
}
4329

4430
// b64SchemaSQL is auto-generated from schema.sql.
45-
var b64SchemaSQL = []string{"RFJPUCBUQUJMRSBJRiBFWElTVFMKCWBzbm9vemVgLAoJYGN1c3RvbV9kYXRhYCwKCWB2ZW5kb3JfZGF0YWAsCglgdmVuZG9yYAo7Cg==", "U0VUIHNxbF9tb2RlID0gJyc7Cg==", "Q1JFQVRFIFRBQkxFIGB2ZW5kb3JgICgKCWB2ZXJzaW9uYCAgSU5UICAgICAgICAgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQgQ09NTUVOVCAnSUQgb2YgdGhlIGRhdGFzZXQnLAoJYHRzYCAgICAgICBUSU1FU1RBTVAgICBOT1QgTlVMTCAgQ09NTUVOVCAnVGltZSBvZiB0aGUgZGF0YXNldCBpbXBvcnQnLAoJYHJlYWR5YCAgICBCT09MICAgICAgICBOT1QgTlVMTCAgQ09NTUVOVCAnSW5kaWNhdGVzIHRoZSBkYXRhc2V0IGlzIHJlYWR5IHRvIHVzZScsCglgb3duZXJgICAgIFZBUkNIQVIoNjQpIE5PVCBOVUxMICBDT01NRU5UICdQb2ludCBvZiBjb250YWN0IGZvciBkYXRhc2V0JywKCWBwcm92aWRlcmAgVkFSQ0hBUig2NCkgTk9UIE5VTEwgIENPTU1FTlQgJ1Nob3J0IG5hbWUgb2YgZGF0YXNldCBwcm92aWRlcicsCglQUklNQVJZIEtFWSAoYHZlcnNpb25gKSwKCUtFWSAoYHByb3ZpZGVyYCkKKQpFTkdJTkUgSW5ub0RCCkRFRkFVTFQgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0CkNPTU1FTlQgJ1ZlbmRvcnMgcHJvdmlkaW5nIHZ1bG5lcmFiaWxpdHkgZGF0YXNldHMnCjsK", "Q1JFQVRFIFRBQkxFIGB2ZW5kb3JfZGF0YWAgKAoJYHZlcnNpb25gICAgIElOVCAgICAgICAgICBOT1QgTlVMTCBDT01NRU5UICdJRCBvZiB0aGUgdmVuZG9yIGRhdGFzZXQnLAoJYGN2ZV9pZGAgICAgIFZBUkNIQVIoMTI4KSBOT1QgTlVMTCBDT01NRU5UICdDb21tb24gVnVsbmVyYWJpbGl0eSBhbmQgRXhwb3N1cmUgKENWRSkgSUQnLAoJYHB1Ymxpc2hlZGAgIFRJTUVTVEFNUCAgICBOT1QgTlVMTCBDT01NRU5UICdUaW1lc3RhbXAgb2YgdnVsbmVyYWJpbGl0eSBwdWJsaWNhdGlvbicgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKCWBtb2RpZmllZGAgICBUSU1FU1RBTVAgICAgTk9UIE5VTEwgQ09NTUVOVCAnVGltZXN0YW1wIG9mIHZ1bG5lcmFiaWxpdHkgbGFzdCBtb2RpZmljYXRpb24nIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCglgYmFzZV9zY29yZWAgRkxPQVQoMywxKSAgIE5PVCBOVUxMIENPTU1FTlQgJ0Jhc2Ugc2NvcmUgZnJvbSBDVlNTIDMuMCBvciAyLjAgZmFsbGJhY2snLAoJYHN1bW1hcnlgICAgIFRFWFQgICAgICAgICBOT1QgTlVMTCBDT01NRU5UICdEZXNjcmlwdGlvbiBvZiB0aGUgdnVsbmVyYWJpbGl0eScsCglgY3ZlX2pzb25gICAgTUVESVVNQkxPQiAgIE5PVCBOVUxMIENPTU1FTlQgJ0pTT04gcmVjb3JkIGNvbnRhaW5pbmcgcmF3IENWRSBkYXRhJywKCVBSSU1BUlkgS0VZIChgdmVyc2lvbmAsIGBjdmVfaWRgKQopCkVOR0lORSBJbm5vREIKREVGQVVMVCBDSEFSQUNURVIgU0VUIHV0ZjhtYjQKQ09NTUVOVCAnVnVsbmVyYWJpbGl0eSBkYXRhIGZyb20gdmVuZG9ycycKOwo=", "Q1JFQVRFIFRBQkxFIGBjdXN0b21fZGF0YWAgKAoJYG93bmVyYCAgICAgICBWQVJDSEFSKDY0KSAgTk9UIE5VTEwgQ09NTUVOVCAnUG9pbnQgb2YgY29udGFjdCBmb3IgZGF0YXNldCcsCglgcHJvdmlkZXJgICAgIFZBUkNIQVIoNjQpICBOT1QgTlVMTCBDT01NRU5UICdTaG9ydCBuYW1lIG9mIGRhdGEgcHJvdmlkZXInLAoJYGN2ZV9pZGAgICAgICBWQVJDSEFSKDEyOCkgTk9UIE5VTEwgQ09NTUVOVCAnQ29tbW9uIFZ1bG5lcmFiaWxpdHkgYW5kIEV4cG9zdXJlIElEJywKCWBwdWJsaXNoZWRgICAgVElNRVNUQU1QICAgIE5PVCBOVUxMIENPTU1FTlQgJ1RpbWVzdGFtcCBvZiB2dWxuZXJhYmlsaXR5IHB1YmxpY2F0aW9uJyBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLAoJYG1vZGlmaWVkYCAgICBUSU1FU1RBTVAgICAgTk9UIE5VTEwgQ09NTUVOVCAnVGltZXN0YW1wIG9mIGN1c3RvbWl6ZWQgbGFzdCBtb2RpZmljYXRpb24nIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCglgYmFzZV9zY29yZWAgIEZMT0FUKDMsMSkgICBOT1QgTlVMTCBDT01NRU5UICdCYXNlIHNjb3JlIGZyb20gQ1ZTUyAzLjAgb3IgMi4wIGZhbGxiYWNrJywKCWBzdW1tYXJ5YCAgICAgVEVYVCAgICAgICAgIE5PVCBOVUxMIENPTU1FTlQgJ0Rlc2NyaXB0aW9uIG9mIHRoZSB2dWxuZXJhYmlsaXR5JywKCWBjdmVfanNvbmAgICAgTUVESVVNQkxPQiAgIE5PVCBOVUxMIENPTU1FTlQgJ0pTT04gcmVjb3JkIGNvbnRhaW5pbmcgcmF3IENWRSBkYXRhJywKCVBSSU1BUlkgS0VZIChgY3ZlX2lkYCkKKQpFTkdJTkUgSW5ub0RCCkRFRkFVTFQgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0CkNPTU1FTlQgJ0N1c3RvbSB2dWxuZXJhYmlsaXR5IGRhdGEgaW5jbHVkaW5nIG92ZXJyaWRlcycKOwo=", "Q1JFQVRFIFRBQkxFIGBzbm9vemVgICgKCWBvd25lcmAgICAgIFZBUkNIQVIoNjQpICBOT1QgTlVMTCBDT01NRU5UICdQb2ludCBvZiBjb250YWN0IGZvciBzbm9vemUnLAoJYGNvbGxlY3RvcmAgdmFyY2hhcig2NCkgIE5PVCBOVUxMIENPTU1FTlQgJ1VuaXF1ZSBuYW1lIG9mIHRoZSBkYXRhIGNvbGxlY3RvcicsCglgcHJvdmlkZXJgICBWQVJDSEFSKDMyKSAgTk9UIE5VTEwgQ09NTUVOVCAnU2hvcnQgbmFtZSBvZiBkYXRhIHByb3ZpZGVyJywKCWBjdmVfaWRgICAgIFZBUkNIQVIoMTI4KSBOT1QgTlVMTCBDT01NRU5UICdDb21tb24gVnVsbmVyYWJpbGl0eSBhbmQgRXhwb3N1cmUgSUQnLAoJYGRlYWRsaW5lYCAgVElNRVNUQU1QICAgICAgICBOVUxMIENPTU1FTlQgJ1RpbWVzdGFtcCBvZiBzbm9vemUgZXhwaXJhdGlvbicgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKCWBtZXRhZGF0YWAgIEJMT0IgICAgICAgICAgICAgTlVMTCBDT01NRU5UICdPcGFxdWUgbWV0YWRhdGEgZm9yIHNub296ZSBtYW5hZ2VtZW50JywKCVBSSU1BUlkgS0VZIChgcHJvdmlkZXJgLCBgY3ZlX2lkYCkKKQpFTkdJTkUgSW5ub0RCCkRFRkFVTFQgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0CkNPTU1FTlQgJ1Z1bG5lcmFiaWxpdHkgcmVjb3JkcyB0byBpZ25vcmUgZm9yIGEgcGVyaW9kIG9mIHRpbWUnCjsK"}
31+
var b64SchemaSQL = []string{"LS0gQ29weXJpZ2h0IChjKSBGYWNlYm9vaywgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuCi0tCi0tIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwo=", "LS0geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotLSBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS0KLS0gICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLQotLSBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0tIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0tIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotLSBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0tIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKRFJPUCBUQUJMRSBJRiBFWElTVFMKCWBzbm9vemVgLAoJYGN1c3RvbV9kYXRhYCwKCWB2ZW5kb3JfZGF0YWAsCglgdmVuZG9yYAo7Cg==", "Q1JFQVRFIFRBQkxFIGB2ZW5kb3JgICgKCWB2ZXJzaW9uYCAgSU5UICAgICAgICAgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQgQ09NTUVOVCAnSUQgb2YgdGhlIGRhdGFzZXQnLAoJYHRzYCAgICAgICBUSU1FU1RBTVAgICBOT1QgTlVMTCAgQ09NTUVOVCAnVGltZSBvZiB0aGUgZGF0YXNldCBpbXBvcnQnLAoJYHJlYWR5YCAgICBCT09MICAgICAgICBOT1QgTlVMTCAgQ09NTUVOVCAnSW5kaWNhdGVzIHRoZSBkYXRhc2V0IGlzIHJlYWR5IHRvIHVzZScsCglgb3duZXJgICAgIFZBUkNIQVIoNjQpIE5PVCBOVUxMICBDT01NRU5UICdQb2ludCBvZiBjb250YWN0IGZvciBkYXRhc2V0JywKCWBwcm92aWRlcmAgVkFSQ0hBUig2NCkgTk9UIE5VTEwgIENPTU1FTlQgJ1Nob3J0IG5hbWUgb2YgZGF0YXNldCBwcm92aWRlcicsCglQUklNQVJZIEtFWSAoYHZlcnNpb25gKSwKCUtFWSAoYHByb3ZpZGVyYCkKKQpFTkdJTkUgSW5ub0RCCkRFRkFVTFQgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0CkNPTU1FTlQgJ1ZlbmRvcnMgcHJvdmlkaW5nIHZ1bG5lcmFiaWxpdHkgZGF0YXNldHMnCjsK", "Q1JFQVRFIFRBQkxFIGB2ZW5kb3JfZGF0YWAgKAoJYHZlcnNpb25gICAgIElOVCAgICAgICAgICBOT1QgTlVMTCBDT01NRU5UICdJRCBvZiB0aGUgdmVuZG9yIGRhdGFzZXQnLAoJYGN2ZV9pZGAgICAgIFZBUkNIQVIoMTI4KSBOT1QgTlVMTCBDT01NRU5UICdDb21tb24gVnVsbmVyYWJpbGl0eSBhbmQgRXhwb3N1cmUgKENWRSkgSUQnLAoJYHB1Ymxpc2hlZGAgIFRJTUVTVEFNUCAgICBOT1QgTlVMTCBDT01NRU5UICdUaW1lc3RhbXAgb2YgdnVsbmVyYWJpbGl0eSBwdWJsaWNhdGlvbicgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKCWBtb2RpZmllZGAgICBUSU1FU1RBTVAgICAgTk9UIE5VTEwgQ09NTUVOVCAnVGltZXN0YW1wIG9mIHZ1bG5lcmFiaWxpdHkgbGFzdCBtb2RpZmljYXRpb24nIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCglgYmFzZV9zY29yZWAgRkxPQVQoMywxKSAgIE5PVCBOVUxMIENPTU1FTlQgJ0Jhc2Ugc2NvcmUgZnJvbSBDVlNTIDMuMCBvciAyLjAgZmFsbGJhY2snLAoJYHN1bW1hcnlgICAgIFRFWFQgICAgICAgICBOT1QgTlVMTCBDT01NRU5UICdEZXNjcmlwdGlvbiBvZiB0aGUgdnVsbmVyYWJpbGl0eScsCglgY3ZlX2pzb25gICAgTUVESVVNQkxPQiAgIE5PVCBOVUxMIENPTU1FTlQgJ0pTT04gcmVjb3JkIGNvbnRhaW5pbmcgcmF3IENWRSBkYXRhJywKCVBSSU1BUlkgS0VZIChgdmVyc2lvbmAsIGBjdmVfaWRgKQopCkVOR0lORSBJbm5vREIKREVGQVVMVCBDSEFSQUNURVIgU0VUIHV0ZjhtYjQKQ09NTUVOVCAnVnVsbmVyYWJpbGl0eSBkYXRhIGZyb20gdmVuZG9ycycKOwo=", "Q1JFQVRFIFRBQkxFIGBjdXN0b21fZGF0YWAgKAoJYG93bmVyYCAgICAgICBWQVJDSEFSKDY0KSAgTk9UIE5VTEwgQ09NTUVOVCAnUG9pbnQgb2YgY29udGFjdCBmb3IgZGF0YXNldCcsCglgcHJvdmlkZXJgICAgIFZBUkNIQVIoNjQpICBOT1QgTlVMTCBDT01NRU5UICdTaG9ydCBuYW1lIG9mIGRhdGEgcHJvdmlkZXInLAoJYGN2ZV9pZGAgICAgICBWQVJDSEFSKDEyOCkgTk9UIE5VTEwgQ09NTUVOVCAnQ29tbW9uIFZ1bG5lcmFiaWxpdHkgYW5kIEV4cG9zdXJlIElEJywKCWBwdWJsaXNoZWRgICAgVElNRVNUQU1QICAgIE5PVCBOVUxMIENPTU1FTlQgJ1RpbWVzdGFtcCBvZiB2dWxuZXJhYmlsaXR5IHB1YmxpY2F0aW9uJyBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLAoJYG1vZGlmaWVkYCAgICBUSU1FU1RBTVAgICAgTk9UIE5VTEwgQ09NTUVOVCAnVGltZXN0YW1wIG9mIGN1c3RvbWl6ZWQgbGFzdCBtb2RpZmljYXRpb24nIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCglgYmFzZV9zY29yZWAgIEZMT0FUKDMsMSkgICBOT1QgTlVMTCBDT01NRU5UICdCYXNlIHNjb3JlIGZyb20gQ1ZTUyAzLjAgb3IgMi4wIGZhbGxiYWNrJywKCWBzdW1tYXJ5YCAgICAgVEVYVCAgICAgICAgIE5PVCBOVUxMIENPTU1FTlQgJ0Rlc2NyaXB0aW9uIG9mIHRoZSB2dWxuZXJhYmlsaXR5JywKCWBjdmVfanNvbmAgICAgTUVESVVNQkxPQiAgIE5PVCBOVUxMIENPTU1FTlQgJ0pTT04gcmVjb3JkIGNvbnRhaW5pbmcgcmF3IENWRSBkYXRhJywKCVBSSU1BUlkgS0VZIChgY3ZlX2lkYCkKKQpFTkdJTkUgSW5ub0RCCkRFRkFVTFQgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0CkNPTU1FTlQgJ0N1c3RvbSB2dWxuZXJhYmlsaXR5IGRhdGEgaW5jbHVkaW5nIG92ZXJyaWRlcycKOwo=", "Q1JFQVRFIFRBQkxFIGBzbm9vemVgICgKCWBvd25lcmAgICAgIFZBUkNIQVIoNjQpICBOT1QgTlVMTCBDT01NRU5UICdQb2ludCBvZiBjb250YWN0IGZvciBzbm9vemUnLAoJYGNvbGxlY3RvcmAgdmFyY2hhcig2NCkgIE5PVCBOVUxMIENPTU1FTlQgJ1VuaXF1ZSBuYW1lIG9mIHRoZSBkYXRhIGNvbGxlY3RvcicsCglgcHJvdmlkZXJgICBWQVJDSEFSKDMyKSAgTk9UIE5VTEwgQ09NTUVOVCAnU2hvcnQgbmFtZSBvZiBkYXRhIHByb3ZpZGVyJywKCWBjdmVfaWRgICAgIFZBUkNIQVIoMTI4KSBOT1QgTlVMTCBDT01NRU5UICdDb21tb24gVnVsbmVyYWJpbGl0eSBhbmQgRXhwb3N1cmUgSUQnLAoJYGRlYWRsaW5lYCAgVElNRVNUQU1QICAgICAgICBOVUxMIENPTU1FTlQgJ1RpbWVzdGFtcCBvZiBzbm9vemUgZXhwaXJhdGlvbicgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKCWBtZXRhZGF0YWAgIEJMT0IgICAgICAgICAgICAgTlVMTCBDT01NRU5UICdPcGFxdWUgbWV0YWRhdGEgZm9yIHNub296ZSBtYW5hZ2VtZW50JywKCVBSSU1BUlkgS0VZIChgcHJvdmlkZXJgLCBgY3ZlX2lkYCkKKQpFTkdJTkUgSW5ub0RCCkRFRkFVTFQgQ0hBUkFDVEVSIFNFVCB1dGY4bWI0CkNPTU1FTlQgJ1Z1bG5lcmFiaWxpdHkgcmVjb3JkcyB0byBpZ25vcmUgZm9yIGEgcGVyaW9kIG9mIHRpbWUnCjsK"}

vulndb/schema.sql

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ DROP TABLE IF EXISTS
1919
`vendor`
2020
;
2121

22-
SET sql_mode = '';
23-
2422
CREATE TABLE `vendor` (
2523
`version` INT NOT NULL AUTO_INCREMENT COMMENT 'ID of the dataset',
2624
`ts` TIMESTAMP NOT NULL COMMENT 'Time of the dataset import',

vulndb/snooze.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ type SnoozeGetter struct {
9292
FilterCVEs []string
9393
}
9494

95-
// CSV returns data from the database.
95+
// CSV writes snooze records to w.
9696
func (s SnoozeGetter) CSV(ctx context.Context, w io.Writer, header bool) error {
9797
r := sqlutil.NewRecordType(SnoozeRecord{})
9898
q := sqlutil.Select(

vulndb/summary.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func (exp SummaryExporter) SummaryRecords(ctx context.Context) ([]SummaryRecord,
7070
return records, nil
7171
}
7272

73-
// CSV exports data to w.
73+
// CSV writes summary records to w.
7474
func (exp SummaryExporter) CSV(ctx context.Context, w io.Writer, header bool) error {
7575
records, err := exp.SummaryRecords(ctx)
7676
if err != nil {

vulndb/vendor.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ func (v VendorDataExporter) condition() *sqlutil.QueryConditionSet {
230230
return cond
231231
}
232232

233-
// CSV exports data to w.
233+
// CSV writes vendor data records to w.
234234
func (v VendorDataExporter) CSV(ctx context.Context, w io.Writer, header bool) error {
235235
q := sqlutil.Select(
236236
"vendor.version AS version",
@@ -306,7 +306,7 @@ func (v VendorDataExporter) CSV(ctx context.Context, w io.Writer, header bool) e
306306
return nil
307307
}
308308

309-
// JSON exports NVD CVE JSON to w.
309+
// JSON writes NVD CVE JSON to w.
310310
func (v VendorDataExporter) JSON(ctx context.Context, w io.Writer, indent string) error {
311311
q := sqlutil.Select(
312312
"cve_id",
@@ -361,9 +361,12 @@ func (v VendorDataExporter) JSON(ctx context.Context, w io.Writer, indent string
361361

362362
// VendorDataTrimmer is a helper for trimming vendor data.
363363
//
364+
// It deletes all versions but the latest.
365+
//
364366
// Deleting would be easier in common scenarions, but we have some hard
365367
// constraints:
366368
//
369+
// * Vendor data is versioned
367370
// * No foreign key between vendor_data and vendor tables
368371
// * MySQL in safe mode forbids deleting from SELECT queries, wants values
369372
// * Must keep the binlog smaller than 500M, not enough for the NVD database
@@ -372,9 +375,9 @@ func (v VendorDataExporter) JSON(ctx context.Context, w io.Writer, indent string
372375
//
373376
// * Select versions from the vendor table based on the provided settings
374377
// * Operate on vendor records with ready=true or older versions
375-
// * By default, delete all versions but the latest for each provider
378+
// * By default, delete all versions but the latest, for each provider
376379
// * Delete from vendor table first, effectively making data records orphans
377-
// * Delete any orphan records from vendor_data, effectively crow sourcing deletions
380+
// * Delete any orphan records from vendor_data, effectively crowd sourcing deletions
378381
// * Delete data in chunks, keeping binlog small
379382
//
380383
// Deletion operations are expensive.

0 commit comments

Comments
 (0)