Skip to content

Commit

Permalink
(feat) add active sources health status
Browse files Browse the repository at this point in the history
  • Loading branch information
tphoney committed Sep 23, 2024
1 parent 51bd589 commit fbb20ae
Showing 1 changed file with 64 additions and 0 deletions.
64 changes: 64 additions & 0 deletions account.proto
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,12 @@ service ManagementService {
// Deletes a source from a user's account
rpc DeleteSource(DeleteSourceRequest) returns (DeleteSourceResponse);

// Sources heartbeat and health
// List of all active sources and their health, includes managed and local sources
rpc ListActiveSources(ListActiveSourcesRequest) returns (ListActiveSourcesResponse);
// Heartbeat of a source
rpc SourceHeartbeat(SourceHeartbeatRequest) returns (SourceHeartbeatResponse);

// Updates sources to keep them running in the background. This can be used
// to add explicit action, when the built-in keepalives are not sufficient.
rpc KeepaliveSources(KeepaliveSourcesRequest) returns (KeepaliveSourcesResponse);
Expand Down Expand Up @@ -301,6 +307,64 @@ message SourceKeepaliveResult {
string Error = 3;
}

message ListActiveSourcesRequest {}

enum ActiveSourceStatus {
ACITVE_SOURCE_STATUS_HEALTHY = 0;
ACITVE_SOURCE_STATUS_UNHEALTHY = 1;
ACITVE_SOURCE_STATUS_DISCONNECTED = 2;
}

message ActiveSource {
// The UUID of the source
bytes UUID = 1;
// The version of the source
string Version = 2;
// The name of the source
string Name = 3;
// The error message if the source is unhealthy
string Error = 4;
// The status of the source
ActiveSourceStatus Status = 5;
// The last time the source sent a heartbeat
google.protobuf.Timestamp LastHeartbeat = 6;
// The type of the source, AWS or Stdlib or Kubernetes
string Type = 7;
// Whether the source is managed, or local
bool Managed = 8;
// The types of sources that this source can discover
repeated string availableTypes = 9;
// The scopes that this source can discover
repeated string availableScopes = 10;
}

message ListActiveSourcesResponse {
repeated ActiveSource source = 1;
}

message SourceHeartbeatRequest {
// The UUID of the source that is sending the heartbeat
bytes UUID = 1;
// The version of the source
string Version = 2;
// The name of the source
string Name = 3;
// The error message if the source is unhealthy
string Error = 4;
// When the source will send the next heartbeat by
google.protobuf.Timestamp NextHeartbeat = 5;
// The type of the source, AWS or Stdlib or Kubernetes
string Type = 6;
// Whether the source is managed, or local
bool Managed = 7;
// The types of sources that this source can discover
repeated string availableTypes = 8;
// The scopes that this source can discover
repeated string availableScopes = 9;
}

message SourceHeartbeatResponse {}

message KeepaliveSourcesRequest {
// Set to true to have the API call wait until the source is up and healthy
bool waitForHealthy = 1;
Expand Down

0 comments on commit fbb20ae

Please sign in to comment.