Commit cf1b6c2
committed
chore: 10.0.0 [skip ci]
## [10.0.0](v9.4.2...v10.0.0) (2025-11-20)
### ⚠ BREAKING CHANGES
* In prior versions user provided generic types to the `MultiTenantIdentityDbContext` family of classes were not mult-tenant by default. This was confusing and to simplify all are now multi-tenant by default.
* The `RouteStrategy` will include the tenant in the ambient route values used for link generation, similar to `Controller` and `Action`. Can be disabled via the `WithRouteStrategy` overload taking a boolean for `useTenantAmbientRouteValue` set to false.
* General improvements in folder structure to reduce overnesting has caused namespace changes for certain types. Namely some stores and options types.
* BasePathStrategy default behavior is changed to rebase the aspnetcore path base. This was opt in before. Can be set via `BasePathStrategyOptions`.
* This was opt in before. Can be set via `BasePathStrategyOptions`.
* Namespaces were standardized to match folder locations.
* Making TenantInfo a record reduces risk of unintended changes to the current tenant. This change also removes `ITenantInfo` and `TenantInfo` should be used as the base for custom implementations. Note that `EFCoreStore` uses this record as an entity but takes care not to rely on tracking.
* prior extension namespaces were inconsistent, now they are all `{PackageName}.Extensions`, e.g. `Finbuckle.MultiTenant.Options.Extensions`
* Per-tenant options support was previously part of the Finbuckle.MultiTenant package. Projects will need to reference the Finbuckle.MultiTenant.Options package going forward.
* Minor changes to the `IMultiTenantStore` interface signatures.
* Removes the 64 character limit on Tenant ID. This also removes the max length constraint where Tenant ID is used in EF Core if applicable.
* `IMultiTenantContext` and its implementations are now immutable. Changes will require assigning a new instance.
* Prior to this change anonymous filters were used and required special consideration in advanced scenarios. The change to named filters removes these considerations, but named filters cannot be mixed with anonymous filters.
* net8 and net9 targets were removed
* This change better isolates dependencies. Basic interfaces and types are now in the `Finbuckle.MultiTenant.Abstractions` package and `MultiTenantIdentityDbContext` functionality is now in the `Finbuckle.MultiTenant.Identity.EntityFrameworkCore` package.
### Features
* add `IsNotMultiTenant` method to exclude entities from multi-tenancy in EF Core per-tenant data functionality. ([b160826](b160826))
* add Identity passkey multi-tenant support ([7f0bf73](7f0bf73))
* add MultiTenantAmbientValueLinkGenerator to promote tenant route values ([#1041](#1041)) ([259511c](259511c))
* all projects target net10 ([#1007](#1007)) ([1f02e8f](1f02e8f))
* BasePathStrategy will rebase the aspnetcore path base by default ([bd7f0d0](bd7f0d0))
* BasePathStrategy will rebase the aspnetcore path base by default ([d107d81](d107d81))
* expose many internal types as public and adjust namespaces ([#1030](#1030)) ([f680843](f680843))
* Identity entity types are all multi-tenant by default on `MultiTenantIdentityDbContext` variants. ([4e1bd9f](4e1bd9f))
* immutable IMultiTenantContext ([#1018](#1018)) ([03ddeb0](03ddeb0))
* improve folder structure ([#1040](#1040)) ([d46ce8c](d46ce8c))
* improved depedency structure with `Finbuckle.MultiTenant.Abstractions` and `Finbuckle.MultiTenant.Identity.EntityFrameworkCore` ([#1006](#1006)) ([e191d83](e191d83))
* improved store interface ([#1020](#1020)) ([c6a16c4](c6a16c4))
* improved xml comments ([#1038](#1038)) ([fdd59b9](fdd59b9))
* improved xml comments ([#1038](#1038)) ([8ee6597](8ee6597))
* namespaces for extension methods changed ([#1026](#1026)) ([318fcec](318fcec))
* refactors per-tenant options into Finbuckle.MultiTenant.Options package ([#1024](#1024)) ([ca4877f](ca4877f))
* removed max char length on TenantInfo ([#1019](#1019)) ([37bb15b](37bb15b))
* TenantInfo is now a record and `ITenantInfo` is removed ([#1029](#1029)) ([21559da](21559da))
* use named global query filters in EF Core ([#1016](#1016)) ([c3ac833](c3ac833))
### Bug Fixes
* update dependencies ([#1023](#1023)) ([69ac561](69ac561))
* update dependencies ([#1027](#1027)) ([b185944](b185944))
* update dependencies ([#1037](#1037)) ([b168900](b168900))
### Performance Improvements
* new Lock use ([#1022](#1022)) ([55bde60](55bde60))
### Reverts
* Revert "feat: BasePathStrategy will rebase the aspnetcore path base by default" ([0a154e1](0a154e1))
* Revert "feat: improved xml comments ([#1038](#1038))" ([#1039](#1039)) ([b036339](b036339))
* Revert "feat: refactors per-tenant options into Finbuckle.MultiTenant.Options package ([#1024](#1024))" ([0db79eb](0db79eb))1 parent 5988a14 commit cf1b6c2
File tree
7 files changed
+236
-16
lines changed- docs
- src
7 files changed
+236
-16
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
1 | 59 | | |
2 | 60 | | |
3 | 61 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
41 | 81 | | |
42 | 82 | | |
43 | | - | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
44 | 96 | | |
45 | 97 | | |
46 | 98 | | |
| |||
0 commit comments