gRPC Reflection
gRPC reflection lets a client inspect services and message types without a local proto file. Use it for development checks and service exploration. Keep the published proto files in your application build because production clients should not depend on reflection.
Check a service
Pass your API key as metadata.
export NODE_API_KEY="YOUR_API_KEY"
grpcurl \
-H "x-api-key: ${NODE_API_KEY}" \
geyser.sol.cubestech.online:443:443 \
listInspect one service after the list command succeeds.
grpcurl \
-H "x-api-key: ${NODE_API_KEY}" \
geyser.sol.cubestech.online:443:443 \
describe geyser.GeyserRun the same service-list check against
streams.sol.cubestech.online:443:443 for Enhanced Streams and
events.sol.cubestech.online:443:443 for Program Streams.
If reflection is unavailable
Use the published definitions:
- Enhanced Streams proto
- Enhanced Streams descriptor set
- Program Streams proto
- Program Streams descriptor set
The descriptor sets include imported definitions. Tools such as grpcurl, Buf, and language generators read them without contacting a reflection service.
Deployment check
Run the repository reflection audit after each gRPC deployment.
NODE_API_KEY="YOUR_API_KEY" npm run audit:grpc-reflectionThe check fails when a documented endpoint stops exposing its service list.