https://github.com/conduitio-labs/conduit-connector-grpc-client
Conduit connector for gRPC (Client)
https://github.com/conduitio-labs/conduit-connector-grpc-client
conduit go golang grpc grpc-client
Last synced: 5 months ago
JSON representation
Conduit connector for gRPC (Client)
- Host: GitHub
- URL: https://github.com/conduitio-labs/conduit-connector-grpc-client
- Owner: conduitio-labs
- License: apache-2.0
- Created: 2023-05-02T13:45:49.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-02T05:00:08.000Z (5 months ago)
- Last Synced: 2025-01-02T06:17:10.511Z (5 months ago)
- Topics: conduit, go, golang, grpc, grpc-client
- Language: Go
- Homepage:
- Size: 442 KB
- Stars: 0
- Watchers: 10
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Conduit Connector for gRPC Client
The gRPC Client connector is one of [Conduit](https://conduit.io) plugins. It provides a destination gRPC Client connector.This connector should be paired with another Conduit instance or pipeline, that provides a
[gRPC server source](https://github.com/conduitio-labs/conduit-connector-grpc-server). Where the client will initiate
the connection with the server, and start sending records to it.## How to build?
Run `make build` to build the connector.## Testing
Run `make test` to run all the unit tests.## Destination
A client gRPC destination connector initiates connection with a gRPC server using the `url` provided as
a parameter. It creates a bidirectional stream with the server and uses the stream to write records to the
server, then waits for acknowledgments to be received from the server through the same stream.### Configuration
| name | description | required | default value |
|------------------------|----------------------------------------------------------------------------------------|----------------------------------------|---------------|
| `url` | url to gRPC server. | true | |
| `rateLimit` | the bandwidth limit in bytes/second, use `0` to disable rate limiting. | false | `0` |
| `reconnectDelay` | delay between each gRPC request retry. | false | `5s` |
| `maxDowntime` | max downtime accepted for the server to be off. | false | `10m` |
| `mtls.disabled` | option to disable mTLS secure connection, set it to `true` for an insecure connection. | false | `false` |
| `mtls.client.certPath` | the client certificate path. | required if `mtls.disabled` is `false` | |
| `mtls.client.keyPath` | the client private key path. | required if `mtls.disabled` is `false` | |
| `mtls.ca.certPath` | the root CA certificate path. | required if `mtls.disabled` is `false` | |## Mutual TLS (mTLS)
Mutual TLS is used by default to connect to the server, to disable mTLS you can set the parameter `mtls.disabled`
to `true`, this will result in an insecure connection to the server.This repo contains self-signed certificates that can be used for local testing purposes, you can find them
under `./test/certs`, note that these certificates are not meant to be used in production environment.To generate your own secure mTLS certificates, check
[this tutorial](https://medium.com/weekly-webtips/how-to-generate-keys-for-mutual-tls-authentication-a90f53bcec64).## Planned work
- Add a source for gRPC client.