Finbuckle / Finbuckle.MultiTenant

Finbuckle.MultiTenant is an open-source multitenancy middleware library for .NET. It enables tenant resolution, per-tenant app behavior, and per-tenant data isolation.
https://www.finbuckle.com/multitenant
Apache License 2.0
1.33k stars 266 forks source link

Status of Finbuckle.MultiTenant #185

Closed AndrewTriesToCode closed 4 years ago

AndrewTriesToCode commented 5 years ago

Hello everyone and thanks for your kind support.

Last week I released Finbuckle.MultiTenant 4.0.0 in order to support the release of .NET Core 3. I am still updating the samples, but the biggest change was in the RouteStrategy sample, which has been updated.

Originally I had planned to leave support for .NET Core 2 in the 3.x versions, but I changed my mind and am multitargetting all future releases to the Microsoft supported versions of .NET Core.

This means Finbuckle.MultiTenant 4.0.0 supports .NET Core 2.1, 2.2, and 3.0.

I also refactored project/dependency structure to something that makes a little more sense. The Finbuckle.MultiTenant metapackage still pull everything in, but you can also just reference these as needed:

In prior versions the Finbuckle.MultiTenant.Core pulled in all of EFCore even if your app didn't need it.

Going Forward I'm open to all ideas going forward. Here is what I consider important:

Premium support and services Open source will always be the core, but for businesses that need extra functionality or support I plan to offer a few options:

More on this in the future.

If you are interested please let me know.

THANKS!

malisancube commented 5 years ago

I just discovered this. Most definitely, very good work!! I think the priority list is awesome too. Looking forward to being one of the users.

Do you have estimated timelines?

AndrewTriesToCode commented 5 years ago

Hi @malisancube No timeline at the moment. I am currently working to update all the sample projects then after that I will get into the new stuff. I expect to have some of them in the next few weeks. Others like Blazor support are further out. Of course everyone is welcome to submit a PR :)

Is there anything in particular that would like to see sooner rather than later?

unencode commented 5 years ago

Just wanted to say thank you for this library. It's great and looking forward to the improvements and services. The tenant management app sounds interesting as does Blazor support.

malisancube commented 5 years ago

Is there any guidance for APIs?

AndrewTriesToCode commented 5 years ago

@malisancube For the most part things should work the same with APIs as with regular MVC apps, but there are some differences. The multitenant store part should be the same, but the strategy might vary. You can still use routing or host strategies if you don't need each tenant to use the exact same URL for each endpoint. A more advanced approach would be to examine the access token your API receives--if it is JWT then maybe have it include a claim that the app looks for. If it is an opaque access token then there might need to be a lookup to get the info on the token.

In practice I've seen most people using the host-based strategy so each tenant gets tenant.server.com/api/endpoint1 for example.

I plan to eventually have some samples for this.

attiqeurrehman commented 4 years ago

Looking forward to Identity Server support.

AndrewTriesToCode commented 4 years ago

@attiqeurrehman Yes it is tricky--I think all the parts are there but IS4 has so many different use cases and configurations it makes it hard to cover them all.

attiqeurrehman commented 4 years ago

@achandlerwhite we can list out the most common scenario and we can all pinch in with PR's.

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.