Event Store v20.6.0 Release Notes

Release Date: 2020-05-15 // almost 4 years ago
  • ๐Ÿ”„ Changed

    • HTTP read requests to /streams/$scavenges/ are done via AdminController. #2310
    • /streams/$scavenges/{scavengeId}/ now maps to /streams/$scavenges-{scavengeId}/. #2310
    • Start View Change Proof Timer on System Initialized only. #2366
    • Replace byte[] with ReadOnlyMemory to reduce allocations. #2308
    • Don't write $ProjectionDeleted events for queries when they're deleted EventStore#2377
    • ๐Ÿ”Œ Prepared the authorization interfaces for plugin extraction EventStore#2385
    • โœ‚ Remove unused code from MiniNode used in tests EventStore#2401
    • ๐Ÿ“š Correct the xml documentation for the TCP Client settings builders. EventStore#2393
    • โœ‚ Removed the constraint in AlreadyCommitted for Log Position to be positive. EventStore#2404
    • 0๏ธโƒฃ Set the default for the write timeout EventStore#2410
    • Replaced UseCustomHttpClient in the ConnectionSettingsBuilder for the TCP client with UseCustomHttpMessageHandler EventStore#2419
    • Ensure that the leader is still in a leader state when gossip has changed. If not, start elections. EventStore#2418
    • ๐Ÿ‘ Allow a projection to be able to checkpoint regardless of whether the event filter passes. EventStore#2428
    • ๐Ÿ“ฆ Authorization and Authentication plugin interfaces have been removed and re-included as a nuget package from EventStore.Plugins EventStore#2409
    • Authentication Provider Factory now takes a Serilog ILogger EventStore#2409
    • โšก๏ธ Make read-only replicas independent of elections service and use gossip updates to determine leader changes. EventStore#2427
    • Send the last replication checkpoint when a node subscribes to the leader EventStore#2445
    • License information EventStore#2439
    • ๐Ÿ”Œ Authorization and Authentication Plugins no longer require MEF EventStore#2457
    • Appends will now return a oneof response types which currently is either a Success or a WrongExpectedVersion. EventStore#2463
    • โœ… Enable the Test Client to connect to a dns or ip endpoint EventStore#2474
    • AuthToken field and constructor added to UserCredentials EventStore#2471
    • The connection settings for the Tcp Client now accepts Dns EndPoint as a means to connect to the nodes in the cluster. EventStore#2480
    • Authenticate requests as the system user if they provide a valid client certificate with the provided trusted root certificate EventStore#2475
    • โšก๏ธ Require a system user for gossip update, and for all election operations EventStore#2475
    • โšก๏ธ Update UI submodule as well as the pre-built UI. EventStore#2490

    โœ‚ Removed

    โž• Added

    • ๐Ÿ‘Œ Supports for pull request linting and automatic changelog update EventStore#2391
    • The following options have been added AuthorizationType and AuthorizationConfig to mirror that of the existing AuthenticationType and AuthenticationConfig. EventStore#2385
    • ๐Ÿ”ง A mandatory configuration parameter named: TrustedRootCertificatesPath. The certificate store will be expanded with the root certificates in this path before certificate validation. For server certificate validation, trust is restricted to system certificates + the specified root certificates but for client certificate validation, trust is restricted only to the specified root certificates. Before this change, all root certificates installed on the system were trusted. EventStore#2335
    • Client certificate validation to the internal HTTP interface which is used for gossip/elections EventStore#2335
    • โšก๏ธ Discover an existing leader through gossip updates when a read-only replica starts up instead of triggering elections. EventStore#2417
    • Login endpoint (admin/login) EventStore#2409
    • ๐Ÿ”‹ Features collection on the info endpoint EventStore#2409
    • Operations proto contract and implementation EventStore#2446
    • Max Truncation Safety Feature to avoid large unexpected truncations due to misconfiguration EventStore#2436
    • ๐Ÿ†• New route in PersistentSubscriptionController to view parked messages /subscriptions/viewparkedmessages/{stream}/{group} EventStore#2392
    • A new project EventStore.NETCore.Compatibility which takes the code for System.UriTemplate from .NET Framework 4.8 reference source (MIT-licensed) instead of depending on SimpleSyndicate.UriTemplate (no license) EventStore#2439
    • TCP jwt authorization on the wire EventStore#2449
    • ๐Ÿ“ฆ Push EventStore.ClientAPI and EventStore.ClientAPI.Embedded to GitHub Package Registry EventStore#2462
    • ๐Ÿ‘€ Provide the ability to specify DnsEndPoints as part of gossip seeds. EventStore#2455
    • Provide the ability to specify DnsEndPoints as advertise information EventStore#2455
    • Extended the proto contract for read responses to include Stream Not Found. EventStore#2473
    • With the terminology changes we made, the class names have been changed but we just missed renaming the files. EventStore#2383
    • ๐Ÿ›  Fix bug introduced by f87b317b78248638aba18a6173e63b809ece5d66 EventStore#2406
    • ๐Ÿ‘ท When restarting each node one at a time, should keep db as the test fixture will remove the root directory. This test fails the CI quite often. EventStore#2482
    • ๐Ÿ‘‰ Use TrySetResult instead of SetResult so that exceptions are not thrown if setting result twice EventStore#2406

    ๐Ÿ›  Fixed

    • Connect to existing master when a node starts up instead of triggering unnecessary elections if a quorum of nodes is already present. EventStore#2386
    • โž• Add server certificate validation when follower forwards requests over leader's external HTTP. EventStore#2408
    • ๐Ÿ›  Fix ArgumentNullException in ByCorrelationId standard projection when the event's metadata is null. EventStore#2430
    • WhatIf option will now terminate the application if set. EventStore#2432
    • ๐Ÿ›ฐ No longer raise an exception when reading a linked event with a bad payload. EventStore#2424
    • In the TCP client, prevent the first operation from taking a huge amount of time in some situation. EventStore#2440
    • Do not wait for acks/nacks after a potential subscription failure. The task might never complete. EventStore#2437
    • Read-only replicas can be stuck in Subscribing to Leader mode EventStore#2427
    • NodePreference.Leader is not always honored in ClusterDnsEndPointDiscoverer EventStore#2422
    • ๐ŸŽ‰ Initialize a Console Logger when the application initializes EventStore#2444
    • Skip emitted events during recovery if their linked event no longer exists. EventStore#2447
    • Overflow bug when setting file size based on number of midpoints EventStore#2450
    • Off by one in GetDepth() which can cause less midpoints to be computed when increasing IndexCacheDepth in some cases EventStore#2450
    • ๐Ÿ— Broken CI Build EventStore#2466
    • 0๏ธโƒฃ the default ArraySegment's data is null, not an empty array. EventStore#2486

    ๐Ÿ› Bug

    • Event Counts in GRPC Transport no longer wrap to negative values if > int.MaxValue EventStore#2452

    โšก๏ธ Updated

    • ๐Ÿ”„ Changed the default schema on the projection and users manager to be https. EventStore#2459