Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[KDB-589] Rename configuration prefixes and sections #4707

Merged
merged 20 commits into from
Jan 9, 2025

Conversation

hayley-jean
Copy link
Member

@hayley-jean hayley-jean commented Dec 24, 2024

Rename most of the configuration from EventStore to KurrentDB, while still accepting configuration provided with EventStore prefixes and files. The benefit of using separate ConfigurationProviders for this is that it is easy to discover which options are still using the legacy prefix, and they're logged automatically at startup. e.g.:

MODIFIED OPTIONS:
    APPLICATION OPTIONS:
         CONFIG:                          /etc/eventstore/eventstore.conf (Event Store Default Locations Provider)
         WORKER THREADS:                  5 (Event Store Environment Variables)

    CLUSTER OPTIONS:
         NODE PRIORITY:                   6 (Event Store Command Line)

    INTERFACE OPTIONS:
         NODE PORT:                       1111 (Yaml)

Changes to configuration options:

  • Rename EventStore prefixes and config sections to KurrentDB.
  • Add legacy EventStore sources and providers which load any options provided with the EventStore prefix and transform the prefix to KurrentDB:
    • EventStoreEnvironmentVariables*
    • EventStoreCommandLine*
    • EventStoreJsonFile*
  • Log a deprecation warning when an option is provided with the EventStore prefix:
The "EventStore" configuration root has been deprecated and renamed to "KurrentDB". The following settings will still be used, but will stop working in a future release:
"Licensing" Provided by: Event Store Environment Variables. The "EventStore" configuration root has been deprecated, use "KurrentDB" instead.
"NodePort" Provided by: Event Store Command Line. The "EventStore" configuration root has been deprecated, use "KurrentDB" instead.

Changes to default locations:

  • Rename default locations from eventstore to kurrentdb.
  • Rename default config file from eventstore.conf to kurrentdb.conf.
  • Add EventStoreDefaultLocations* config provider and source which overrides some default locations if the EventStore locations exist and the KurrentDB locations do not. This only works for the following locations:
    • The default config file /etc/kurrentdb/kurrentdb.conf -> /etc/eventstore/eventstore.conf
    • The default data directory /var/lib/kurrentdb/ -> /var/lib/eventstore/
    • The default log directory /var/log/kurrentdb/ -> /var/log/eventstore/
  • Log a deprecation warning when using an EventStore default location rather than a current one:
"KurrentDB:Config": The default location "/etc/kurrentdb/kurrentdb.conf" was not found, using the legacy default location "/etc/eventstore/eventstore.conf".
"KurrentDB:Db": The default location "/var/lib/kurrentdb" was not found, using the legacy default location "/var/lib/eventstore".
"KurrentDB:Log": The default location "/var/log/kurrentdb" was not found, using the legacy default location "/var/log/eventstore".

@hayley-jean hayley-jean self-assigned this Dec 24, 2024
Copy link
Contributor

github-actions bot commented Dec 24, 2024

Qodana for .NET

3 new problems were found

Inspection name Severity Problems
Private field can be converted into local variable 🔶 Warning 2
Namespace does not correspond to file location 🔶 Warning 1

💡 Qodana analysis was run in the pull request mode: only the changed files were checked
☁️ View the detailed Qodana report

Detected 205 dependencies

Third-party software list

This page lists the third-party software dependencies used in EventStore

