syntax = "proto3";

package env;

option go_package = "go.firedancer.io/radiance/proto/envv1;envv1";

// Package env provides shared environment configuration values.

message Env {
  repeated RPCNode nodes = 1;
  Kafka kafka = 2;
}

message RPCNode {
  string name = 1;
  string http = 2;
  string ws = 3;
  repeated string tag = 4;
}

message Kafka {
  // List of seed brokers.
  repeated string brokers = 1;
  // Topic prefix (dot notation). The topic name is the prefix + application-specific name.
  string topic_prefix = 2;

  // SASL SCRAM-SHA-256 authentication.
  message KafkaSASLAuth {
    string username = 1;
    string password = 2;
  }

  message KafkaNoAuth{}

  // Authentication method.
  oneof auth {
    // No authentication.
    KafkaNoAuth no_auth = 3;
    // SASL authentication.
    KafkaSASLAuth sasl_auth = 4;
  }

  // Encryption
  oneof encryption {
    // TLS encryption.
    KafkaTLSEncryption tls_encryption = 6;
  }

  // TLS encryption.
  message KafkaTLSEncryption {}
}

