From ff7b5ea9ed11c206d9cd859dd08f23f4129f0351 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Fri, 25 Aug 2023 03:09:16 +0000 Subject: [PATCH] chore: 6.12.0 [skip ci] ## [6.12.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.11.1...v6.12.0) (2023-08-25) ### Features * AdjustIndex preserves existing filter ([#711](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/711)) ([affb66f](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/affb66f268a133916c17c7797138cd16dc67e728)) * net8.0 ([#712](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/712)) ([a137dae](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a137dae907b2f9b465bee735e9e9eddec64bddf5)) --- CHANGELOG.md | 10 +- README.md | 11 +- docs/History.md | 408 ++++++++++++++++++++++---------------- docs/Index.md | 2 +- docs/Introduction.md | 2 +- docs/WhatsNew.md | 9 +- src/Directory.Build.props | 2 +- 7 files changed, 265 insertions(+), 179 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 444ef43d..a5f0746b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## [6.12.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.11.1...v6.12.0) (2023-08-25) + + +### Features + +* AdjustIndex preserves existing filter ([#711](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/711)) ([affb66f](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/affb66f268a133916c17c7797138cd16dc67e728)) +* net8.0 ([#712](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/712)) ([a137dae](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a137dae907b2f9b465bee735e9e9eddec64bddf5)) + ## [6.11.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.11.0...v6.11.1) (2023-07-06) @@ -410,4 +418,4 @@ ### Changes -- Initial release \ No newline at end of file +- Initial release diff --git a/README.md b/README.md index 2a8ca852..a1f0344c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ![Finbuckle Logo](https://www.finbuckle.com/images/finbuckle-32x32-gh.png) Finbuckle.MultiTenant 6.11.1 +# ![Finbuckle Logo](https://www.finbuckle.com/images/finbuckle-32x32-gh.png) Finbuckle.MultiTenant 6.12.0 ## About Finbuckle.MultiTenant @@ -11,7 +11,7 @@ Current publish feed release: Table of Contents -1. [What's New in Finbuckle.MultiTenant 6.11.1](#whats-new) +1. [What's New in Finbuckle.MultiTenant 6.12.0](#whats-new) 2. [Quick Start](#quick-start) 3. [Documentation](#documentation) 4. [Sample Projects](#sample-projects) @@ -23,14 +23,15 @@ Table of Contents 10. [Building from Source](#building-from-source) 11. [Running Unit Tests](#running-unit-tests) -## What's New in Finbuckle.MultiTenant 6.11.1 +## What's New in Finbuckle.MultiTenant 6.12.0 -### Bug Fixes +### Features -* make DecorateService public ([#671](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/671)) ([c9746d6](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/c9746d6655f2fa0130031885ebf9b4980a93c531)), closes [#668](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/668) +* AdjustIndex preserves existing filter ([#711](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/711)) ([affb66f](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/affb66f268a133916c17c7797138cd16dc67e728)) +* net8.0 ([#712](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/712)) ([a137dae](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a137dae907b2f9b465bee735e9e9eddec64bddf5)) See the [changelog file](CHANGELOG.md) for a full history of changes. diff --git a/docs/History.md b/docs/History.md index ffedb382..ff540f14 100644 --- a/docs/History.md +++ b/docs/History.md @@ -1,6 +1,14 @@ # Version History +## [6.12.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.11.1...v6.12.0) (2023-08-25) + + +### Features + +* AdjustIndex preserves existing filter ([#711](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/711)) ([affb66f](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/affb66f268a133916c17c7797138cd16dc67e728)) +* net8.0 ([#712](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/712)) ([a137dae](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a137dae907b2f9b465bee735e9e9eddec64bddf5)) + ## [6.11.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.11.0...v6.11.1) (2023-07-06) @@ -180,170 +188,238 @@ * revert some platform targets to netstandard ([#469](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/469)) ([aceff1d](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/aceff1d73540b22ef64c6cec0fd50e43eff5387b)) -**6.3.0** -* Removed support for .NET Core 2.1 which ended Microsoft support in August 2020. -* Retargeted specifically to .netcoreapp3.1 and .net5.0 across all packages. -* Added `AdjustKey`, `AdjustIndex`, `AdjustAlIndexes`, `AdjustUniqueIndexes` methods to be chained off `IsMultiTenant` in EFCore functionality. They add the implicit `TenantId` to the respective key/indexes. -* Reverted generic version of `IsMultiTenant` back to non-generic version for more flexibility. -* Improved tenant resolution logging functionality and performance. Thanks to ****! -* Fixed a bug with `InMemoryStore` implementation of `TryUpdate`. Thanks to ****! -* Fixed a bug where `ConfigurationStore` would throw an exception if there was no default section in the config. -* Fixed a bug where ASP.NET Core Identity security stamp validation would force user logout and raise exceptions. Thanks to **** for finding the root cause of this bug. -* Fixed a bug where `MultiTenantOptionsManager` was internal instead of public. -* Fixed problematic references in sample projects. -* Updated and improved documentation. -* Updated and improved tests. -* Added various project files for .NET Foundation on-boarding. - -**6.2.0** -* Added a new events system. See PR #359 Thanks to ****! -* Some internal refactoring. -* Various documentation fixes. -* Added sourcelink to allow debugging into remote source code. -* Added a security policy. - -**6.1.0** -* .NET 5.0 support. -* New `DistributedCacheStore` uses the ASP.NET Core distributed cache for tenant resolution. -* New `HeaderStrategy` uses HTTP headers for tenant resolution. Thanks to ****! -* Support for inheritance in multitenant Entity Framework Core entity. Thanks to ****! -* Fixed a conflict between ClaimStrategy and per-tenant authentication. -* Updated docs, samples, and unit tests. - -**6.0.0** -* Customizable `TenantInfo`. Implement `ITenantInfo` as needed or use the basic `TenantInfo` implementation. Should work with most strategies and stores. This was a major overhaul to the library. See docs for more information. -* Changed NuGet structure: use `Finbuckle.MultiTenant.AspNetCore` for web apps and if needed add `Finbuckle.MultiTenant.EntityFrameworkCore`. -* `WithPerTenantAuthentication` - Adds support for common per-tenant authentication scenarios. See docs for full details. -* Multiple strategies and stores can be registe red. They will run in the order registered and the first tenant returned by a strategy/store combination is used. -* New `ClaimStrategy` checks for a tenant claim to resolve the tenant. -* New `SessionStrategy` uses a session variable to resolve the tenant. -* Refactored `InMemoryStore`, removed deprecated configuration functionality. -* Improved Blazor support. -* Improved support for non ASP.NET Core use cases. -* Removed support for ASP.NET 3.0. -* Removed `FallbackStrategy`, `StaticStrategy` is a better alternative. -* Bug fixes, refactors, and tweaks. -* Improved unit tests. -* Updated and improved documentation. -* Updated sample. Removed some older ASP.NET Core 2.1 samples. - -**5.0.4** -* Fixed a conflicting assembly and NuGet versions. -* Minor documentation fix. - -**5.0.3** -* Fixed a bug where documented static methods were internal rather than public. -* Minor documentation fix. - -**5.0.1** -* Updated for [.NET Core January 2020 Updates](https://devblogs.microsoft.com/dotnet/net-core-january-2020/) adding support for .NET Core 2.1.15, 3.0.2, and 3.1.1. -* Updated dependencies as recommended in security notices for [.NET Core January 2020 Updates](https://devblogs.microsoft.com/dotnet/net-core-january-2020/). -* *Finbuckle.MultiTenant.AspNetCore* targets `netcoreapp3.1`, `netcoreapp3.0`, and `netcoreapp2.1`. -* *Finbuckle.MultiTenant.Core* targets `netstandard2.1` and `netstandard2.0`. -* *Finbuckle.MultiTenant.EntityFrameworkCore* targets `netstandard2.1` and `netstandard2.0`. - -**5.0.0** -* Added support for ASP.NET Core 3.1. -* Major refactor of how Entity Framework multitenant data isolation works. No longer need to derive from `MultiTenantDbContext` greatly improving flexibility. `IdentityMultiTenantDbContext` reworked under this new model and no longer requires or recommends use of multitenant support classes, e.g. `MultiTenantIdentityUser`. Attempted to minimize impact, but if using `IdentityMultiTenantDbContext` **this may be a breaking change!** Thanks ****! -* Simplified `EFCoreStore` to use `TenantInfo` directly. **This is a breaking change!** -* Fixed a bug with user id not being set correctly in legacy 'IdentityMultiTenantDbContext'. -* Added `ConfigurationStore` to load tenant information from app configuration. The store is read-only in code, but changes in configuration (e.g. appsettings.json) are picked up at runtime. Updated most sample projects to use this store. -* Deprecated `InMemoryStore` functionality that reads from configuration. -* Added `HttpRemoteStore` which will make an http request to get a `TenantInfo` object. It can be extended with `DelegatingHandler`s (i.e. to add authentication headers). Added sample projects for this store. Thanks to ****! -* Fixed an exception with OpenIdConnect remote authentication if "state" is not returned from the identity provider. The new behavior will result in no tenant found for the request. -* Updated samples. -* Updated documentation. -* Updated unit tests. - -**4.0.0** -* Added support for ASP.NET Core 3! Valid project targets are `netcoreapp3.0`, `netcoreapp2.0`, and `netcoreapp2.1`. -* Added a sample app for ASP.NET 3 highlighting the route strategy improvements due to the endpoint routing mechanism. -* Fixed a bug where route strategy could throw an exception when used with Razor Pages. Thanks -services! -* Support for configuring multiple multitenant strategies. Each will be tried in the order configured until a non-null tenant identifier is returned. The exception is the fallback strategy which always goes last. -* Refactored component assemblies for better dependency control. EFCore can be excluded by referencing `Finbuckle.MultiTenant.AspNetCore` instead of `Finbuckle.MultiTenant`. -* Updated documentation. -* Updated unit tests to check against all valid project targets. -* Symbols package included for debugging. - -**3.2.0** -* Added support for any preexisting global query filters in `MultiTenantDbContext` and `MultiTenantIdentityDbContext`. Thanks ! -* Exposed the inner stores and strategies as a property on the respective `StoreInfo` and `StrategyInfo` properties of `MultiTenantContext`. Previously you could only access the wrapper object for each. Thanks ! -* Fixed certain methods on `MultiTenantOptionsCache` to be external as originally intended. Thanks ! -* Fix a bug with `TryUpdateAsync` in the wrapper store. Thanks ! -* Updated documentation and fixed typos. Thanks ! - -**3.1.0** -* Added a strategy wrapper that handles validation and logging for the active strategy. When implementing `IMultiTenantStrategy` basic validation and logging are automatically provided. -* Added the delegate strategy that accepts a lambda to return the tenant identifier. Configure by calling `WithDelegateStrategy(...)`. -* Added the fallback strategy that provides a tenant identifier if the normal strategy (or remote authentication, if applicable) fails to resolve a tenant. Configure by calling `WithFallbackStrategy(...)`. -* Added `TrySetTenantInfo` as an extension method to `HttpContext`. This will set the `TenantInfo` provided as the current tenant for the request and can optionally reset the service providers so that scoped services are regenerated under the new tenant. -* Updated and improved documentation and sample projects. -* Miscellaneous bug fixes, code improvement, and unit tests. -* Thanks to for contributing to this release. - -**3.0.1** -* Refactored the global query filter used in `MultiTenantDbContext` and `MultiTenantIdentityDbContext` (Thanks !) for better performance and code quality. -* Removed custom `IModelCacheKeyFactory` as it is no longer needed due to the global query filter changes. -* Updated documentation and samples. - -**3.0.0** -* Allow resetting option cache per-tenant. This is a breaking change. -* Host strategy can match entire domain as a special case (prior it only matched a single host segment). -* Added a sample project demonstrating a common login page shared by all tenants. -* Overhauled documentation. -* Updated unit and integration tests. - -**2.0.2** -* Fixed bug in Identity where `UserLogins` primary key was not adjusted for multitenant usage. -* Updated and Fixed the IdentityDataIsolation sample project. -* General code and test cleanup. - -**2.0.1** -* Fixed bug where the `TenantInfo` constructor did not save the passed `Items` collection. -* Tested for compatibility with ASP.NET Core 2.2. -* Updated samples for ASP.NET Core 2.2. -* Cleaned up library dependencies to target ASP.NET Core 2.1 or greater. - -**2.0.0 General Changes** -* Changed `TenantContext` to `MultiTenantContext` which includes `TenantInfo`, `StrategyInfo`, and `StoreInfo` properties. -* Namespace changes (e.g. use of `Microsoft.Extensions.DependencyInjection` namespace for `Configure` and `ConfigureServices` methods). -* Additional and improved unit tests. -* Updated sample project dependencies. -* Various other internal improvements to code and bug fixes. - -**2.0.0 MultiTenant Store Enhancements** -* `TryUpdate` method added to `IMultiTenantStore` interface. -* Added `EFCoreStore` which allows an Entity Framework Core database context as the tenant store. -* Added sample project demonstrating use of `EFCoreStore`. -* Custom can be configured with custom dependency injection lifetime (single, scoped, or transient) via `WithStore` method overloads. -* Custom stores automatically receive logging and error support via internal use of `MultiTenantStoreWrapper`. - -**2.0.0 MultiTenant Strategy Enhancements** -* Use of async/await for strategy execution for improved performance. -* Custom strategies can be configured with custom dependency injection lifetime (single, scoped, or transient) via `WithStrategy` method overloads. -* Moved route configuration for RouteStrategy from `UseMultiTenant` to `WithRouteStrategy`. - -**1.2.0** -* Added variants of `MultiTenantIdentityDbContext` which allows more flexible integration with Identity (Thanks !) -* Added sample project for data isolation with Identity -* Minor refactoring and more unit tests -* Various bug fixes - -**1.1.1** -* Fixed bug affecting per-tenant data isolation using a shared database -* Added sample project for data isolation -* Added new constructors for `MultiTenantDbContext` and `MultiTenantIdentityDbContext` - -**1.1.0** -* Remote authentication support -* Strategy improvements -* Store improvements -* Per-tenant options improvements -* Logging support -* Updated samples -* Improved unit and integration tests -* Switch to Apache 2.0 license - -**1.0.0** -* Initial release +## [6.3.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.3.0...v6.2.0) (2021-09-06) + +### Changes + +- Removed support for .NET Core 2.1 which ended Microsoft support in August 2020. +- Retargeted specifically to .netcoreapp3.1 and .net5.0 across all packages. +- Added `AdjustKey`, `AdjustIndex`, `AdjustAlIndexes`, `AdjustUniqueIndexes` methods to be chained off `IsMultiTenant` in EFCore functionality. They add the implicit `TenantId` to the respective key/indexes. +- Reverted generic version of `IsMultiTenant` back to non-generic version for more flexibility. +- Improved tenant resolution logging functionality and performance. Thanks to ****! +- Fixed a bug with `InMemoryStore` implementation of `TryUpdate`. Thanks to ****! +- Fixed a bug where `ConfigurationStore` would throw an exception if there was no default section in the config. +- Fixed a bug where ASP.NET Core Identity security stamp validation would force user logout and raise exceptions. Thanks to **** for finding the root cause of this bug. +- Fixed a bug where `MultiTenantOptionsManager` was internal instead of public. +- Fixed problematic references in sample projects. +- Updated and improved documentation. +- Updated and improved tests. +- Added various project files for .NET Foundation on-boarding. + +## [6.2.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.2.0...v6.1.0) (2021-02-16) + +### Changes + +- Added a new events system. See PR #359 Thanks to ****! +- Some internal refactoring. +- Various documentation fixes. +- Added sourcelink to allow debugging into remote source code. +- Added a security policy. + +## [6.1.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.1.0...v6.0.0) (2020-11-10) + +### Changes + +- .NET 5.0 support. +- New `DistributedCacheStore` uses the ASP.NET Core distributed cache for tenant resolution. +- New `HeaderStrategy` uses HTTP headers for tenant resolution. Thanks to ****! +- Support for inheritance in multitenant Entity Framework Core entity. Thanks to ****! +- Fixed a conflict between ClaimStrategy and per-tenant authentication. +- Updated docs, samples, and unit tests. + +## [6.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.0.0...v5.0.4) (2020-09-08) + +### Changes + +- Customizable `TenantInfo`. Implement `ITenantInfo` as needed or use the basic `TenantInfo` implementation. Should work with most strategies and stores. This was a major overhaul to the library. See docs for more information. +- Changed NuGet structure: use `Finbuckle.MultiTenant.AspNetCore` for web apps and if needed add `Finbuckle.MultiTenant.EntityFrameworkCore`. +- `WithPerTenantAuthentication` - Adds support for common per-tenant authentication scenarios. See docs for full details. +- Multiple strategies and stores can be registered. They will run in the order registered and the first tenant returned by a strategy/store combination is used. +- New `ClaimStrategy` checks for a tenant claim to resolve the tenant. +- New `SessionStrategy` uses a session variable to resolve the tenant. +- Refactored `InMemoryStore`, removed deprecated configuration functionality. +- Improved Blazor support. +- Improved support for non ASP.NET Core use cases. +- Removed support for ASP.NET 3.0. +- Removed `FallbackStrategy`, `StaticStrategy` is a better alternative. +- Bug fixes, refactors, and tweaks. +- Improved unit tests. +- Updated and improved documentation. +- Updated sample. Removed some older ASP.NET Core 2.1 samples. + +## [5.0.4](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v5.0.4...v5.0.3) (2020-02-12) + +### Changes + +- Fixed a conflicting assembly and NuGet versions. +- Minor documentation fix. + +## [5.0.3](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v5.0.3...v5.0.1) (2020-01-21) + +### Changes + +- Fixed a bug where documented static methods were internal rather than public. +- Minor documentation fix. + +## [5.0.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v5.0.1...v5.0.0) (2020-01-15) + +### Changes + +- Updated for [.NET Core January 2020 Updates](https://devblogs.microsoft.com/dotnet/net-core-january-2020/) adding support for .NET Core 2.1.15, 3.0.2, and 3.1.1. +- Updated dependencies as recommended in security notices for [.NET Core January 2020 Updates](https://devblogs.microsoft.com/dotnet/net-core-january-2020/). +- *Finbuckle.MultiTenant.AspNetCore* targets `netcoreapp3.1`, `netcoreapp3.0`, and `netcoreapp2.1`. +- *Finbuckle.MultiTenant.Core* targets `netstandard2.1` and `netstandard2.0`. +- *Finbuckle.MultiTenant.EntityFrameworkCore* targets `netstandard2.1` and `netstandard2.0`. + +## [5.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v5.0.0...v4.0.0) (2020-01-12) + +### Changes + +- Added support for ASP.NET Core 3.1. +- Major refactor of how Entity Framework multitenant data isolation works. No longer need to derive from `MultiTenantDbContext` greatly improving flexibility. `IdentityMultiTenantDbContext` reworked under this new model and no longer requires or recommends use of multitenant support classes, e.g. `MultiTenantIdentityUser`. Attempted to minimize impact, but if using `IdentityMultiTenantDbContext` **this may be a breaking change!** Thanks ****! +- Simplified `EFCoreStore` to use `TenantInfo` directly. **This is a breaking change!** +- Fixed a bug with user id not being set correctly in legacy 'IdentityMultiTenantDbContext'. +- Added `ConfigurationStore` to load tenant information from app configuration. The store is read-only in code, but changes in configuration (e.g. appsettings.json) are picked up at runtime. Updated most sample projects to use this store. +- Deprecated `InMemoryStore` functionality that reads from configuration. +- Added `HttpRemoteStore` which will make an http request to get a `TenantInfo` object. It can be extended with `DelegatingHandler`s (i.e. to add authentication headers). Added sample projects for this store. Thanks to ****! +- Fixed an exception with OpenIdConnect remote authentication if "state" is not returned from the identity provider. The new behavior will result in no tenant found for the request. +- Updated samples. +- Updated documentation. +- Updated unit tests to check against all valid project targets. +- Symbols package included for debugging. + +## [4.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v4.0.0...v3.2.0) (2019-09-24) + +### Changes + +- Added support for ASP.NET Core 3! Valid project targets are `netcoreapp3.0`, `netcoreapp2.0`, and `netcoreapp2.1`. +- Added a sample app for ASP.NET 3 highlighting the route strategy improvements due to the endpoint routing mechanism. +- Fixed a bug where route strategy could throw an exception when used with Razor Pages. Thanks -services! +- Support for configuring multiple multitenant strategies. Each will be tried in the order configured until a non-null tenant identifier is returned. The exception is the fallback strategy which always goes last. +- Refactored component assemblies for better dependency control. EFCore can be excluded by referencing `Finbuckle.MultiTenant.AspNetCore` instead of `Finbuckle.MultiTenant`. +- Updated documentation. +- Updated unit tests to check against all valid project targets. +- Symbols package included for debugging. + +## [3.2.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v3.2.0...v3.1.0) (2019-09-08) + +### Changes + +- Added support for any preexisting global query filters in `MultiTenantDbContext` and `MultiTenantIdentityDbContext`. Thanks ! +- Exposed the inner stores and strategies as a property on the respective `StoreInfo` and `StrategyInfo` properties of `MultiTenantContext`. Previously you could only access the wrapper object for each. Thanks ! +- Fixed certain methods on `MultiTenantOptionsCache` to be external as originally intended. Thanks ! +- Fix a bug with `TryUpdateAsync` in the wrapper store. Thanks ! +- Updated documentation and fixed typos. Thanks ! + +## [3.1.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v3.1.0...v3.0.1) (2019-06-09) + +### Changes + +- Added a strategy wrapper that handles validation and logging for the active strategy. When implementing `IMultiTenantStrategy` basic validation and logging are automatically provided. +- Added the delegate strategy that accepts a lambda to return the tenant identifier. Configure by calling `WithDelegateStrategy(...)`. +- Added the fallback strategy that provides a tenant identifier if the normal strategy (or remote authentication, if applicable) fails to resolve a tenant. Configure by calling `WithFallbackStrategy(...)`. +- Added `TrySetTenantInfo` as an extension method to `HttpContext`. This will set the `TenantInfo` provided as the current tenant for the request and can optionally reset the service providers so that scoped services are regenerated under the new tenant. +- Updated and improved documentation and sample projects. +- Miscellaneous bug fixes, code improvement, and unit tests. +- Thanks to for contributing to this release. + +## [3.0.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v3.0.1...v3.0.0) (2019-05-05) + +### Changes + +- Refactored the global query filter used in `MultiTenantDbContext` and `MultiTenantIdentityDbContext` (Thanks !) for better performance and code quality. +- Removed custom `IModelCacheKeyFactory` as it is no longer needed due to the global query filter changes. +- Updated documentation and samples. + +## [3.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v3.0.0...v2.0.2) (2019-04-01) + +### Changes + +- Allow resetting option cache per-tenant. This is a breaking change. +- Host strategy can match entire domain as a special case (prior it only matched a single host segment). +- Added a sample project demonstrating a common login page shared by all tenants. +- Overhauled documentation. +- Updated unit and integration tests. +- Switch to Apache 2.0 license. + +## [2.0.2](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v2.0.2...v2.0.1) (2019-02-05) + +### Changes + +- Fixed bug in Identity where `UserLogins` primary key was not adjusted for multitenant usage. +- Updated and Fixed the IdentityDataIsolation sample project. +- General code and test cleanup. + +## [2.0.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v2.0.1...v2.0.0) (2019-01-07) + +### Changes + +- Fixed bug where the `TenantInfo` constructor did not save the passed `Items` collection. +- Tested for compatibility with ASP.NET Core 2.2. +- Updated samples for ASP.NET Core 2.2. +- Cleaned up library dependencies to target ASP.NET Core 2.1 or greater. + +## [2.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v2.0.0...v1.2.0) (2018-12-03) + +### Changes + +- Changed `TenantContext` to `MultiTenantContext` which includes `TenantInfo`, `StrategyInfo`, and `StoreInfo` properties. +- Namespace changes (e.g. use of `Microsoft.Extensions.DependencyInjection` namespace for `Configure` and `ConfigureServices` methods). +- Additional and improved unit tests. +- Updated sample project dependencies. +- Various other internal improvements to code and bug fixes. + +## [2.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v2.0.0...v1.2.0) MultiTenant Store Enhancements (2018-12-03) + +### Changes + +- `TryUpdate` method added to `IMultiTenantStore` interface. +- Added `EFCoreStore` which allows an Entity Framework Core database context as the tenant store. +- Added sample project demonstrating use of `EFCoreStore`. +- Custom can be configured with custom dependency injection lifetime (single, scoped, or transient) via `WithStore` method overloads. +- Custom stores automatically receive logging and error support via internal use of `MultiTenantStoreWrapper`. + +## [2.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v2.0.0...v1.2.0) MultiTenant Strategy Enhancements (2018-12-03) + +### Changes + +- Use of async/await for strategy execution for improved performance. +- Custom strategies can be configured with custom dependency injection lifetime (single, scoped, or transient) via `WithStrategy` method overloads. +- Moved route configuration for RouteStrategy from `UseMultiTenant` to `WithRouteStrategy`. + +## [1.2.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v1.2.0...v1.1.1) (2018-07-22) + +### Changes + +- Added variants of `MultiTenantIdentityDbContext` which allows more flexible integration with Identity (Thanks !) +- Added sample project for data isolation with Identity +- Minor refactoring and more unit tests +- Various bug fixes + +## [1.1.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v1.1.1...v1.1.0) (2018-05-22) + +### Changes + +- Fixed bug affecting per-tenant data isolation using a shared database +- Added sample project for data isolation +- Added new constructors for `MultiTenantDbContext` and `MultiTenantIdentityDbContext` + +## [1.1.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v1.1.0...v1.0.0) (2018-04-22) + +### Changes + +- Remote authentication support +- Strategy improvements +- Store improvements +- Per-tenant options improvements +- Logging support +- Updated samples +- Improved unit and integration tests +- Switch to Apache 2.0 license + +## [1.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v1.0.0...v0.0.0) (2018-01-01) + +### Changes + +- Initial release \ No newline at end of file diff --git a/docs/Index.md b/docs/Index.md index 618a713b..f79e5519 100644 --- a/docs/Index.md +++ b/docs/Index.md @@ -1,6 +1,6 @@ [Introduction](Introduction) -[What's New in Finbuckle.MultiTenant 6.11.1](WhatsNew) +[What's New in Finbuckle.MultiTenant 6.12.0](WhatsNew) [Version History](History) diff --git a/docs/Introduction.md b/docs/Introduction.md index f8821806..a46722ab 100644 --- a/docs/Introduction.md +++ b/docs/Introduction.md @@ -1,4 +1,4 @@ -# ![Finbuckle Logo](https://www.finbuckle.com/images/finbuckle-32x32-gh.png) Finbuckle.MultiTenant 6.11.1 +# ![Finbuckle Logo](https://www.finbuckle.com/images/finbuckle-32x32-gh.png) Finbuckle.MultiTenant 6.12.0 ## About Finbuckle.MultiTenant diff --git a/docs/WhatsNew.md b/docs/WhatsNew.md index 91242bb3..4ce4cf1e 100644 --- a/docs/WhatsNew.md +++ b/docs/WhatsNew.md @@ -1,12 +1,13 @@ -# What's New in Finbuckle.MultiTenant 6.11.1 +# What's New in Finbuckle.MultiTenant 6.12.0 -## [6.11.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.11.0...v6.11.1) (2023-07-06) +## [6.12.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.11.1...v6.12.0) (2023-08-25) -### Bug Fixes +### Features -* make DecorateService public ([#671](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/671)) ([c9746d6](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/c9746d6655f2fa0130031885ebf9b4980a93c531)), closes [#668](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/668) +* AdjustIndex preserves existing filter ([#711](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/711)) ([affb66f](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/affb66f268a133916c17c7797138cd16dc67e728)) +* net8.0 ([#712](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/712)) ([a137dae](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/a137dae907b2f9b465bee735e9e9eddec64bddf5)) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index fc580804..274b2b86 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,6 +1,6 @@ - 6.11.1 + 6.12.0 Finbuckle LLC Copyright Finbuckle LLC, Andrew White, and Contributors https://www.finbuckle.com/images/finbuckle-128x128.png