-
Couldn't load subscription status.
- Fork 2.3k
Closed
Labels
PluginsenhancementEnhancement or improvement to existing feature or requestEnhancement or improvement to existing feature or request
Description
Is your feature request related to a problem? Please describe
Currently, third-party plugin authors have no ability to implement and expose custom GRPC APIs in OpenSearch. This restricts the flexibility and growth of the plugin ecosystem, as plugins cannot easily provide their own GRPC endpoints or leverage GRPC for advanced integrations.
Describe the solution you'd like
Enable external plugins (outside the core OpenSearch repo) to implement, register, and expose their own GRPC APIs. The ideal solution should support:
- Custom GRPC Services: Allow plugins to register custom GRPC service implementations that will be available through the OpenSearch GRPC transport.
- Flexible Proto Handling: Support plugins that provide their own proto files as well as those that rely on shared or existing specs. Both use cases should be well-documented and straightforward for plugin authors.
- Dynamic Discovery & Registration: OpenSearch should dynamically discover GRPC services from installed plugins at startup or on plugin load, minimizing manual configuration.
- Robust Error Handling & Validation: The system should validate proto compatibility, prevent duplicate service registration, and provide clear error messages/logs for troubleshooting.
- Comprehensive Documentation: Provide clear guides, API references, and best practices for plugin authors, including example implementations for both proto scenarios.
- Extensive Test Coverage: Include integration and unit tests covering plugin registration, service discovery, proto versioning, and backward compatibility.
Related component
Plugins
Describe alternatives you've considered
No response
Additional context
No response
Metadata
Metadata
Assignees
Labels
PluginsenhancementEnhancement or improvement to existing feature or requestEnhancement or improvement to existing feature or request
Type
Projects
Status
Done/Won't Do