{
  "GrpcPort": 50051,
  "ApiKeyConfigFile": "apikeys.json",

  "Connection": {
    "MonitorIntervalSeconds": 5,
    "ConnectionTimeoutSeconds": 30,
    "ReadTimeoutSeconds": 5,
    "WriteTimeoutSeconds": 5,
    "MaxConcurrentOperations": 10,
    "AutoReconnect": true,
    "NodeName": null,
    "GalaxyName": null
  },

  "Subscription": {
    "ChannelCapacity": 1000,
    "ChannelFullMode": "DropOldest"
  },

  "Tls": {
    "Enabled": false,
    "ServerCertificatePath": "certs/server.crt",
    "ServerKeyPath": "certs/server.key",
    "ClientCaCertificatePath": "certs/ca.crt",
    "RequireClientCertificate": false,
    "CheckCertificateRevocation": false
  },

  "WebServer": {
    "Enabled": true,
    "Port": 8080
  },

  "HealthCheck": {
    "TestTagAddress": "DevPlatform.Scheduler.ScanTime",
    "ProbeStaleThresholdMs": 5000
  },

  "ServiceRecovery": {
    "FirstFailureDelayMinutes": 1,
    "SecondFailureDelayMinutes": 5,
    "SubsequentFailureDelayMinutes": 10,
    "ResetPeriodDays": 1
  },

  "Serilog": {
    "Using": [
      "Serilog.Sinks.Console",
      "Serilog.Sinks.File",
      "Serilog.Enrichers.Environment",
      "Serilog.Enrichers.Thread"
    ],
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Warning",
        "System": "Warning",
        "Grpc": "Information",
        "ZB.MOM.WW.LmxProxy.Host.MxAccess.StaComThread": "Debug"
      }
    },
    "WriteTo": [
      {
        "Name": "Console",
        "Args": {
          "outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj} {Properties:j}{NewLine}{Exception}"
        }
      },
      {
        "Name": "File",
        "Args": {
          "path": "logs/lmxproxy-.txt",
          "rollingInterval": "Day",
          "retainedFileCountLimit": 30,
          "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} {Level:u3}] [{MachineName}/{ThreadId}] {Message:lj}{NewLine}{Exception}"
        }
      }
    ],
    "Enrich": [
      "FromLogContext",
      "WithMachineName",
      "WithThreadId"
    ]
  }
}
