pomerium/pkg/zero/connect/connect.proto
Denis Mishin 0503b41108
zero/connect: add re-run health checks command (#5219)
* zero/connect: add run health checks and shutdown commands

* fix proto

* trigger re-run on command

* add handler

* rename runPeriodicHealthChecksLeased
2024-08-22 16:17:53 -04:00

76 lines
2.7 KiB
Protocol Buffer

syntax = "proto3";
package pomerium.zero;
option go_package = "github.com/pomerium/pomerium/pkg/zero/connect";
// SubscribeRequest is used to subscribe to a stream of messages
// from the Zero Cloud to the Pomerium Core.
//
// The Authorization: Bearer header must contain a valid token,
// that belongs to a cluster identity with appropriate claims set.
message SubscribeRequest {
string hostname = 1;
string version = 2;
}
// Message is an aggregate of all possible messages that can be sent
// from the cloud to the core in managed mode.
message Message {
oneof message {
ConfigUpdated config_updated = 1;
BootstrapConfigUpdated bootstrap_config_updated = 2;
TelemetryRequest telemetry_request = 3;
RunHealthChecksRequest run_health_checks_request = 5;
}
}
// ConfigUpdated is sent when the configuration has been updated
// for the connected Pomerium Core deployment
message ConfigUpdated {
// version of the configuration changeset
int64 changeset_version = 1;
}
// BootstrapConfigUpdated is sent when the bootstrap configuration has been
// updated. Bootstrap configuration is received via cluster API directly, and
// does not involve long running operations to construct it, like with a regular
// config.
message BootstrapConfigUpdated {}
// RunHealthChecksRequest is sent to request the Pomerium Core to re-run its health checks
message RunHealthChecksRequest {}
// TelemetryRequest is sent to request current telemetry data from the Pomerium Core to be sent to the Zero Cloud.
message TelemetryRequest {
// include_session_analytics requests current MAU/DAU data
optional SessionAnalyticsRequest session_analytics = 1;
// envoy_metrics requests current envoy metrics
optional EnvoyMetricsRequest envoy_metrics = 2;
// pomerium_metrics requests current pomerium metrics
optional PomeriumMetricsRequest pomerium_metrics = 3;
}
// SessionAnalyticsRequest is used to request current MAU/DAU data
message SessionAnalyticsRequest {}
// EnvoyMetricsRequest is used to request current envoy metrics
message EnvoyMetricsRequest {
// only include metrics that match the provided labels
repeated string metrics = 1;
// only include labels that match the provided labels
repeated string labels = 2;
}
// PomeriumMetricsRequest is used to request current pomerium metrics
message PomeriumMetricsRequest {
// only include metrics that match the provided labels
repeated string metrics = 1;
}
// Connect service is used to maintain a persistent connection between the
// Pomerium Core and Zero Cloud and receive messages from the cloud.
service Connect {
// Subscribe is used to send a stream of messages from the Zero Cloud to the
// Pomerium Core in managed mode.
rpc Subscribe(SubscribeRequest) returns (stream Message);
}