TlsConfig.fromEnvironment constructor

TlsConfig.fromEnvironment(
  1. Map<String, String> env
)

Builds a TlsConfig from environment variables.

Implementation

factory TlsConfig.fromEnvironment(Map<String, String> env) {
  String? optional(String? value) {
    if (value == null) return null;
    final trimmed = value.trim();
    return trimmed.isEmpty ? null : trimmed;
  }

  final ca = optional(env[TlsEnvKeys.caCert]);
  final cert = optional(env[TlsEnvKeys.clientCert]);
  final key = optional(env[TlsEnvKeys.clientKey]);
  final allowInsecure =
      (env[TlsEnvKeys.allowInsecure] ?? 'false').toLowerCase().contains(
        'true',
      ) ||
      (env[TlsEnvKeys.allowInsecure] ?? '').toLowerCase() == '1';

  if (ca == null && cert == null && key == null && !allowInsecure) {
    return const TlsConfig.disabled();
  }

  return TlsConfig(
    caCertificateFile: ca,
    clientCertificateFile: cert,
    clientKeyFile: key,
    allowInsecure: allowInsecure,
  );
}