Dependency Version Licenses
AWSSDK.Core 3.7.304 Apache-2.0
AWSSDK.S3 3.7.307.32 Apache-2.0
AWSSDK.SQS 3.7.301.3 Apache-2.0
AWSSDK.SecurityToken 3.7.300.91 Apache-2.0
Acornima 1.1.0 BSD-3-Clause
BenchmarkDotNet.Annotations 0.13.10 MIT
BenchmarkDotNet 0.13.10 MIT
CommandLineParser 2.9.1 MIT
DotNext.IO 5.17.1 MIT
DotNext.Threading 5.17.0 MIT
DotNext.Unsafe 5.17.0 MIT
DotNext 5.17.0 MIT
EventStore.Plugins 24.10.6 Elastic-2.0
EventStore.Plugins 25.2.5 Elastic-2.0
FluentStorage.AWS 5.5.0 MIT
FluentStorage 5.6.0 MIT
Gee.External.Capstone 2.3.0 MIT
GitInfo 3.3.3 MIT
Google.Protobuf 3.27.2 BSD-3-Clause
Grpc.AspNetCore.Server.ClientFactory 2.64.0 Apache-2.0
Grpc.AspNetCore.Server 2.64.0 Apache-2.0
Grpc.AspNetCore 2.64.0 Apache-2.0
Grpc.Core.Api 2.64.0 Apache-2.0
Grpc.Net.Client 2.64.0 Apache-2.0
Grpc.Net.ClientFactory 2.64.0 Apache-2.0
Grpc.Net.Common 2.64.0 Apache-2.0
Grpc.Tools 2.65.0 Apache-2.0
Iced 1.17.0 MIT
JetBrains.Annotations 2023.3.0 MIT
Jint 4.0.3 BSD-2-Clause
Microsoft.Bcl.AsyncInterfaces 6.0.0 MIT
Microsoft.CSharp 4.7.0 MIT
Microsoft.CodeAnalysis.Analyzers 3.3.3 MIT
Microsoft.CodeAnalysis.Analyzers 3.3.4 MIT
Microsoft.CodeAnalysis.CSharp 4.1.0 MIT
Microsoft.CodeAnalysis.CSharp 4.7.0 MIT
Microsoft.CodeAnalysis.Common 4.1.0 MIT
Microsoft.CodeAnalysis.Common 4.7.0 MIT
Microsoft.Data.Sqlite.Core 8.0.0 MIT
Microsoft.Data.Sqlite 8.0.0 MIT
Microsoft.Diagnostics.NETCore.Client 0.2.452401 MIT
Microsoft.Diagnostics.Runtime 2.2.332302 MIT
Microsoft.Diagnostics.Tracing.TraceEvent 3.1.6 MIT
Microsoft.DotNet.PlatformAbstractions 3.1.6 MIT
Microsoft.Extensions.Configuration.Abstractions 8.0.0 MIT
Microsoft.Extensions.Configuration.Binder 8.0.0 MIT
Microsoft.Extensions.Configuration.EnvironmentVariables 3.1.0 Apache-2.0
Microsoft.Extensions.Configuration.FileExtensions 8.0.0 MIT
Microsoft.Extensions.Configuration.Json 8.0.0 MIT
Microsoft.Extensions.Configuration 8.0.0 MIT
Microsoft.Extensions.DependencyInjection.Abstractions 8.0.0 MIT
Microsoft.Extensions.DependencyInjection.Abstractions 8.0.1 MIT
Microsoft.Extensions.DependencyInjection 8.0.0 MIT
Microsoft.Extensions.DependencyModel 8.0.1 MIT
Microsoft.Extensions.DependencyModel 8.0.2 MIT
Microsoft.Extensions.FileProviders.Abstractions 8.0.0 MIT
Microsoft.Extensions.FileProviders.Composite 8.0.0 MIT
Microsoft.Extensions.FileProviders.Embedded 8.0.0 MIT
Microsoft.Extensions.FileProviders.Physical 8.0.0 MIT
Microsoft.Extensions.FileSystemGlobbing 8.0.0 MIT
Microsoft.Extensions.Hosting.Abstractions 2.1.0 Apache-2.0
Microsoft.Extensions.Http 6.0.0 MIT
Microsoft.Extensions.Logging.Abstractions 8.0.0 MIT
Microsoft.Extensions.Logging.Configuration 3.1.0 Apache-2.0
Microsoft.Extensions.Logging 8.0.0 MIT
Microsoft.Extensions.ObjectPool 6.0.16 MIT
Microsoft.Extensions.Options.ConfigurationExtensions 3.1.0 Apache-2.0
Microsoft.Extensions.Options 8.0.0 MIT
Microsoft.Extensions.Primitives 8.0.0 MIT
Microsoft.FASTER.Core 1.9.16 MIT
Microsoft.IO.RecyclableMemoryStream 3.0.1 MIT
Microsoft.IdentityModel.Abstractions 7.6.0 MIT
Microsoft.IdentityModel.JsonWebTokens 7.6.0 MIT
Microsoft.IdentityModel.Logging 7.6.0 MIT
Microsoft.IdentityModel.Tokens 7.6.0 MIT
Microsoft.NETCore.Platforms 1.1.0 MIT
Microsoft.NETCore.Platforms 1.1.1 MIT
Microsoft.NETCore.Platforms 2.0.0 MIT
Microsoft.NETCore.Platforms 5.0.0 MIT
Microsoft.NETCore.Targets 1.1.3 MIT
Microsoft.Net.Http.Headers 8.0.0 MIT
Microsoft.Win32.Registry 4.4.0 MIT
Microsoft.Win32.Registry 5.0.0 MIT
Mono.Posix.NETStandard 1.0.0 MIT
NETStandard.Library 2.0.3 MIT
NetEscapades.Configuration.Yaml 3.1.0 MIT
Newtonsoft.Json 13.0.3 MIT
OpenTelemetry.Api 1.4.0-rc.1 Apache-2.0
OpenTelemetry.Exporter.Prometheus.AspNetCore 1.4.0-rc.1 Apache-2.0
OpenTelemetry.Extensions.DependencyInjection 1.4.0-rc.1 Apache-2.0
OpenTelemetry.Extensions.Hosting 1.4.0-rc.1 Apache-2.0
OpenTelemetry 1.4.0-rc.1 Apache-2.0
Perfolizer 0.2.1 MIT
Quickenshtein 1.5.1 MIT
RestSharp 112.0.0 Apache-2.0
SQLitePCLRaw.bundle_e_sqlite3 2.1.6 Apache-2.0
SQLitePCLRaw.core 2.1.6 Apache-2.0
SQLitePCLRaw.lib.e_sqlite3 2.1.6 Apache-2.0
SQLitePCLRaw.provider.e_sqlite3 2.1.6 Apache-2.0
Scrutor 5.0.2 MIT
Serilog.Enrichers.Process 3.0.0 Apache-2.0
Serilog.Enrichers.Thread 4.0.0 Apache-2.0
Serilog.Expressions 5.0.0 Apache-2.0
Serilog.Extensions.Logging 8.0.0 Apache-2.0
Serilog.Settings.Configuration 8.0.2 Apache-2.0
Serilog.Sinks.Async 2.0.0 Apache-2.0
Serilog.Sinks.Console 6.0.0 Apache-2.0
Serilog.Sinks.File 6.0.0 Apache-2.0
Serilog 4.0.1 Apache-2.0
SharpDotYaml.Extensions.Configuration 0.3.0 MIT
System.Buffers 4.5.1 MIT
System.CodeDom 5.0.0 MIT
System.Collections.Concurrent 4.3.0 MIT
System.Collections.Immutable 5.0.0 MIT
System.Collections.Immutable 7.0.0 MIT
System.Collections 4.3.0 MIT
System.ComponentModel.Composition 8.0.0 MIT
System.Configuration.ConfigurationManager 8.0.0 MIT
System.Diagnostics.Debug 4.3.0 MIT
System.Diagnostics.DiagnosticSource 8.0.1 MIT
System.Diagnostics.EventLog 8.0.0 MIT
System.Diagnostics.PerformanceCounter 8.0.0 MIT
System.Diagnostics.Tracing 4.3.0 MIT
System.Formats.Asn1 8.0.1 MIT
System.Globalization.Calendars 4.3.0 MIT
System.Globalization.Extensions 4.3.0 MIT
System.Globalization 4.3.0 MIT
System.IO.FileSystem.Primitives 4.3.0 MIT
System.IO.FileSystem 4.3.0 MIT
System.IO.Hashing 8.0.0 MIT
System.IO.Pipelines 8.0.0 MIT
System.IO 4.3.0 MIT
System.Interactive.Async 5.0.0 MIT
System.Linq.Async 6.0.1 MIT
System.Linq 4.3.0 MIT
System.Management 5.0.0 MIT
System.Memory 4.5.3 MIT
System.Memory 4.5.4 MIT
System.Memory 4.5.5 MIT
System.Net.Http 4.3.4 MIT
System.Net.Primitives 4.3.0 MIT
System.Numerics.Vectors 4.4.0 MIT
System.Private.Uri 4.3.2 MIT
System.Reactive 6.0.1 MIT
System.Reflection.Metadata 5.0.0 MIT
System.Reflection.Metadata 7.0.0 MIT
System.Reflection.Primitives 4.3.0 MIT
System.Reflection 4.3.0 MIT
System.Resources.ResourceManager 4.3.0 MIT
System.Runtime.CompilerServices.Unsafe 5.0.0 MIT
System.Runtime.CompilerServices.Unsafe 6.0.0 MIT
System.Runtime.Extensions 4.3.0 MIT
System.Runtime.Handles 4.3.0 MIT
System.Runtime.InteropServices 4.3.0 MIT
System.Runtime.Numerics 4.3.0 MIT
System.Runtime 4.3.1 MIT
System.Security.AccessControl 4.4.0 MIT
System.Security.AccessControl 5.0.0 MIT
System.Security.Cryptography.Algorithms 4.3.0 MIT
System.Security.Cryptography.Cng 4.3.0 MIT
System.Security.Cryptography.Csp 4.3.0 MIT
System.Security.Cryptography.Encoding 4.3.0 MIT
System.Security.Cryptography.OpenSsl 4.3.0 MIT
System.Security.Cryptography.Pkcs 8.0.0 MIT
System.Security.Cryptography.Primitives 4.3.0 MIT
System.Security.Cryptography.ProtectedData 8.0.0 MIT
System.Security.Cryptography.X509Certificates 4.3.0 MIT
System.Security.Cryptography.Xml 8.0.0 MIT
System.Security.Principal.Windows 4.4.0 MIT
System.Security.Principal.Windows 5.0.0 MIT
System.ServiceModel.Http 6.2.0 MIT
System.ServiceModel.Primitives 6.2.0 MIT
System.Text.Encoding.CodePages 4.5.1 MIT
System.Text.Encoding.CodePages 7.0.0 MIT
System.Text.Encoding 4.3.0 MIT
System.Text.Encodings.Web 8.0.0 MIT
System.Text.Json 8.0.5 MIT
System.Text.RegularExpressions 4.3.1 MIT
System.Threading.Channels 9.0.0 MIT
System.Threading.Tasks.Extensions 4.5.4 MIT
System.Threading.Tasks 4.3.0 MIT
System.Threading.Thread 4.3.0 MIT
System.Threading 4.3.0 MIT
TestableIO.System.IO.Abstractions.Wrappers 21.0.22 MIT
TestableIO.System.IO.Abstractions 21.0.22 MIT
ThisAssembly.Constants 1.4.1 MIT
YamlDotNet 15.1.4 MIT
YamlDotnet 13.7.1 MIT
librdkafka.redist 2.5.0 Apache-2.0
runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.2 MIT
runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.2 MIT
runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.2 MIT
runtime.native.System.Net.Http 4.3.0 MIT
runtime.native.System.Security.Cryptography.Apple 4.3.0 MIT
runtime.native.System.Security.Cryptography.OpenSsl 4.3.2 MIT
runtime.native.System 4.3.0 MIT
runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.2 MIT
runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.2 MIT
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple 4.3.0 MIT
runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.2 MIT
runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.2 MIT
runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.2 MIT
runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.2 MIT
runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl 4.3.2 MIT
system.uritemplate MIT
Contact Qodana team

