-
-
Notifications
You must be signed in to change notification settings - Fork 429
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v4 Roadmap #654
Comments
Samuel - thanks a lot for all the great work you put into this. I completely agree with your priorities. Security, stability and compatibility are for many the most important factors. New features are less important and historically a source to problems with the three mentioned areas. |
Great news, Thank you for providing such a good package.
|
It would be useful if the connection name used in trait TenantConnection is taken from the config
|
@medvinator What benefit would that bring? |
Convenience when working with code. Partners are tenants of the director (implemented by package spatie/laravel-multitenancy). Each partner and client has its own database. public function getConnectionName(): ?string
{
return match (level()->current) {
'director' => 'director',
'partner' => 'partner',
'client' => 'tenant'
};
} As you can see, it would be convenient to name the connection not public function getConnectionName(): ?string
{
return level()->current;
} It would be possible to call the client's level a |
I was wondering a little about about the structure of ....
Events\TenantCreated::class => TenantCreatedPipeline::class,
.... So that ServiceProvider gets less crowded? |
I would love to see an implementation of Postgres Row Level Security. Right now, there is a trade-off with the current options of multi-database vs. single-database tenancy.
Postgres RLS: Best of both worlds without the drawbacks? Since you can already separate the tenants by schema rather than full DB for Postgres, perhaps implementing an RLS version is feasible? It seems like the holy grail of lower ops complexity but not having to worry about so many AWS blog has a great article about RLS and multi-tenancy specifically: |
@jcs224 That's a great suggestion. I'll definitely try to do that in v4! |
Is this getting solved in v4? |
Yes |
@stancl Thanks for the great package. I was hoping V4 would improve performance with testing. |
expecting a dramatic performance boost with Octane supported in V4 |
You shouldn't really. Octane is nice, but I don't think it'd provide a dramatic boost in performance for almost any applications. Proper database performance practices will go a lot longer way. |
One thing I'd be interested in is a way to manage a Tenant's resources within the central application's Nova, especially if they could be included in a similar way to how Nova's relationship fields worked. It would be very nice to be able to see a list of all users configured in the tenant portion, it could be very handy in combination with the User Impersonation feature, as you'd pretty easily be able to create an action to impersonate a user and redirect to the tenant's application. |
Tiny little thing - but it would be nice (for me) to be able to run something like |
@ohnotnow you can always extend the command, no? |
I think putting |
It's more for places you're doing docker/k8s things. You can have a pod that runs your migrations like
so you can only have one 'command' and it doesn't understand shell things like |
@ohnotnow just wrap two commands in one |
Yeah - I know - it was just a tiny little suggestion to save a tiny bit of work (for me) :-) |
.. and file storage is now something that can be build at runtime: |
Cool, we're already doing that using lower level calls but this provides a nice API for that |
Improvement: Tenants table migration have onDelete cascade reference to delete its domains. This is good but you can't use Listeners on DeletingDomain/DomainDeleted events to perform your own actions. The proposal is remove onDelete cascade reference and use TenantDeleted pipeline to perform domains deletion. Apparently it is not necessary to do the same with onUpdate reference, but it might be good to remove all database cascade references and get full control through Events. |
I'm still a novice at Tenancy, but this is what I would like, or what I did not find yet ;)
I know this is probably easily implemented in custom code, but if you're going for a great out-of-the-box experience, these might be nice additions. |
1st one already exists in tenancy config files :), API identification is quite easy, just implement your own token system using the UUID system already built-in setup a middleware that checks the API token exists against the user and against user agents or a fingerprint of the users setup problem solved |
Will v4 support Octane? And if so, will both Swoole and Roadrunner be supported? We're building a new app using Octane at the moment and would love an easy way to add multi tenancy. |
Tenancy and Octane could be a bit complex, but looking at how Octane separates things, it should probably work fine. I'll try to specifically test that, though it probably won't be a guaranteed feature |
As I commented here #802 (comment), I'd really appreciate if someone could test |
3.5.2 released with Laravel 9 support 🚀 |
Any updates in v4? i would like to use this in my future projects.. thank you so much! |
Please prioritise faster test execution, ref #250 |
@binaryfire Do you currently face any issues using Tenancy with Octane? I see you have requested support and wanted to understand if there is anything that is not presently working when using tenancy with Octane? I want to use it as well and would like to know how your experience has been? |
@abishekrsrikaanth Hey there. Haven't started using the package yet so I can't say. We're waiting on v4 before we add multi tenancy to our app. |
🚀 We're starting work on v4 now. If you'd be interested in beta/early access, please email me at [email protected] Right now I'm specifically looking for people who are:
Later on all sponsors will get early access to it, weeks before the main release ❤️ Thanks a lot! |
Full announcement: https://archte.ch/blog/june-2022-update |
Any ETA? |
We're very excited. Can you please tell us an estimated time of arrival? |
What's up with the Octane support? And oh, THANKS for the package and the continuous support. |
Octane support is something we want to look into but it probably won't be an official/guaranteed feature. I don't think Octane has that much benefit in production apps.
It might speed up your application, but the main part that slows down production apps is the network, not the app. The app can take 30ms to compute a response but you'll be dealing with 100ms request latency. |
While I may seem like I am asking for an ETA on V4 (an I maybe kind of am, lol), but we are wanting to start working on an iteration of our existing application which supports MT, and of course would love to be using this package as a number of our team have used it before, so have an aspect of trust with it's capabilities. My issue is timelines and company expectancy. I would love to just hold fire and go at V4 from the off as it would of-course be cleaner, however I also don't want to have a team idling while we wait for the release... hence my following question. Given the ETA could be some time (I'd rather it was and not have you guys overworked and rushing stuff out), then what is the current thought on what the upgrade path will look like from V3 -> V4? As in, would it be viable to start a new project now on V3, and just do the upgrade when V4 lands given it would be a minimal upgrade, or, would we potentially face a 'easier to redo it all' situation when V4 lands due to a more complex upgrade path. Very keen to hear your thoughts on that side of things... or an ETA date of course 😜 Many Thanks |
The upgrade path will definitely be very straightforward, especially with multi-db tenancy |
Thank you very much for clarifying, I will get started and look forward to getting stuck into the package :) |
Hello, I was an early sponsor and also the boilerplate . I'd love to take a look at the early access version if possible. Thanks, Erik |
Any estimated time of arrival, please please please? |
Early access to v4 for sponsors likely within a few weeks |
Hey, it's great to use your code. One small suggestion I have for using this is that when you customize the tenant_id field, it can be placed in the configuration file so that you don't have to worry about it being replaced when the code is updated.
|
Static properties used for configuration are of course equally backwards compatible as normal config keys, so there'd be no difference. But yes, in v4 we moved a bunch of them to the config file. |
Can't wait for the v4.. |
Eagerly Waiting for V4 |
Waiting... |
As mentioned on Discord, early access for sponsors will be opening before the end of this month. |
is octane supported or not? |
Locking this now since v4 early access is open to sponsors. New feature ideas can be submitted as issues or mentioned in #tenancy on Discord. For details about the early access, see #announcements on our Discord: https://archte.ch/discord |
v4 is now mostly finished, we're working on the final major feature now. After that it's just some refactoring, writing new documentation, and working on the new boilerplate. |
Current status: https://flow.archte.ch/tenancy/tenancy-v4-saas-boilerplate-v2 |
Update: Version 4 is now in early access, see the
#announcements
channel on our DiscordHey everyone,
Soon (in a few weeks) I'll start working on the next major version of Tenancy for Laravel.
v3 has worked extremely well, with me writing most of the code in spring 2020 and very few changes being needed for a year. The core is really solid.
That said, there's always room for improvement, which is what version 4 be focused on.
Currently, I have these changes planned:
In short, the major version won't have too many changes, and most will be quality of life improvements.
But those are my plans. If you would like to see any new features or changes, please share them below. I'd love to hear any feature suggestions or other feedback, because I'll be working a lot on the package now, and I'll have a chance to work on features that would normally not be possible to add due to breaking changes.
Thank you!
The text was updated successfully, but these errors were encountered: