Clean up shared package dependencies + env vars in PDP#428
Clean up shared package dependencies + env vars in PDP#428sthanikan2000 merged 3 commits intomainfrom
Conversation
Summary of ChangesHello @ginaxu1, 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 refactors the Policy Decision Point (PDP) service to enhance its maintainability, portability, and consistency with other services like Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Ignored Files
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.
Code Review
This pull request is a substantial refactoring of the Policy Decision Point service to align it with the consent-engine service. It removes shared package dependencies, standardizes environment variables, and centralizes configuration management. The changes are well-structured and significantly improve the service's maintainability and portability. My review includes a couple of suggestions to further improve the code: one to optimize the Docker build caching and another to align a struct field name with Go's idiomatic naming conventions.
There was a problem hiding this comment.
Code Review
This pull request is a significant refactoring of the PDP service to centralize configuration, standardize environment variables, and remove shared package dependencies. The changes are well-executed and improve code organization and maintainability. I've identified a few areas for improvement:
- In the
Dockerfile, there's a redundantCOPYinstruction that negatively impacts layer caching. - The new configuration loading in
internal/config/config.gouses placeholder default values which could lead to hard-to-debug runtime errors. - There's some code duplication in
v1/database.gothat can be avoided. - An unused function was found in
internal/utils/utils.go.
Overall, this is a great cleanup. Addressing these points will make the service more robust and efficient.
1c6e6d2 to
466f563
Compare
sthanikan2000
left a comment
There was a problem hiding this comment.
When you're addressing the comments make sure to update the go.mod
466f563 to
6637da4
Compare
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
6637da4 to
041245f
Compare
sthanikan2000
left a comment
There was a problem hiding this comment.
nit: update the .env.template as well
Remaining changes LGTM
Summary
Refactors the PDP service, removing unused shared pckgs and standardize Env var naming, following the same pattern established in
consent-engine. The changes centralize configuration management, improve code organization, and make the service more portable by removing vendor-specific naming conventions.Type of Change
Changes Made
shared/utils/,shared/config/, andshared/constants/directories and integrated functionality directly into policy-decision-pointinternal/config/config.gowith centralized configuration management (IDPConfig, DBConfigs, ServiceConfig, LoggingConfig, SecurityConfig)internal/utils/utils.gowith common utilities previously in shared packagesCHOREO_OPENDIF_DATABASE_*→DB_*(e.g.,DB_HOST,DB_PORT,DB_USERNAME,DB_PASSWORD,DB_NAME,DB_SSLMODE)ASGARDEO_*→IDP_*(e.g.,IDP_ORG_NAME,IDP_ISSUER,IDP_AUDIENCE,IDP_JWKS_URL)main.goto useconfig.LoadConfig()instead of direct environment variable accessv1/database.goto acceptDatabaseConfigsstruct instead of reading environment variables directly.github/workflows/integration-tests.ymlto use newDB_*environment variables.choreo/component.yamlfileTesting
Checklist
Related Issues
Related to #425 (consent-engine refactoring) - applies the same cleanup pattern to policy-decision-point