Skip to content

Commit afd5da7

Browse files
committed
0.9.11 release
1 parent 8f33623 commit afd5da7

23 files changed

Lines changed: 194 additions & 13 deletions

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
### 0.9.11 — 2026-03-26
2+
- **Breaking:** `IHistoryConfiguration` removed — history decorators and monitors now use `IBaseTransportOptions.EnableHistory` and `IBaseTransportOptions.HistoryOptions` directly.
3+
- **Breaking:** `IHistoryTransportOptions` added to `IBaseTransportOptions` — all transport options classes now expose `HistoryOptions` (RetentionDays, MaxExceptionLength, StoreBody, Track* flags, MonitorTime)
4+
- History query pagination now uses database-level `OFFSET/LIMIT` (PostgreSQL, SQLite) or `OFFSET...FETCH NEXT` (SQL Server) instead of in-memory skip/take
5+
- Redis history queries: unfiltered pages use `SortedSetRangeByRank` server-side pagination; filtered pages use batched scanning
6+
- `IBaseTransportOptions` registered in DI for all 6 transports — decorators inject it directly
7+
- `IDbPaginationSyntax` interface for transport-specific SQL pagination (`LimitOffsetPaginationSyntax`, `FetchNextPaginationSyntax`)
8+
- Fix: history table index names now include queue name (e.g., `IX_{historyTable}_QueueID`) — prevents collision from leftover indexes in PostgreSQL (schema-wide unique) and SQL Server (`DF_` default constraint)
9+
- Redis and Memory transports: persistent history configuration via saved transport options (Redis Configuration key, Memory static DataStorage)
10+
111
### 0.9.10 — 2026-03-20
212
- `EnableHistory` on transport options (SQLite, SQL Server, PostgreSQL, LiteDB) — set during queue creation like other options. Redis and Memory don't need this; they create history storage at runtime when `IHistoryConfiguration.Enabled` is true.
313
- Dashboard API: read-only mode (`DashboardOptions.ReadOnly`) — blocks all write operations with 403

Source/DotNetWorkQueue.Dashboard.Api/DotNetWorkQueue.Dashboard.Api.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFrameworks>net10.0;net8.0</TargetFrameworks>
5-
<Version>0.9.10</Version>
5+
<Version>0.9.11</Version>
66
<Authors>Brian Lehnen</Authors>
77
<Copyright>Copyright © Brian Lehnen 2015-2026</Copyright>
88
<Description>Dashboard API for DotNetWorkQueue - provides REST endpoints for monitoring and managing queues</Description>

Source/DotNetWorkQueue.Dashboard.Client/DotNetWorkQueue.Dashboard.Client.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFrameworks>net10.0;net8.0</TargetFrameworks>
5-
<Version>0.9.10</Version>
5+
<Version>0.9.11</Version>
66
<Authors>Brian Lehnen</Authors>
77
<Copyright>Copyright © Brian Lehnen 2015-2026</Copyright>
88
<Description>Dashboard client for DotNetWorkQueue - provides strongly-typed API wrapper and consumer registration</Description>

Source/DotNetWorkQueue.Dashboard.Ui/DotNetWorkQueue.Dashboard.Ui.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<ImplicitUsings>enable</ImplicitUsings>
77
<IsPackable>true</IsPackable>
88
<BlazorDisableThrowNavigationException>true</BlazorDisableThrowNavigationException>
9-
<Version>0.9.10</Version>
9+
<Version>0.9.11</Version>
1010
<Authors>Brian Lehnen</Authors>
1111
<Copyright>Copyright © Brian Lehnen 2015-2026</Copyright>
1212
<Description>Blazor Server dashboard UI for DotNetWorkQueue - provides a web interface for monitoring and managing queues</Description>

Source/DotNetWorkQueue.Transport.LiteDB/Basic/CommandHandler/CreateQueueTablesAndSaveConfigurationCommandHandler.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ internal class CreateQueueTablesAndSaveConfigurationCommandHandler : ICommandHan
4343
/// <param name="optionsFactory">The options factory.</param>
4444
/// <param name="tableNameHelper">The table name helper.</param>
4545
/// <param name="serializer">The serializer.</param>
46+
/// <param name="connectionInfo">The connection information.</param>
4647
public CreateQueueTablesAndSaveConfigurationCommandHandler(LiteDbConnectionManager connectionInformation,
4748
ILiteDbMessageQueueTransportOptionsFactory optionsFactory,
4849
TableNameHelper tableNameHelper,

Source/DotNetWorkQueue.Transport.LiteDB/DotNetWorkQueue.Transport.LiteDB.xml

Lines changed: 141 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Source/DotNetWorkQueue.Transport.LiteDB/DotNetWorkQueue.Transport.LiteDb.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<AssemblyName>DotNetWorkQueue.Transport.LiteDb</AssemblyName>
66
<Description>LiteDB transport for https://github.com/blehnen/DotNetWorkQueue</Description>
77
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
8-
<Version>0.9.10</Version>
8+
<Version>0.9.11</Version>
99
<Authors>Brian Lehnen</Authors>
1010
<Copyright>Copyright © Brian Lehnen 2015-2026</Copyright>
1111
<PackageLicenseExpression>LGPL-2.1-or-later</PackageLicenseExpression>

Source/DotNetWorkQueue.Transport.Memory/DotNetWorkQueue.Transport.Memory.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<TargetFrameworks>net10.0;net8.0;net48;netstandard2.0;</TargetFrameworks>
55
<Description>Memory transport dashboard support for https://github.com/blehnen/DotNetWorkQueue</Description>
66
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
7-
<Version>0.9.10</Version>
7+
<Version>0.9.11</Version>
88
<Authors>Brian Lehnen</Authors>
99
<Copyright>Copyright © Brian Lehnen 2015-2026</Copyright>
1010
<PackageLicenseExpression>LGPL-2.1-or-later</PackageLicenseExpression>

Source/DotNetWorkQueue.Transport.PostgreSQL/DotNetWorkQueue.Transport.PostgreSQL.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<TargetFrameworks>net10.0;net8.0;net48;netstandard2.0;</TargetFrameworks>
55
<Description>PostgreSQL transport for https://github.com/blehnen/DotNetWorkQueue</Description>
6-
<Version>0.9.10</Version>
6+
<Version>0.9.11</Version>
77
<Authors>Brian Lehnen</Authors>
88
<Copyright>Copyright © Brian Lehnen 2015-2026</Copyright>
99
<PackageLicenseExpression>LGPL-2.1-or-later</PackageLicenseExpression>

Source/DotNetWorkQueue.Transport.Redis/Basic/PurgeMessageHistoryHandler.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
namespace DotNetWorkQueue.Transport.Redis.Basic
2222
{
23+
/// <inheritdoc />
2324
public class PurgeMessageHistoryHandler : IPurgeMessageHistory
2425
{
2526
private readonly IRedisConnection _connection;
@@ -29,13 +30,15 @@ public class PurgeMessageHistoryHandler : IPurgeMessageHistory
2930
private string HistoryHashKey(string queueId) => $"{_redisNames.Values}:history:{queueId}";
3031
private string HistoryIndexKey => $"{_redisNames.Values}:history:index";
3132

33+
/// <inheritdoc />
3234
public PurgeMessageHistoryHandler(IRedisConnection connection, RedisNames redisNames, IBaseTransportOptions options)
3335
{
3436
_connection = connection;
3537
_redisNames = redisNames;
3638
_options = options;
3739
}
3840

41+
/// <inheritdoc />
3942
public long Purge(DateTime olderThan)
4043
{
4144
if (!_options.EnableHistory) return 0;

0 commit comments

Comments
 (0)