https://github.com/argoeu/ams-push-server

The ams push server is a component that handles the push functionality for the respective push enabled subscriptions in the argo-messaging-service.

https://github.com/argoeu/ams-push-server

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.5%) to scientific vocabulary

Keywords

ams argo-messaging
Last synced: 9 months ago · JSON representation

Repository

The ams push server is a component that handles the push functionality for the respective push enabled subscriptions in the argo-messaging-service.

Basic Info
  • Host: GitHub
  • Owner: ARGOeu
  • License: other
  • Language: Go
  • Default Branch: master
  • Homepage:
  • Size: 3.14 MB
Statistics
  • Stars: 1
  • Watchers: 11
  • Forks: 3
  • Open Issues: 1
  • Releases: 2
Topics
ams argo-messaging
Created over 7 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

Ams Push Server

Build Status Build Status

The ams push server is a component that handles the push functionality for the respective push enabled subscriptions in the argo-messaging-service.

Prerequisites

Before you start, you need to issue a valid certificate.

Set Up

  1. Install Golang 1.21
  2. Create a new work space:

mkdir ~/go-workspace

export GOPATH=~/go-workspace

export PATH=$PATH:$GOPATH/bin

You may add the export lines into the ~/.bashrc, /.zshrc or the ~/.bash_profile file to have GOPATH environment variable properly setup upon every login.

  1. Get the latest version

go get github.com/ARGOeu/ams-push-server

  1. To build the service use the following command:

go build

  1. To run the service use the following command:

./ams-push-server (This assumes that there is a valid configuration file at /etc/ams-push-server/conf.d/ams-push-server-config.json).

Else

./ams-push-server --config /path/to/a/json/config/file

  1. To run the unit-tests:

Inside the project's folder issue the command:

go test $(go list ./... | grep -v /vendor/)

Configuration

The service depends on a configuration file in order to be able to run.This file contains the following information:

json { "bind_ip": "192.168.3.0", "bind_port": 9000, "certificate": "/path/cert.pem", "certificate_key": "/path/certkey.pem", "certificate_authorities_dir": "/path/to/cas", "ams_token": "sometoken", "ams_host": "localhost", "ams_port": 8080, "verify_ssl": true, "tls_enabled": true, "trust_unknown_cas": false, "log_level": "INFO", "skip_subs_load": false, "acl": [ "OU=my.local,O=mkcert development certificate" ], "syslog_enabled": false }

  • bind_ip: The ip that the grpc service will bind to.

  • bind_port: The port that the service will bind to.

  • certificate: The certificate file which the service will use.

  • certificate_key: The key to the respective certificate

  • certificate_authroties_dir: Directory containing .pem files that the service will use in order to build the trusted CA pool. The CA pool will be used to validate the certificates from incoming client requests.

  • ams_token: THe argo messaging token that the service will use in order to communicate with ams.NOTE that the token MUST correspond to a push worker user in ams.

  • ams_host: The ams http endpoint.

  • ams_port: The ams http endpoint port.

  • verify_ssl: Whether or not it should verify the various https endpoint it targets.

  • tls_enabled: Enable or disable tls support between client and server

  • trust_unknown_cas: Whether or not the service should accept certificates from CAs not found in its trusted CA pool. (Mainly used for development purposes)

  • log_level: DEBUG,INFO,WARNING,ERROR

  • skip_subs_load: The service will try by default to contact the ams in order to retrieve all active push subscriptions
    that are assigned to it and start their push cycles(consume->send->ack). This will be done through the its user profile in ams(which is the profile associated with the) ams_token). You can control this behavior and decide whether or not to pre-load any already active subscriptions.

  • acl: List of certificate DNs which are allowed to access the service.

  • syslog_enabled: Direct logging of the service to the syslog socket

You can find the configuration template at conf/ams-push-server-config.template.

Managing the protocol buffers and gRPC definitions

In order to modify any .proto file you will need the following

  • Read on how to install the protoc compiler on your platform here.

  • Install the go plugin. go get -u github.com/golang/protobuf/protoc-gen-go

  • install the go gRPC package. go get -u google.golang.org/grpc

  • Inside api/<version>/grpc compile. protoc -I proto/ proto/ams.proto --go_out=plugins=grpc:proto

Owner

  • Name: ARGOeu
  • Login: ARGOeu
  • Kind: organization

Α team working with the latest technologies about accounting, monitoring, messaging and eSeal Capabilities

GitHub Events

