Feature: Multiple grpc targets - #7
Merged
Merged
Conversation
Introduce readme and fix quick starts Add bookstore as multi target service Fix height and add demo Add demo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds first-class multi-target support — a single gRPC Studio instance can now
connect to several gRPC servers at once and switch between them from a server
selector in the UI. Also ships a second bundled example service, restructures the
examples, and adds demo/deployment tooling. This is a breaking change to the
backend and Helm config (single target → list of targets), so the app and chart
are bumped to 2.0.0.
Features
Multi-target
client.targets[](each with its own
host/port/modeand TLS/mTLS settings); at least one isrequired. Per-target client management via a new multi-client manager.
GRPC_TARGET_<i>_HOST/PORT/...) for per-target config.Second example service
:50052) mirroring PetStore (:50051),exercising the full proto3 feature set (nesting, oneOf, maps, wrappers, Struct,
Any, FieldMask, all four RPC modes).
example/→examples/{petstore,bookstore}/.Developer experience
individually → point at your own server.
dev:all(UI + backend + both examples),dev:petstore,dev:bookstore,dev:multi, andstop(frees dev ports; auto-runs beforeevery
dev*command to preventEADDRINUSE).quickstartnow accepts multiple targets (-- 50051 50052, named--target name=host:port,mode=tls) and generates a temp config.Demo assets
demo:capture(screenshots + a chapteredwalkthrough video) and
demo:gif/demo:mp4converters.modes, request history, and shareable URLs.
Deployment
connection.targets[](removed deadconnection.timeout.connect/tls.*keys); shared mTLS secret across mtlstargets; updated examples, NOTES, and docs.
docker-publish.yml) now also builds & publishes multi-arch petstoreand bookstore images to GHCR (fixed out-of-sync example lockfiles).
Layout fix
inner panel) when content is tall; Service/Method explorer columns are equal height.
Breaking changes
client.mode/client.target→client.targets[](min 1, each needs aname).connection.target/mode→connection.targets[].MIGRATION.mdandhelm/MIGRATION.md.Testing
helm lintclean;all example configs validate against the schema; both example Docker images
build and start (reflection enabled). Scanned clean for secrets/IDs.