Skip to content

fix: enforce required validation for explicit null parameter values#2519

Merged
twishabansal merged 14 commits into
mainfrom
fix-param-validation
Feb 27, 2026
Merged

fix: enforce required validation for explicit null parameter values#2519
twishabansal merged 14 commits into
mainfrom
fix-param-validation

Conversation

@twishabansal

Copy link
Copy Markdown
Contributor

Description

Fixes #2518

PR Checklist

Thank you for opening a Pull Request! Before submitting your PR, there are a
few things you can do to make sure it goes smoothly:

  • Make sure you reviewed
    CONTRIBUTING.md
  • Make sure to open an issue as a
    bug/issue
    before writing your code! That way we can discuss the change, evaluate
    designs, and agree on the general idea
  • Ensure the tests and linter pass
  • Code coverage does not decrease (if any source code was changed)
  • Appropriate docs were updated (if necessary)
  • Make sure to add ! if this involve a breaking change

🛠️ Fixes #<issue_number_goes_here>

@twishabansal twishabansal requested a review from a team February 19, 2026 06:25
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @twishabansal, 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 addresses a bug where explicitly provided nil values for required parameters were not correctly triggering validation errors. The change ensures that if a parameter is marked as required and its value is nil, it will now be correctly identified as missing, preventing unexpected behavior and improving the robustness of parameter validation.

Highlights

  • Parameter Validation: Modified the parameter parsing logic to explicitly check for nil values when determining if a required parameter has been provided, ensuring that nil is treated as an absent value for validation purposes.
Changelog
  • internal/util/parameters/parameters.go
    • Updated parameter parsing to treat explicit nil values as missing for required parameters.
Activity
  • No activity has occurred on this pull request yet.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

The pull request correctly addresses an important edge case in parameter parsing. By modifying the condition to include v == nil, the system now properly enforces required validation for parameters that are explicitly provided with a null value. This improves the robustness and correctness of the parameter handling logic.

Comment thread internal/util/parameters/parameters.go
@twishabansal twishabansal requested a review from a team as a code owner February 24, 2026 06:18
@Yuan325 Yuan325 added the release candidate Use label to signal PR should be included in the next release. label Feb 24, 2026

@Yuan325 Yuan325 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thank you for resolving this!

Comment thread internal/util/parameters/parameters_test.go Outdated
@twishabansal twishabansal requested a review from Yuan325 February 25, 2026 06:25
@twishabansal twishabansal enabled auto-merge (squash) February 25, 2026 08:00
@twishabansal twishabansal merged commit d5e9512 into main Feb 27, 2026
18 checks passed
@twishabansal twishabansal deleted the fix-param-validation branch February 27, 2026 16:08
AjmeraParth132 pushed a commit to AjmeraParth132/genai-toolbox that referenced this pull request Mar 2, 2026
…oogleapis#2519)

## Description
Fixes googleapis#2518

## PR Checklist

> Thank you for opening a Pull Request! Before submitting your PR, there
are a
> few things you can do to make sure it goes smoothly:

- [ ] Make sure you reviewed

[CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md)
- [ ] Make sure to open an issue as a

[bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose)
  before writing your code! That way we can discuss the change, evaluate
  designs, and agree on the general idea
- [ ] Ensure the tests and linter pass
- [ ] Code coverage does not decrease (if any source code was changed)
- [ ] Appropriate docs were updated (if necessary)
- [ ] Make sure to add `!` if this involve a breaking change

🛠️ Fixes #<issue_number_goes_here>
duwenxin99 added a commit that referenced this pull request Mar 2, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.28.0](v0.27.0...v0.28.0)
(2026-03-02)


### Features

