Switch branches/tags
Nothing to show
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
shim
README.md
registration.go
trigger.go
trigger.json
trigger_metadata.go

README.md

gRPC trigger

Subscribe to gRPC messages

Installation

flogo install github.com/retgits/flogo-components/trigger/grpctrigger

Link for flogo web:

https://github.com/retgits/flogo-components/trigger/grpctrigger

Schema

Inputs and Outputs:

{
    "settings": [
        {
            "name": "tcpPort",
            "type": "string",
            "required": true
        },
        {
            "name": "protofileLocation",
            "type": "string",
            "required": true
        }
    ],
    "output": [
        {
            "name": "message",
            "type": "any"
        }
    ],
    "reply": [
        {
            "name": "data",
            "type": "any"
        }
    ],
    "handler": {
        "settings": [
            {
                "name": "service",
                "type": "string",
                "required": true
            },
            {
                "name": "rpc",
                "type": "string",
                "required": true
            }
        ]
    }
}

Settings (generic settings for the trigger)

Input Description
tcpPort The tcp port for the Flogo app to listen on
protofileLocation The location of the .proto file to use

Ouputs (data sent to the flow)

Output Description
message The JSON representation of the gRPC message

Reply (data sent back to the trigger)

Input Description
data The JSON representation of the gRPC message

Handler (flow specific settings)

Handler Description
channel The channel you want to listen to

Usage

To use this trigger you'll need to have gRPC and Protocol Buffers V3 installed. Because these dependencies are not installed in Flogo Web by default, you can only build an app using the CLI (designing an app will work perfectly in the Flogo Web UI)

The below install instructions are from the gRPC quickstart

Install gRPC

To install gRPC use the following command

$ go get -u google.golang.org/grpc

Install Protocol Buffers v3

Install the protoc compiler that is used to generate gRPC service code. The simplest way to do this is to download pre-compiled binaries for your platform(protoc-<version>-<platform>.zip) from here: https://github.com/google/protobuf/releases

  • Unzip this file.
  • Update the environment variable PATH to include the path to the protoc binary file.

Next, install the protoc plugin for Go

$ go get -u github.com/golang/protobuf/protoc-gen-go

The compiler plugin, protoc-gen-go, will be installed in $GOBIN, defaulting to $GOPATH/bin. It must be in your $PATH for the protocol compiler, protoc, to find it.

$ export PATH=$PATH:$GOPATH/bin

Create a .proto file

The basis of gRPC is the .proto file. In order to successfully build the app you'll need to have one. An example proto file looks like:

syntax = "proto3";

option java_multiple_files = true;
option java_package = "com.leon.helloleon";
option java_outer_classname = "HelloLeonProto";

package helloleon;

service SaySomethingCool {
    rpc Awesomeness(InMessage) returns (OutMessage) {}
}

message InMessage {
    string name = 1;
}

message OutMessage {
    string name = 1;
    string awesomeness = 2;
}

Install trigger

To install the trigger into your Web UI, create a new app and click on the “+” icon on the left hand side of the screen. From there click on “Install new” and paste https://github.com/retgits/flogo-components/trigger/grpctrigger into the input dialog to get this new trigger.

Create an app

With everythong installed you can create the app using the Web UI as you would for any other app. Note that while constructing the return activity, you start each field with a capital letter (generating the structs made all fields exported and with Go that means they start with a capital letter). For the example above, a valid return would be

{
  "Name": "You",
  "Awesomeness": "Incredible!"
}

Build

To build the app, you'll have to export it first. From the main screen of your app (where all flows are listed), click "export" and select "App". You can use the following commands to build the app

# Create the Flogo app
$ flogo create -f <app.json> <appname>
# Build an executable
$ cd <appname>
$ flogo build -shim receive_grpc_message
# Start the app
$ ./bin/<appname>