Total
  • Release event: 1
  • Push event: 3
  • Pull request review event: 1
  • Pull request event: 6
  • Create event: 1
Last Year
  • Release event: 1
  • Push event: 3
  • Pull request review event: 1
  • Pull request event: 6
  • Create event: 1

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 0
proxy.golang.org: github.com/ARGOeu/ams-push-server
  • Versions: 0
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.8%
Average: 6.0%
Dependent repos count: 6.2%
Last synced: 10 months ago

Dependencies

go.mod go
  • github.com/gogo/protobuf v1.3.2
  • github.com/golang/protobuf v1.5.2
  • github.com/grpc-ecosystem/go-grpc-middleware v1.0.0
  • github.com/pkg/errors v0.8.0
  • github.com/sirupsen/logrus v1.2.0
  • github.com/stretchr/testify v1.2.2
  • google.golang.org/genproto v0.0.0-20181109154231-b5d43981345b
  • google.golang.org/grpc v1.16.0
go.sum go
  • cloud.google.com/go v0.26.0
  • github.com/client9/misspell v0.3.4
  • github.com/davecgh/go-spew v1.1.1
  • github.com/gogo/protobuf v1.3.1
  • github.com/gogo/protobuf v1.3.2
  • github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
  • github.com/golang/lint v0.0.0-20180702182130-06c8688daad7
  • github.com/golang/mock v1.1.1
  • github.com/golang/protobuf v1.2.0
  • github.com/golang/protobuf v1.2.1-0.20181120001857-882cf97a83ad
  • github.com/golang/protobuf v1.5.0
  • github.com/golang/protobuf v1.5.2
  • github.com/google/go-cmp v0.5.5
  • github.com/grpc-ecosystem/go-grpc-middleware v1.0.0
  • github.com/kisielk/errcheck v1.2.0
  • github.com/kisielk/errcheck v1.5.0
  • github.com/kisielk/gotool v1.0.0
  • github.com/konsorten/go-windows-terminal-sequences v1.0.1
  • github.com/pkg/errors v0.8.0
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/sirupsen/logrus v1.2.0
  • github.com/stretchr/objx v0.1.1
  • github.com/stretchr/testify v1.2.2
  • github.com/yuin/goldmark v1.1.27
  • github.com/yuin/goldmark v1.2.1
  • golang.org/x/crypto v0.0.0-20180904163835-0709b304e793
  • golang.org/x/crypto v0.0.0-20181112202954-3d3f9f413869
  • golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
  • golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550
  • golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
  • golang.org/x/lint v0.0.0-20180702182130-06c8688daad7
  • golang.org/x/mod v0.2.0
  • golang.org/x/mod v0.3.0
  • golang.org/x/net v0.0.0-20180826012351-8a410e7b638d
  • golang.org/x/net v0.0.0-20180906233101-161cd47e91fd
  • golang.org/x/net v0.0.0-20181106065722-10aee1819953
  • golang.org/x/net v0.0.0-20181114220301-adae6a3d119a
  • golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3
  • golang.org/x/net v0.0.0-20190620200207-3b0461eec859
  • golang.org/x/net v0.0.0-20200226121028-0de0cce0169b
  • golang.org/x/net v0.0.0-20201021035429-f5854403a974
  • golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be
  • golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f
  • golang.org/x/sync v0.0.0-20190423024810-112230192c58
  • golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e
  • golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9
  • golang.org/x/sys v0.0.0-20180830151530-49385e6e1522
  • golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33
  • golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8
  • golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
  • golang.org/x/sys v0.0.0-20190412213103-97732733099d
  • golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f
  • golang.org/x/text v0.3.0
  • golang.org/x/text v0.3.3
  • golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52
  • golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e
  • golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563
  • golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e
  • golang.org/x/tools v0.0.0-20200619180055-7c47624df98f
  • golang.org/x/tools v0.0.0-20210106214847-113979e3529a
  • golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7
  • golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898
  • golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
  • golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
  • google.golang.org/appengine v1.1.0
  • google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8
  • google.golang.org/genproto v0.0.0-20180831171423-11092d34479b
  • google.golang.org/genproto v0.0.0-20181109154231-b5d43981345b
  • google.golang.org/grpc v1.16.0
  • google.golang.org/protobuf v1.26.0-rc.1
  • google.golang.org/protobuf v1.26.0
  • honnef.co/go/tools v0.0.0-20180728063816-88497007e858