redhat-developer / redhat-developer/abbenay

fix(grpc): address implementation mismatches between REST and gRPC handlers

Open
#37 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
12
Forks
7
Avg merge
7h 7m
Merged PRs (30d)
3

Description

Summary

Several gRPC handlers have behavioral differences from their REST counterparts:

1. DeleteSecret does not call notifyModelsChanged

REST DELETE /api/secrets/:key calls state.notifyModelsChanged('secret_deleted') after deleting a secret. The gRPC DeleteSecret handler does not, meaning model state may become stale after secret deletion via gRPC.

2. ListProviders ignores workspace_paths

ListProvidersRequest accepts workspace_paths but the handler ignores them, always returning user-level providers only. REST GET /api/providers has the same limitation, but the proto implies workspace awareness.

3. GetStatus does not populate registered_mcp_servers

The DaemonStatus proto message includes registered_mcp_servers but the GetStatus handler never sets it.

4. SetSecret ignores the store field

SetSecretRequest includes a store field (keychain vs env) but the implementation always writes to the default secret store.

Proposal

Fix each handler to match the documented proto contract or, where the REST API has the same gap, align both and update the proto to remove misleading fields.

Context

Identified during gRPC config parity audit in #32.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the gRPC handlers for DeleteSecret, ListProviders, GetStatus, and SetSecret with their REST counterparts and the corresponding proto fields. Verify the intended behavior for workspace_paths, registered_mcp_servers, store, and model-change notification, then run the relevant handler tests if present. Done means the APIs match the documented contract, or misleading fields are removed and both APIs and the proto are updated consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
grpc, typescript
Domain
api, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.