Skip to content

Conversation

michaelkedar
Copy link
Member

Adds a cron job to validate the consistency of records between GCS and datastore with the new database format (#3850). This sends messages to the recoverer (#3821) to attempt to repair.

The record-checker stores information from its previous runs in datastore in a new JobData entity - where the datastore Key is the name of the metadata, and the value is stored in a value property.

I've written this in Go to because it's fairly simple and to set a precedent for writing / migrating other components away from python. I made a copy of the logging submodule from vulnfeeds into the new toplevel go directory - we'll want to consolidate these soon. There's also room for refactoring the record checker code have some reusable components for e.g. setting up datastore, gcs, or pub/sub.

I added a validation test script to make sure datastore entities written in Python are compatible with the go definitions, and vice versa.

Copy link
Contributor

@another-rex another-rex left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@michaelkedar michaelkedar merged commit cf0618b into google:master Sep 18, 2025
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants