👍🎉 First off, thanks for taking the time to contribute! 🎉👍
This is the repository for CloudQuery SDK. If you are looking for CloudQuery CLI and plugins take a look at our monorepo
CloudQuery has a pluggable architecture and uses gRPC to communicate between source plugins, CLI and destination plugins. To develop a new plugin for CloudQuery, you don’t need to understand the inner workings of gRPC as those are abstracted via the plugin-sdk.
If you want to make any changes to the protocol between plugins and the CLI you will need to install all go-gRPC prerequisites.
All protobuf files and auto-generated Go gRPC server/client are located under ./internal/pb.
To regenerate new Go gRPC client and server run make gen-proto
.
To provide a better API which abstracts the protobuf structs we maintain our own clients at ./clients and servers at ./plugins/ so make sure to adjust those accordingly.
serve
command line APIs to start serving plugins.plugins
main plugin APIs (source/dest).schema
tables, columns and supported typescodegen
APIs to generate CloudQuery tables from Go structsfaker
useful API to fake structs for source plugin mock tests
Run make test
to run all unit-tests
We use golangci-lint
as our linter. Configuration available in [./golangci.yml] to run lint make lint