diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ccea88c..6ff04c69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,30 @@ +## [7.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.13.1...v7.0.0) (2024-04-21) + + +### ⚠ BREAKING CHANGES + +* Many namespaces have been updated for consistency. Most code will only need to reference the `Finbuckle.MultiTenant` namespace. +* Connection string is removed because in many cases it is not needed. Closes #624 +* all unique indexes and the UserLogin primary key in the standard Identity models are adjusted to include the tenant id +* (I)MultiTenantContext and (I)TenantInfo are no longer available via DI. Use IMultiTenantContextAccessor instead. Also IMultiTenantContext nullability reworked and should never be null. +* WithPerTenantOptions replaced by ConfigurePerTenant service collection extensions methods. + +Added support for `OptionsBuilder` API and more efficient per-tenant options overall. + +### Features + +* better options support ([#681](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/681)) ([1859017](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/185901786f2225eb38b3609770c60b98fdcbc122)) +* change default MultiTenantIdentityDbContext default index and key behavior ([81f5612](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/81f5612008c3335192d9b26beb22be9a28beca8b)) +* MultiTenantDbContext and MultiTenantIdentityDbContext support for IMultiTenantContextAccessor DI ([9015085](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/901508563af4fa872a0dc3930ff3b8315777b912)) +* namespace cleaned up ([b354838](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/b354838a90741626c47ea4f109c49f7fe2ca5b3d)) +* refactor DI and improve nullability ([eca24bf](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/eca24bfa0c314f95794b235141cff42059cf3fcf)) +* remove ConnectionString from ITenantInfo and TenantInfo ([f4e20db](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/f4e20db35fe9e31e1cfb37a667b1ba4b64ce6f3f)) + + +### Bug Fixes + +* AdjustKey correctly adding TenantId to primary and foreign keys ([613b4a8](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/613b4a855e919e02910c42f9f534cddba40339c9)) + ## [6.13.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.13.0...v6.13.1) (2024-01-24) diff --git a/README.md b/README.md index 3dfa6782..1a8c4d4e 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.13.1 +# ![Finbuckle Logo](https://www.finbuckle.com/images/finbuckle-32x32-gh.png) Finbuckle.MultiTenant 7.0.0 ## About Finbuckle.MultiTenant @@ -11,7 +11,7 @@ Current publish feed release: Table of Contents -1. [What's New in Finbuckle.MultiTenant 6.13.1](#whats-new) +1. [What's New in Finbuckle.MultiTenant 7.0.0](#whats-new) 2. [Quick Start](#quick-start) 3. [Documentation](#documentation) 4. [Sample Projects](#sample-projects) @@ -23,15 +23,34 @@ Table of Contents 10. [Building from Source](#building-from-source) 11. [Running Unit Tests](#running-unit-tests) -## What's New in Finbuckle.MultiTenant 6.13.1 +## What's New in Finbuckle.MultiTenant 7.0.0 -### Bug Fixes -* update dependency to protect against - CVE-2024-21319 ([#781](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/781)) ([c5e0c8a](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/c5e0c8a8e3f60033f97993b7feaf4ff87150a0f8)) +### ⚠ BREAKING CHANGES + +* Many namespaces have been updated for consistency. Most code will only need to reference the namespace. +* Connection string is removed because in many cases it is not needed. Closes #624 +* all unique indexes and the UserLogin primary key in the standard Identity models are adjusted to include the tenant id +* (I)MultiTenantContext and (I)TenantInfo are no longer available via DI. Use IMultiTenantContextAccessor instead. Also IMultiTenantContext nullability reworked and should never be null. +* WithPerTenantOptions replaced by ConfigurePerTenant service collection extensions methods. + +Added support for API and more efficient per-tenant options overall. + +### Features + +* better options support ([#681](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/681)) ([1859017](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/185901786f2225eb38b3609770c60b98fdcbc122)) +* change default MultiTenantIdentityDbContext default index and key behavior ([81f5612](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/81f5612008c3335192d9b26beb22be9a28beca8b)) +* MultiTenantDbContext and MultiTenantIdentityDbContext support for IMultiTenantContextAccessor DI ([9015085](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/901508563af4fa872a0dc3930ff3b8315777b912)) +* namespace cleaned up ([b354838](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/b354838a90741626c47ea4f109c49f7fe2ca5b3d)) +* refactor DI and improve nullability ([eca24bf](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/eca24bfa0c314f95794b235141cff42059cf3fcf)) +* remove ConnectionString from ITenantInfo and TenantInfo ([f4e20db](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/f4e20db35fe9e31e1cfb37a667b1ba4b64ce6f3f)) + + +### Bug Fixes +* AdjustKey correctly adding TenantId to primary and foreign keys ([613b4a8](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/613b4a855e919e02910c42f9f534cddba40339c9)) See the [changelog file](CHANGELOG.md) for a full history of changes. diff --git a/docs/History.md b/docs/History.md index 1722d900..559d9f33 100644 --- a/docs/History.md +++ b/docs/History.md @@ -1,6 +1,33 @@ # Version History +## [7.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.13.1...v7.0.0) (2024-04-21) + + +### ⚠ BREAKING CHANGES + +* Many namespaces have been updated for consistency. Most code will only need to reference the `Finbuckle.MultiTenant` namespace. +* Connection string is removed because in many cases it is not needed. Closes #624 +* all unique indexes and the UserLogin primary key in the standard Identity models are adjusted to include the tenant id +* (I)MultiTenantContext and (I)TenantInfo are no longer available via DI. Use IMultiTenantContextAccessor instead. Also IMultiTenantContext nullability reworked and should never be null. +* WithPerTenantOptions replaced by ConfigurePerTenant service collection extensions methods. + +Added support for `OptionsBuilder` API and more efficient per-tenant options overall. + +### Features + +* better options support ([#681](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/681)) ([1859017](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/185901786f2225eb38b3609770c60b98fdcbc122)) +* change default MultiTenantIdentityDbContext default index and key behavior ([81f5612](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/81f5612008c3335192d9b26beb22be9a28beca8b)) +* MultiTenantDbContext and MultiTenantIdentityDbContext support for IMultiTenantContextAccessor DI ([9015085](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/901508563af4fa872a0dc3930ff3b8315777b912)) +* namespace cleaned up ([b354838](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/b354838a90741626c47ea4f109c49f7fe2ca5b3d)) +* refactor DI and improve nullability ([eca24bf](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/eca24bfa0c314f95794b235141cff42059cf3fcf)) +* remove ConnectionString from ITenantInfo and TenantInfo ([f4e20db](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/f4e20db35fe9e31e1cfb37a667b1ba4b64ce6f3f)) + + +### Bug Fixes + +* AdjustKey correctly adding TenantId to primary and foreign keys ([613b4a8](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/613b4a855e919e02910c42f9f534cddba40339c9)) + ## [6.13.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.13.0...v6.13.1) (2024-01-24) @@ -242,7 +269,7 @@ - .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 multi-tenant Entity Framework Core entity. 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. @@ -295,7 +322,7 @@ ### Changes - Added support for ASP.NET Core 3.1. -- Major refactor of how Entity Framework multi-tenant 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 multi-tenant support classes, e.g. `MultiTenantIdentityUser`. Attempted to minimize impact, but if using `IdentityMultiTenantDbContext` **this may be a breaking change!** Thanks ****! +- 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. @@ -314,7 +341,7 @@ - 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 multi-tenant 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. +- 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. @@ -365,7 +392,7 @@ ### Changes -- Fixed bug in Identity where `UserLogins` primary key was not adjusted for multi-tenant usage. +- 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. diff --git a/docs/Index.md b/docs/Index.md index dab64ee5..d7f3368e 100644 --- a/docs/Index.md +++ b/docs/Index.md @@ -1,6 +1,6 @@ [Introduction](Introduction) -[What's New in Finbuckle.MultiTenant 6.13.1](WhatsNew) +[What's New in Finbuckle.MultiTenant 7.0.0](WhatsNew) [Version History](History) diff --git a/docs/Introduction.md b/docs/Introduction.md index f75848b2..299b7954 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.13.1 +# ![Finbuckle Logo](https://www.finbuckle.com/images/finbuckle-32x32-gh.png) Finbuckle.MultiTenant 7.0.0 ## About Finbuckle.MultiTenant diff --git a/docs/WhatsNew.md b/docs/WhatsNew.md index cd62145c..60c15a63 100644 --- a/docs/WhatsNew.md +++ b/docs/WhatsNew.md @@ -1,12 +1,32 @@ -# What's New in Finbuckle.MultiTenant 6.13.1 +# What's New in Finbuckle.MultiTenant 7.0.0 -## [6.13.1](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.13.0...v6.13.1) (2024-01-24) +## [7.0.0](https://github.com/Finbuckle/Finbuckle.MultiTenant/compare/v6.13.1...v7.0.0) (2024-04-21) + + +### ⚠ BREAKING CHANGES + +* Many namespaces have been updated for consistency. Most code will only need to reference the namespace. +* Connection string is removed because in many cases it is not needed. Closes #624 +* all unique indexes and the UserLogin primary key in the standard Identity models are adjusted to include the tenant id +* (I)MultiTenantContext and (I)TenantInfo are no longer available via DI. Use IMultiTenantContextAccessor instead. Also IMultiTenantContext nullability reworked and should never be null. +* WithPerTenantOptions replaced by ConfigurePerTenant service collection extensions methods. + +Added support for API and more efficient per-tenant options overall. + +### Features + +* better options support ([#681](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/681)) ([1859017](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/185901786f2225eb38b3609770c60b98fdcbc122)) +* change default MultiTenantIdentityDbContext default index and key behavior ([81f5612](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/81f5612008c3335192d9b26beb22be9a28beca8b)) +* MultiTenantDbContext and MultiTenantIdentityDbContext support for IMultiTenantContextAccessor DI ([9015085](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/901508563af4fa872a0dc3930ff3b8315777b912)) +* namespace cleaned up ([b354838](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/b354838a90741626c47ea4f109c49f7fe2ca5b3d)) +* refactor DI and improve nullability ([eca24bf](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/eca24bfa0c314f95794b235141cff42059cf3fcf)) +* remove ConnectionString from ITenantInfo and TenantInfo ([f4e20db](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/f4e20db35fe9e31e1cfb37a667b1ba4b64ce6f3f)) ### Bug Fixes -* update dependency to protect against CVE-2024-21319 ([#781](https://github.com/Finbuckle/Finbuckle.MultiTenant/issues/781)) ([c5e0c8a](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/c5e0c8a8e3f60033f97993b7feaf4ff87150a0f8)) +* AdjustKey correctly adding TenantId to primary and foreign keys ([613b4a8](https://github.com/Finbuckle/Finbuckle.MultiTenant/commit/613b4a855e919e02910c42f9f534cddba40339c9)) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 9c2c1375..a38ec55c 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,6 +1,6 @@ - 6.13.1 + 7.0.0 Finbuckle LLC Copyright Finbuckle LLC, Andrew White, and Contributors https://www.finbuckle.com/images/finbuckle-128x128.png