on-prem-protocol

Crates.ioon-prem-protocol
lib.rson-prem-protocol
version0.2.3
sourcesrc
created_at2024-08-08 17:41:41.804367
updated_at2024-10-29 14:36:02.958316
descriptionA gRPC client for the On Prem control plane.
homepagehttps://on-prem.net
repositoryhttps://gitlab.com/on-prem-net/protocol
max_upload_size
id1329787
size5,389,282
David Rauschenbach (drauschenbach)

documentation

README

On Prem Protocol

This project provides connectivity to the User gRPC Server of the On Prem control plane. The default instance of the control plane runs in the cloud at https://api.on-prem.net.

Architecture

graph TB;

subgraph Clients[Clients / Edge]
agent[Agent]
cli[CLI]
console[Console]
end

subgraph API[Control Plane]
agent_grpc_server[Agent gRPC Server :3004]
api_endpoint[API Aggregation Endpoint :3000]
lambda_grpc_server[Lambda gRPC Server :3002]
reconfig_grpc_server[Reconfig gRPC Server :3003]
rest_endpoint[REST Endpoint :3006]
storage_grpc_server[Storage Server :3001]
user_grpc_server[User gRPC Server :3005]
end

subgraph Backing Services
mongo[(MongoDB)]
prometheus[(Prometheus)]
redis[(Redis)]
stripe[Stripe]
end

agent <-- tunnel stream --> api_endpoint;
agent_grpc_server ---> reconfig_grpc_server;
agent_grpc_server ---> storage_grpc_server;
api_endpoint <--> agent_grpc_server;
api_endpoint ---> rest_endpoint;
api_endpoint --> user_grpc_server;
cli --> api_endpoint;
console ---> api_endpoint;
lambda_grpc_server ---> storage_grpc_server;
reconfig_grpc_server --> storage_grpc_server;
rest_endpoint ---> user_grpc_server;
storage_grpc_server ---> mongo;
storage_grpc_server ---> prometheus;
storage_grpc_server ---> redis;
user_grpc_server -- use tunnel --> agent_grpc_server;
user_grpc_server ---> lambda_grpc_server;
user_grpc_server ---> reconfig_grpc_server;
user_grpc_server ---> storage_grpc_server;
user_grpc_server -- metered billing --> stripe

Building

$ make dependencies
$ make generate
$ make
$ make check
Commit count: 62

cargo fmt