internal/database, deploy: modify validation order for deploy

Instead of checking that the current database index is valid before deploy
(which ensures that an invalid database can't be fixed), check that
the new database to deploy is valid (including with respect to the reports
in the old database) before deploy. If it is valid, deploy it, then check
afterwards that the newly deployed database is valid.

This allows issues caused by, e.g., incomplete deploys, to be fixed
without manual intervention, while still alerting us if there is a
persistent problem.

Change-Id: Ib57901bcada5a4b823d184bef25a64559a8e9e4a
Reviewed-on: https://go-review.googlesource.com/c/vulndb/+/541615
Reviewed-by: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
5 files changed
tree: acb10760e860c421134ee7ef3d1b4ed2a3ff8310
  1. .github/
  2. cmd/
  3. data/
  4. deploy/
  5. devtools/
  6. doc/
  7. internal/
  8. terraform/
  9. webconfig/
  10. .gitignore
  11. all_test.go
  12. checks.bash
  13. CONTRIBUTING.md
  14. go.mod
  15. go.sum
  16. LICENSE
  17. PATENTS
  18. README.md
  19. tools_test.go
README.md

The Go Vulnerability Database

Go Reference

This repository contains the infrastructure and internal reports to create the Go Vulnerability Database.

Check out https://go.dev/security/vuln for more information about the Go vulnerability management system.

Reporting a vulnerability or feedback

Click here to report a public vulnerability in the Go ecosystem, or give feedback about the project.

Privacy Policy

The privacy policy for govulncheck can be found at https://vuln.go.dev/privacy.

License

Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.

Database entries are distributed under the terms of the CC-BY-4.0 license. See go.dev/security/vuln/database for information on how to access these entries.