Skip to content

Multiple proto Import Paths for gRPC #5520

@schonbachler

Description

@schonbachler

I have checked the following:

  • I've searched existing issues and found nothing related to my issue.

This feature

  • blocks me from using Bruno
  • would improve my quality of life in Bruno
  • is something I've never seen an API client do before

Describe the feature you want to add, and how it would change your usage of Bruno

Feature Request: Multiple proto Import Paths for gRPC

Problem Description

When working with gRPC APIs, .proto files often have dependencies on files located in different directories. The standard protoc command-line tool handles this with the -I or --proto_path flag, which allows for specifying multiple import paths.

Currently, Bruno does not appear to support this functionality. This makes it impossible to import .proto files with dependencies that are outside of the current directory. This effectively prevents users from working with gRPC projects where .proto files are not located in a single, centralized folder. Other popular tools like Postman already support this feature, which many developers consider a standard, basic functionality.

Proposed Solution

I propose expanding Bruno's gRPC functionality to allow users to define multiple import paths for .proto files. These paths should be configurable either within the settings of a gRPC request or at the project/collection level.

Benefits

  • Improved Compatibility: Bruno would better support the standard protoc conventions, making integration with existing projects much smoother.
  • Greater Flexibility: Users would be able to manage complex project structures with distributed .proto files more effectively, without having to create redundant copies.
  • Enhanced User Experience: It would remove the need to manually copy all .proto files into a single directory, which can lead to redundant files and errors.

Example Implementation

The user interface could provide a simple way to add a list of directory paths. The configuration could look like this in the bruno.json file:

{
  "grpc": {
    "protoPaths": [
      "/path/to/my/protos",
      "/path/to/my/common/protos",
      "/path/to/my/vendor/protos"
    ]
  }
}

Mockups or Images of the feature

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions