Skip to content

Latest commit

 

History

History
42 lines (25 loc) · 1.85 KB

CONTRIBUTING.md

File metadata and controls

42 lines (25 loc) · 1.85 KB

Contributing to CloudQuery

👍🎉 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

Links

Development

gRPC

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.

Packages

  • serve command line APIs to start serving plugins.
  • plugins main plugin APIs (source/dest).
  • schema tables, columns and supported types
  • codegen APIs to generate CloudQuery tables from Go structs
  • faker useful API to fake structs for source plugin mock tests

Tests

Run make test to run all unit-tests

Lint

We use golangci-lint as our linter. Configuration available in [./golangci.yml] to run lint make lint