Contact us at qodana-support@jetbrains.com

@hayley-jean hayley-jean added the deprecated This PR deprecates a feature, function, or configuration option label Dec 30, 2024
@hayley-jean hayley-jean force-pushed the hayley-jean/kdb-589-rename-configuration branch from 85e9790 to 347aa07 Compare December 31, 2024 15:32
@hayley-jean hayley-jean force-pushed the hayley-jean/kdb-589-rename-configuration branch from 347aa07 to 226411e Compare December 31, 2024 15:40
@hayley-jean hayley-jean added the breaking This PR contains a breaking change label Dec 31, 2024
@hayley-jean hayley-jean force-pushed the hayley-jean/kdb-589-rename-configuration branch from babf079 to 0b46690 Compare January 2, 2025 14:00
@hayley-jean hayley-jean force-pushed the hayley-jean/kdb-589-rename-configuration branch from 9233ee7 to 314adbc Compare January 3, 2025 13:22
@hayley-jean hayley-jean force-pushed the hayley-jean/kdb-589-rename-configuration branch from 314adbc to 4a04197 Compare January 3, 2025 14:43
@hayley-jean hayley-jean marked this pull request as ready for review January 3, 2025 14:56
@hayley-jean hayley-jean requested a review from a team as a code owner January 3, 2025 14:56
@hayley-jean hayley-jean force-pushed the hayley-jean/kdb-589-rename-configuration branch from 01b1633 to b14f470 Compare January 3, 2025 15:08
@hayley-jean hayley-jean force-pushed the hayley-jean/kdb-589-rename-configuration branch from b14f470 to be14e5f Compare January 3, 2025 15:51
@hayley-jean hayley-jean force-pushed the hayley-jean/kdb-589-rename-configuration branch from e91a3ed to b8c880a Compare January 9, 2025 12:25
timothycoleman
timothycoleman previously approved these changes Jan 9, 2025
@hayley-jean hayley-jean merged commit ca536bc into master Jan 9, 2025
11 of 12 checks passed
@hayley-jean hayley-jean deleted the hayley-jean/kdb-589-rename-configuration branch January 9, 2025 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking This PR contains a breaking change deprecated This PR deprecates a feature, function, or configuration option
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants