Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/server/quick-start/upgrade-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ KurrentDB 25.0 includes [a plugin](../configuration/networking.md#external-tcp)
A number of configuration options have been removed as part of this. KurrentDB will not start by default if any of the following options are present in the database configuration:

- `AdvertiseTcpPortToClientAs`
- `DisableExternalTcpTls`
- `DisableExternalTcpTls` — this option is now available again under the [TCP plugin](../configuration/networking.md#external-tcp) configuration section as `TcpPlugin:DisableExternalTcpTls`
- `EnableExternalTcp`
- `ExtHostAdvertiseAs`
- `ExtTcpHeartbeatInterval`
Expand Down
8 changes: 6 additions & 2 deletions src/KurrentDB.Core/ClusterVNode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -294,11 +294,15 @@ public ClusterVNode(ClusterVNodeOptions options,
OptionsFormatter.LogConfig("Archive", archiveOptions);
archiveOptions.Validate();

var disableInternalTcpTls = options.Application.Insecure;
var disableExternalTcpTls = options.Application.Insecure;
var nodeTcpOptions = GetOptions<NodeTcpOptions>("TcpPlugin");
var disableInternalTcpTls = options.Application.Insecure;
var disableExternalTcpTls = options.Application.Insecure || nodeTcpOptions.DisableExternalTcpTls;
var enableExternalTcp = nodeTcpOptions.EnableExternalTcp;

if (nodeTcpOptions.DisableExternalTcpTls && !options.Application.Insecure)
Log.Warning("TLS is disabled for external TCP connections via the DisableExternalTcpTls option. " +
"This is not recommended for production environments.");

var httpEndPoint = new IPEndPoint(options.Interface.NodeIp, options.Interface.NodePort);

var intTcp = disableInternalTcpTls
Expand Down
1 change: 1 addition & 0 deletions src/KurrentDB.Core/NodeTcpOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ namespace KurrentDB.Core;
public class NodeTcpOptions {
public int NodeTcpPort { get; init; } = 1113;
public bool EnableExternalTcp { get; init; }
public bool DisableExternalTcpTls { get; init; }
public int? NodeTcpPortAdvertiseAs { get; init; }
}
13 changes: 13 additions & 0 deletions src/KurrentDB.TcpPlugin.Tests/EventStoreOptionsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,19 @@ public void can_be_insecure() {
Assert.True(sut.Insecure);
}

[Fact]
public void disable_external_tcp_tls_defaults_to_false() {
var sut = CreateSut();
Assert.False(sut.TcpPlugin.DisableExternalTcpTls);
}

[Fact]
public void can_disable_external_tcp_tls() {
var sut = CreateSut(
($"{KurrentConfigurationKeys.Prefix}:TcpPlugin:DisableExternalTcpTls", "true"));
Assert.True(sut.TcpPlugin.DisableExternalTcpTls);
}

[Fact]
public void can_set_ip() {
var sut = CreateSut(
Expand Down
1 change: 1 addition & 0 deletions src/KurrentDB.TcpPlugin/tcp-plugin-example.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"KurrentDB": {
"TcpPlugin": {
"EnableExternalTcp": true,
"DisableExternalTcpTls": false,
"NodeTcpPort": 1113,
"NodeTcpPortAdvertiseAs": 1113,
"NodeHeartbeatInterval": 2000,
Expand Down
1 change: 1 addition & 0 deletions src/KurrentDB.TcpPlugin/tcp-plugin-example.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
TcpPlugin:
EnableExternalTcp: true
DisableExternalTcpTls: false
NodeTcpPort: 1113
NodeTcpPortAdvertiseAs: 1113
NodeHeartbeatInterval: 2000
Expand Down
Loading