Skip to content

fix: Implement pagination for gRPC listing in grpc_service and admin.py#2889

Merged
crivetimihai merged 4 commits intoIBM:mainfrom
gabe-l-hart:GrpcPagination
Feb 14, 2026
Merged

fix: Implement pagination for gRPC listing in grpc_service and admin.py#2889
crivetimihai merged 4 commits intoIBM:mainfrom
gabe-l-hart:GrpcPagination

Conversation

@gabe-l-hart
Copy link
Copy Markdown
Contributor

Branch: GrpcRegistrationUIFixes

Signed-off-by: Gabe Goodhart ghart@us.ibm.com

AI-usage: full

🔗 Related Issue

Addresses #2854


📝 Summary

This PR fixes the implementation of pagination for GET /admin/grpc


🏷️ Type of Change

  • Bug fix
  • Feature / Enhancement
  • Documentation
  • Refactor
  • Chore (deps, CI, tooling)
  • Other (describe below)

🧪 Verification

Check Command Status
Lint suite make lint
Unit tests make test
Coverage ≥ 80% make coverage

✅ Checklist

  • Code formatted (make black isort pre-commit)
  • Tests added/updated for changes
  • Documentation updated (if applicable)
  • No secrets or credentials committed

📓 Notes (optional)

Screenshots, design decisions, or additional context.

@crivetimihai
Copy link
Copy Markdown
Member

Thanks @gabe-l-hart. A few items to verify:

  1. Does the pagination follow the same HTMX partial-rendering pattern as other admin tabs?
  2. Are there tests covering boundary conditions (empty list, single page, exact page boundary)?
  3. This is one of several PRs addressing [BUG][API]: gRPC service registration unusable - multiple failures #2854 — are they intended to be merged in a specific order, or are they independent?

Branch: GrpcRegistrationUIFixes

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full
Branch: GrpcPagination

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full
…only filtering

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full
…conversion loop

Add the `team` field to `GrpcServiceRead` schema to match all other Read schemas
(ToolRead, ResourceRead, GatewayRead, PromptRead), so team name resolution
actually populates the response. Add try/except around model_validate to
gracefully skip corrupted records, consistent with other services.

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
@crivetimihai crivetimihai self-assigned this Feb 14, 2026
@crivetimihai crivetimihai added this to the Release 1.0.0-RC1 milestone Feb 14, 2026
@crivetimihai crivetimihai merged commit bb50df3 into IBM:main Feb 14, 2026
53 checks passed
suciu-daniel pushed a commit that referenced this pull request Feb 16, 2026
…py (#2889)

* fix: Implement pagination for gRPC listing in grpc_service and admin.py

Branch: GrpcRegistrationUIFixes

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full

* test: Update tests and add a new one for multi-page grpc results

Branch: GrpcPagination

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full

* test: Add coverage for gRPC service team name resolution and team_id-only filtering

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full

* fix: add missing team field to GrpcServiceRead and error handling to conversion loop

Add the `team` field to `GrpcServiceRead` schema to match all other Read schemas
(ToolRead, ResourceRead, GatewayRead, PromptRead), so team name resolution
actually populates the response. Add try/except around model_validate to
gracefully skip corrupted records, consistent with other services.

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Co-authored-by: Mihai Criveti <crivetimihai@gmail.com>
@gabe-l-hart gabe-l-hart deleted the GrpcPagination branch February 16, 2026 18:33
vishu-bh pushed a commit that referenced this pull request Feb 18, 2026
…py (#2889)

* fix: Implement pagination for gRPC listing in grpc_service and admin.py

Branch: GrpcRegistrationUIFixes

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full

* test: Update tests and add a new one for multi-page grpc results

Branch: GrpcPagination

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full

* test: Add coverage for gRPC service team name resolution and team_id-only filtering

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full

* fix: add missing team field to GrpcServiceRead and error handling to conversion loop

Add the `team` field to `GrpcServiceRead` schema to match all other Read schemas
(ToolRead, ResourceRead, GatewayRead, PromptRead), so team name resolution
actually populates the response. Add try/except around model_validate to
gracefully skip corrupted records, consistent with other services.

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Co-authored-by: Mihai Criveti <crivetimihai@gmail.com>
Signed-off-by: Vishu Bhatnagar <vishu.bhatnagar@ibm.com>
kcostell06 pushed a commit to kcostell06/mcp-context-forge that referenced this pull request Feb 24, 2026
…py (IBM#2889)

* fix: Implement pagination for gRPC listing in grpc_service and admin.py

Branch: GrpcRegistrationUIFixes

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full

* test: Update tests and add a new one for multi-page grpc results

Branch: GrpcPagination

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full

* test: Add coverage for gRPC service team name resolution and team_id-only filtering

Signed-off-by: Gabe Goodhart <ghart@us.ibm.com>

AI-usage: full

* fix: add missing team field to GrpcServiceRead and error handling to conversion loop

Add the `team` field to `GrpcServiceRead` schema to match all other Read schemas
(ToolRead, ResourceRead, GatewayRead, PromptRead), so team name resolution
actually populates the response. Add try/except around model_validate to
gracefully skip corrupted records, consistent with other services.

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>

---------

Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Co-authored-by: Mihai Criveti <crivetimihai@gmail.com>
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