-
Notifications
You must be signed in to change notification settings - Fork 296
Adding GCP Firestore implementations for CertRecordStore and SSHRecordStore #3133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Summary of ChangesHello @psasidhar, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly expands Athenz's data persistence capabilities by integrating Google Cloud Firestore as a backend for storing both X.509 certificate records and SSH certificate records. This change provides a scalable and managed NoSQL database option for environments running on Google Cloud Platform, enhancing flexibility and operational efficiency for certificate and SSH key management within Athenz. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces GCP Firestore implementations for CertRecordStore and SSHRecordStore, along with corresponding factories and tests. The overall implementation is well-structured and the tests are quite thorough. However, I've identified a few significant issues related to performance and correctness that should be addressed:
- A potential N+1 query problem in
FirestoreCertRecordStoreConnectionwhich could lead to performance degradation. - An inefficient data update pattern in
FirestoreCertRecordStoreConnectionthat involves redundant database reads. - Both
FirestoreCertRecordStoreConnectionandFirestoreSSHRecordStoreConnectionignore theexpiryTimeMinsparameter in theirdeleteExpired...methods, which is a deviation from the interface contract.
My detailed comments and suggestions are provided below.
.../src/main/java/io/athenz/server/gcp/common/cert/impl/FirestoreCertRecordStoreConnection.java
Show resolved
Hide resolved
.../src/main/java/io/athenz/server/gcp/common/cert/impl/FirestoreCertRecordStoreConnection.java
Outdated
Show resolved
Hide resolved
...n/src/main/java/io/athenz/server/gcp/common/cert/impl/FirestoreSSHRecordStoreConnection.java
Show resolved
Hide resolved
.../src/main/java/io/athenz/server/gcp/common/cert/impl/FirestoreCertRecordStoreConnection.java
Outdated
Show resolved
Hide resolved
5d14603 to
33cbdf2
Compare
|
/gemini review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces GCP Firestore implementations for CertRecordStore and SSHRecordStore, along with corresponding factories and comprehensive unit tests. The implementation is solid, but I've identified a couple of areas for performance improvement in the FirestoreCertRecordStoreConnection class. Specifically, one method can be optimized by using batch writes, and another method exhibits an N+1 query pattern that could be problematic at scale. My review includes suggestions to address these points.
.../src/main/java/io/athenz/server/gcp/common/cert/impl/FirestoreCertRecordStoreConnection.java
Show resolved
Hide resolved
.../src/main/java/io/athenz/server/gcp/common/cert/impl/FirestoreCertRecordStoreConnection.java
Show resolved
Hide resolved
33cbdf2 to
07af028
Compare
…dStore Signed-off-by: Sasi Palaka <[email protected]>
07af028 to
1be1b0d
Compare
Description
Adding Certificate and SSH Record storage implementions in GCP using Firestore
Contribution Checklist:
Attach Screenshots (Optional)