hypertrace/config-service

Enhance the GetAllConfigsRequest to accept multiple resource_names

Opened this issue · 1 comments

Current schema:

message GetAllConfigsRequest {
  // required - name of the resource associated with the config
  string resource_name = 1;

  // required - namespace with which the config resource is associated
  string resource_namespace = 2;
}

This should be enhanced to something like the below:

message GetAllConfigsRequest {
  repeated ResourceIdentity = 1;
}

message ResourceIdentity {
 // required - name of the resource associated with the config
  string resource_name = 1;

  // required - namespace with which the config resource is associated
  string resource_namespace = 2;
}

My preference on this feature would be to add filter support. Something like:

message GetAllConfigsRequest {
  string resource_name = 1;
  string resource_namespace = 2;
  ConfigFilter filter = 3;
}

message ConfigFilter {
   repeated string context = 1;
  // Can add other filter support as needed
}

The reasoning here:

  1. Backwards compatibility
  2. More extensible
  3. Keeps the same expectations on the query side around how a config is structured - that is a name should represent a type of config. That is, the proposed api can return values of different shapes because I can ask for multiple different resources across multiple namespaces.