* Add polling system to dynamic reloading
([#2466](#2466))
([fcaac9b](fcaac9b))
* Added basic template for sdks doc migrate
([#1961](#1961))
([87f2eaf](87f2eaf))
* **dataproc:** Add dataproc source and list/get clusters/jobs tools
([#2407](#2407))
([cc05e57](cc05e57))
* **sources/postgres:** Add configurable pgx query execution mode
([#2477](#2477))
([57b77bc](57b77bc))
* **sources/redis:** Add TLS support for Redis connections
([#2432](#2432))
([d6af290](d6af290))
* **tools/looker:** Enable Get All Lookml Tests, Run LookML Tests, and
Create View From Table tools for Looker
([#2522](#2522))
([e01139a](e01139a))
* **tools/looker:** Tools to list/create/delete directories
([#2488](#2488))
([0036d8c](0036d8c))
* **ui:** Make tool list panel resizable
([#2253](#2253))
([276cf60](276cf60))


### Bug Fixes

* **ci:** Add path for forked PR unit test runs
([#2540](#2540))
([04dd2a7](04dd2a7))
* Deflake alloydb omni
([#2431](#2431))
([62b8309](62b8309))
* **docs/adk:** Resolve dependency duplication
([#2418](#2418))
([4d44abb](4d44abb))
* **docs/langchain:** Fix core at 0.3.0 and align compatible
dependencies
([#2426](#2426))
([36edfd3](36edfd3))
* Enforce required validation for explicit null parameter values
([#2519](#2519))
([d5e9512](d5e9512))
* **oracle:** Enable DML operations and resolve incorrect array type
error ([#2323](#2323))
([72146a4](72146a4))
* **server/mcp:** Guard nil dereference in sseManager.get
([#2557](#2557))
([e534196](e534196)),
closes [#2548](#2548)
* **tests/postgres:** Implement uuid-based isolation and reliable
resource cleanup
([#2377](#2377))
([8a96fb1](8a96fb1))
* **tests/postgres:** Restore list_schemas test and implement dynamic
owner ([#2521](#2521))
([7041e79](7041e79))
* **tests:** Resolve LlamaIndex dependency conflict in JS quickstart
([#2597](#2597))
([ac11f5a](ac11f5a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
github-actions Bot pushed a commit that referenced this pull request Mar 2, 2026
🤖 I have created a release *beep* *boop*
---

##
[0.28.0](v0.27.0...v0.28.0)
(2026-03-02)

### Features

* Add polling system to dynamic reloading
([#2466](#2466))
([fcaac9b](fcaac9b))
* Added basic template for sdks doc migrate
([#1961](#1961))
([87f2eaf](87f2eaf))
* **dataproc:** Add dataproc source and list/get clusters/jobs tools
([#2407](#2407))
([cc05e57](cc05e57))
* **sources/postgres:** Add configurable pgx query execution mode
([#2477](#2477))
([57b77bc](57b77bc))
* **sources/redis:** Add TLS support for Redis connections
([#2432](#2432))
([d6af290](d6af290))
* **tools/looker:** Enable Get All Lookml Tests, Run LookML Tests, and
Create View From Table tools for Looker
([#2522](#2522))
([e01139a](e01139a))
* **tools/looker:** Tools to list/create/delete directories
([#2488](#2488))
([0036d8c](0036d8c))
* **ui:** Make tool list panel resizable
([#2253](#2253))
([276cf60](276cf60))

### Bug Fixes

* **ci:** Add path for forked PR unit test runs
([#2540](#2540))
([04dd2a7](04dd2a7))
* Deflake alloydb omni
([#2431](#2431))
([62b8309](62b8309))
* **docs/adk:** Resolve dependency duplication
([#2418](#2418))
([4d44abb](4d44abb))
* **docs/langchain:** Fix core at 0.3.0 and align compatible
dependencies
([#2426](#2426))
([36edfd3](36edfd3))
* Enforce required validation for explicit null parameter values
([#2519](#2519))
([d5e9512](d5e9512))
* **oracle:** Enable DML operations and resolve incorrect array type
error ([#2323](#2323))
([72146a4](72146a4))
* **server/mcp:** Guard nil dereference in sseManager.get
([#2557](#2557))
([e534196](e534196)),
closes [#2548](#2548)
* **tests/postgres:** Implement uuid-based isolation and reliable
resource cleanup
([#2377](#2377))
([8a96fb1](8a96fb1))
* **tests/postgres:** Restore list_schemas test and implement dynamic
owner ([#2521](#2521))
([7041e79](7041e79))
* **tests:** Resolve LlamaIndex dependency conflict in JS quickstart
([#2597](#2597))
([ac11f5a](ac11f5a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 81253a0
github-actions Bot pushed a commit to renovate-bot/googleapis-_-genai-toolbox that referenced this pull request Mar 3, 2026
🤖 I have created a release *beep* *boop*
---

##
[0.28.0](googleapis/mcp-toolbox@v0.27.0...v0.28.0)
(2026-03-02)

### Features

* Add polling system to dynamic reloading
([googleapis#2466](googleapis#2466))
([fcaac9b](googleapis@fcaac9b))
* Added basic template for sdks doc migrate
([googleapis#1961](googleapis#1961))
([87f2eaf](googleapis@87f2eaf))
* **dataproc:** Add dataproc source and list/get clusters/jobs tools
([googleapis#2407](googleapis#2407))
([cc05e57](googleapis@cc05e57))
* **sources/postgres:** Add configurable pgx query execution mode
([googleapis#2477](googleapis#2477))
([57b77bc](googleapis@57b77bc))
* **sources/redis:** Add TLS support for Redis connections
([googleapis#2432](googleapis#2432))
([d6af290](googleapis@d6af290))
* **tools/looker:** Enable Get All Lookml Tests, Run LookML Tests, and
Create View From Table tools for Looker
([googleapis#2522](googleapis#2522))
([e01139a](googleapis@e01139a))
* **tools/looker:** Tools to list/create/delete directories
([googleapis#2488](googleapis#2488))
([0036d8c](googleapis@0036d8c))
* **ui:** Make tool list panel resizable
([googleapis#2253](googleapis#2253))
([276cf60](googleapis@276cf60))

### Bug Fixes

* **ci:** Add path for forked PR unit test runs
([googleapis#2540](googleapis#2540))
([04dd2a7](googleapis@04dd2a7))
* Deflake alloydb omni
([googleapis#2431](googleapis#2431))
([62b8309](googleapis@62b8309))
* **docs/adk:** Resolve dependency duplication
([googleapis#2418](googleapis#2418))
([4d44abb](googleapis@4d44abb))
* **docs/langchain:** Fix core at 0.3.0 and align compatible
dependencies
([googleapis#2426](googleapis#2426))
([36edfd3](googleapis@36edfd3))
* Enforce required validation for explicit null parameter values
([googleapis#2519](googleapis#2519))
([d5e9512](googleapis@d5e9512))
* **oracle:** Enable DML operations and resolve incorrect array type
error ([googleapis#2323](googleapis#2323))
([72146a4](googleapis@72146a4))
* **server/mcp:** Guard nil dereference in sseManager.get
([googleapis#2557](googleapis#2557))
([e534196](googleapis@e534196)),
closes [googleapis#2548](googleapis#2548)
* **tests/postgres:** Implement uuid-based isolation and reliable
resource cleanup
([googleapis#2377](googleapis#2377))
([8a96fb1](googleapis@8a96fb1))
* **tests/postgres:** Restore list_schemas test and implement dynamic
owner ([googleapis#2521](googleapis#2521))
([7041e79](googleapis@7041e79))
* **tests:** Resolve LlamaIndex dependency conflict in JS quickstart
([googleapis#2597](googleapis#2597))
([ac11f5a](googleapis@ac11f5a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com> 81253a0
@gemini-code-assist gemini-code-assist Bot mentioned this pull request Mar 10, 2026
6 tasks
NightStack15 added a commit to NightStack15/googleapis-_-genai-toolbox that referenced this pull request Mar 20, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.28.0](googleapis/mcp-toolbox@v0.27.0...v0.28.0)
(2026-03-02)


### Features

* Add polling system to dynamic reloading
([#2466](googleapis/mcp-toolbox#2466))
([fcaac9b](googleapis/mcp-toolbox@fcaac9b))
* Added basic template for sdks doc migrate
([#1961](googleapis/mcp-toolbox#1961))
([87f2eaf](googleapis/mcp-toolbox@87f2eaf))
* **dataproc:** Add dataproc source and list/get clusters/jobs tools
([#2407](googleapis/mcp-toolbox#2407))
([cc05e57](googleapis/mcp-toolbox@cc05e57))
* **sources/postgres:** Add configurable pgx query execution mode
([#2477](googleapis/mcp-toolbox#2477))
([57b77bc](googleapis/mcp-toolbox@57b77bc))
* **sources/redis:** Add TLS support for Redis connections
([#2432](googleapis/mcp-toolbox#2432))
([d6af290](googleapis/mcp-toolbox@d6af290))
* **tools/looker:** Enable Get All Lookml Tests, Run LookML Tests, and
Create View From Table tools for Looker
([#2522](googleapis/mcp-toolbox#2522))
([e01139a](googleapis/mcp-toolbox@e01139a))
* **tools/looker:** Tools to list/create/delete directories
([#2488](googleapis/mcp-toolbox#2488))
([0036d8c](googleapis/mcp-toolbox@0036d8c))
* **ui:** Make tool list panel resizable
([#2253](googleapis/mcp-toolbox#2253))
([276cf60](googleapis/mcp-toolbox@276cf60))


### Bug Fixes

* **ci:** Add path for forked PR unit test runs
([#2540](googleapis/mcp-toolbox#2540))
([04dd2a7](googleapis/mcp-toolbox@04dd2a7))
* Deflake alloydb omni
([#2431](googleapis/mcp-toolbox#2431))
([62b8309](googleapis/mcp-toolbox@62b8309))
* **docs/adk:** Resolve dependency duplication
([#2418](googleapis/mcp-toolbox#2418))
([4d44abb](googleapis/mcp-toolbox@4d44abb))
* **docs/langchain:** Fix core at 0.3.0 and align compatible
dependencies
([#2426](googleapis/mcp-toolbox#2426))
([36edfd3](googleapis/mcp-toolbox@36edfd3))
* Enforce required validation for explicit null parameter values
([#2519](googleapis/mcp-toolbox#2519))
([d5e9512](googleapis/mcp-toolbox@d5e9512))
* **oracle:** Enable DML operations and resolve incorrect array type
error ([#2323](googleapis/mcp-toolbox#2323))
([72146a4](googleapis/mcp-toolbox@72146a4))
* **server/mcp:** Guard nil dereference in sseManager.get
([#2557](googleapis/mcp-toolbox#2557))
([e534196](googleapis/mcp-toolbox@e534196)),
closes [#2548](googleapis/mcp-toolbox#2548)
* **tests/postgres:** Implement uuid-based isolation and reliable
resource cleanup
([#2377](googleapis/mcp-toolbox#2377))
([8a96fb1](googleapis/mcp-toolbox@8a96fb1))
* **tests/postgres:** Restore list_schemas test and implement dynamic
owner ([#2521](googleapis/mcp-toolbox#2521))
([7041e79](googleapis/mcp-toolbox@7041e79))
* **tests:** Resolve LlamaIndex dependency conflict in JS quickstart
([#2597](googleapis/mcp-toolbox#2597))
([ac11f5a](googleapis/mcp-toolbox@ac11f5a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
NirajNandre pushed a commit to NirajNandre/genai-toolbox-fork that referenced this pull request Mar 24, 2026
…oogleapis#2519)

## Description
Fixes googleapis#2518

## PR Checklist

> Thank you for opening a Pull Request! Before submitting your PR, there
are a
> few things you can do to make sure it goes smoothly:

- [ ] Make sure you reviewed

[CONTRIBUTING.md](https://github.com/googleapis/genai-toolbox/blob/main/CONTRIBUTING.md)
- [ ] Make sure to open an issue as a

[bug/issue](https://github.com/googleapis/genai-toolbox/issues/new/choose)
  before writing your code! That way we can discuss the change, evaluate
  designs, and agree on the general idea
- [ ] Ensure the tests and linter pass
- [ ] Code coverage does not decrease (if any source code was changed)
- [ ] Appropriate docs were updated (if necessary)
- [ ] Make sure to add `!` if this involve a breaking change

🛠️ Fixes #<issue_number_goes_here>
NirajNandre pushed a commit to NirajNandre/genai-toolbox-fork that referenced this pull request Mar 24, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.28.0](googleapis/mcp-toolbox@v0.27.0...v0.28.0)
(2026-03-02)


### Features

* Add polling system to dynamic reloading
([googleapis#2466](googleapis#2466))
([fcaac9b](googleapis@fcaac9b))
* Added basic template for sdks doc migrate
([googleapis#1961](googleapis#1961))
([87f2eaf](googleapis@87f2eaf))
* **dataproc:** Add dataproc source and list/get clusters/jobs tools
([googleapis#2407](googleapis#2407))
([cc05e57](googleapis@cc05e57))
* **sources/postgres:** Add configurable pgx query execution mode
([googleapis#2477](googleapis#2477))
([57b77bc](googleapis@57b77bc))
* **sources/redis:** Add TLS support for Redis connections
([googleapis#2432](googleapis#2432))
([d6af290](googleapis@d6af290))
* **tools/looker:** Enable Get All Lookml Tests, Run LookML Tests, and
Create View From Table tools for Looker
([googleapis#2522](googleapis#2522))
([e01139a](googleapis@e01139a))
* **tools/looker:** Tools to list/create/delete directories
([googleapis#2488](googleapis#2488))
([0036d8c](googleapis@0036d8c))
* **ui:** Make tool list panel resizable
([googleapis#2253](googleapis#2253))
([276cf60](googleapis@276cf60))


### Bug Fixes

* **ci:** Add path for forked PR unit test runs
([googleapis#2540](googleapis#2540))
([04dd2a7](googleapis@04dd2a7))
* Deflake alloydb omni
([googleapis#2431](googleapis#2431))
([62b8309](googleapis@62b8309))
* **docs/adk:** Resolve dependency duplication
([googleapis#2418](googleapis#2418))
([4d44abb](googleapis@4d44abb))
* **docs/langchain:** Fix core at 0.3.0 and align compatible
dependencies
([googleapis#2426](googleapis#2426))
([36edfd3](googleapis@36edfd3))
* Enforce required validation for explicit null parameter values
([googleapis#2519](googleapis#2519))
([d5e9512](googleapis@d5e9512))
* **oracle:** Enable DML operations and resolve incorrect array type
error ([googleapis#2323](googleapis#2323))
([72146a4](googleapis@72146a4))
* **server/mcp:** Guard nil dereference in sseManager.get
([googleapis#2557](googleapis#2557))
([e534196](googleapis@e534196)),
closes [googleapis#2548](googleapis#2548)
* **tests/postgres:** Implement uuid-based isolation and reliable
resource cleanup
([googleapis#2377](googleapis#2377))
([8a96fb1](googleapis@8a96fb1))
* **tests/postgres:** Restore list_schemas test and implement dynamic
owner ([googleapis#2521](googleapis#2521))
([7041e79](googleapis@7041e79))
* **tests:** Resolve LlamaIndex dependency conflict in JS quickstart
([googleapis#2597](googleapis#2597))
([ac11f5a](googleapis@ac11f5a))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Wenxin Du <117315983+duwenxin99@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release candidate Use label to signal PR should be included in the next release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Required parameters accept null values, bypassing validation

3 participants