mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-30 10:56:28 +02:00
* zero/connect: add run health checks and shutdown commands * fix proto * trigger re-run on command * add handler * rename runPeriodicHealthChecksLeased
76 lines
2.7 KiB
Protocol Buffer
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);
|
|
}
|