plumber-schemas
This repo contains protobuf schemas that are used by plumber
and plumber-ui
when communicating over gRPC.
IMPORTANT
The proto schemas are used to generate CLI flags in plumber
. protos/cli.proto:CLIOptions
is the entry point.
If you want to modify/add/remove cmds/args/flags, you will want to:
- Clone this repo
- Create a branch
- Make changes to the schemas and include associated
// @gotags: kong:""
comments
- Run
make generate/all
- Copy the generated PB's into the
plumber/vendor/github.com/batchcorp/plumber-schemas/...
dir
- Verify that plumber works with your new flags
- If yes, create a PR for the
plumber-schemas
repo
- Once the PR is merged, update plumber-schemas entry in plumber's
go.mod
to point to new release version
- Run
go mod vendor
to ensure plumber fetches the appropriate plumber-schemas
version
Making changes
git co -b username/change
make generate/all
// this will run generate/go, generate/ts and run the struct tag injector
git add -a
git commit -a -m "updated schema XYZ
git push origin head
- Open PR, review, merge
The build
workflow will automatically create a tag for the last commit.
Globally unique filenames
It is important that filenames are globally unique. This is because of a
namespace issue: https://github.com/golang/protobuf/issues/1122
Due to the above and the fact that plumber uses two sets of schemas
(batchcorp/plumber-schemas
and batchcorp/collector-schemas
), there is a
high chance for naming collisions.
To avoid potential issues - use a ps_$pkgName_
prefix for all filenames.
Example namespace conflict