Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

grpc_toolbox

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

grpc_toolbox

  • 0.1.1
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

GrpcToolbox

This is a Gem created to manage the connection of a ruby/rails service
to Guide's GRPC Server (Sidecar). With it you can simplify the connection
process and send data to the sidecar both synchronously and asynchronously.

Pre-requisites

In order to connect to the grpc server, the app must use the https protocol.
In order to successfully connect to the server through https - instead of having it's connection
refused -, a .crt security certificate file must be provided.

Installation

You can do that by either adding this line to your application's Gemfile:

gem 'grpc_toolbox'

And then executing:

bundle install

Or by installing directly with:

gem install grpc_toolbox

Configuration

Step 1 - Configure the Certificate Volume

You only need to this step if you're using docker or docker-compose to run the application.
As said on the Pre-requisites section, you'll need a .crt file that can authenticate your connection
to the grpc server.
This step is to make it so the container can copy the .crt file provided by the host.

If you're using docker-compose, all you'll need to do is to make sure the volumes section of your
docker-compose.yaml has this line:

volumes:
  - "${HOST_CERTIFICATES}/:${CONTAINER_CERTIFICATES_FOLDER}/"

Where:

  • HOST_CERTIFICATES is the path to the folder on the HOST machine where the .crt file is located
  • CONTAINER_CERTIFICATES_FOLDER is the path to folder on the CONTAINER where the host's files are going to be copied to.

Example:

volumes:
  - "/home/master/certificates/:/https/"

if you're using docker run, you'll need to add the following option to your command:

-v {HOST_CERTIFICATES}:{CONTAINER_CERTIFICATES_FOLDER}

Where:

  • HOST_CERTIFICATES is the path to the folder on the HOST machine where the .crt file is located
  • CONTAINER_CERTIFICATES_FOLDER is the path to folder on the CONTAINER where the host's files are going to be copied to.

Example:

docker run --name your_service -v /home/master/certificates:/https/ your-image

Step 2 - Configure the Environment Variables

Create a file named grpc_toolbox.rb inside the config/initializers, then add the following lines:

GRPCToolbox.configure do |config|
  config.server = {GRPC_SERVER_HOST}
  config.certificate_path = {CONTAINER_CERTIFICATES_FULLPATH}
end

Where

  • GRPC_SERVER_HOST is the address the gem will use to communicate to the grpc_server
  • CONTAINER_CERTIFICATES_FULLPATH is the full path to the .crt file the gem will use, including the file name.
    • If this gem is being used on a docker container, the path should relate to a path inside the container.

Example:

GRPCToolbox.configure do |config|
  config.server = "sidecar:443"
  config.certificate_path = "/https/example.crt"
end

Usage

Once configured, you'll just need to create an client object:

client = GRPCToolbox::Client.new

then, pass the params you want to send as hash to the function send_audit_request:

params = {
  origin_ip: '127.0.0.1',
  username: 'rlnascimento',
  origin_type: 'num-sei',
  system: 'gem-toolbox',
  module: 'gem',
  operation_type: 'update'
}

client.async.send_audit_request(params)

You can either use client.async.send_audit_request or client.send_audit_request. The logic is
the same, the only difference is that the first one is asynchronous and the second one is not.

FAQs

Package last updated on 06 Apr 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc