Duplicating Environment and App For Beta Testing

I have built a multi-page app that uses a database, vector store and workflows. the app has been setup so that each user has their own environment (app, database, workflows, etc.) I am on a Team plan. Is is possible to set up multiple accounts for beta testers and easily copy my current environment (queries, database tables, vector store, workflows, etc.) over to each environment or do I have to rebuild each environment by hand?

Hi @neilbalthaser,

So Retool has an Environments API and you arguably create an app/workflow that runs a series of requests for this.

However... I just tried creating an API key for myself and I think this endpoint is gated for Enterprise customers (was not able to find this info in the docs). So I think you won't be able to automate this, unfofrtunately.

I think you should be able to manage this via Permissions by only allowing Beta testers to access a particular environment.... have you tried that?

Hi, Scott. It looks like the database supports different environments which goes a long way for me. do you know if the file storage and vector stores also support environments? I just looked at staging and production and it looks like the vector store still has access to the production environment stores.

Miguel, thank you for trying this. It looks like my queries and workflows are accessible from both the staging and production environments and I would imagine if I had a business account across all environments. this saves me a lot of time. the database schema can be migrated and for any tables where I need records it looks like I can import those. looks like the vector store however is shared across environments?

It is gated for Enterprise users. I'm wondering if one could use the Retool CLI and automate scripts?

Welcome to the community, @neilbalthaser! Thanks for reaching out. :slightly_smiling_face:

Can you quickly explain what you mean by "environment" when you say that each user has their own? Within Retool, we typically use that terminology just to describe resource configurations. At the Team level, in particular, each resource can have production and staging configurations.

With a better understanding of what you're trying to accomplish, I think I'll be able to help you out much quicker!

Ideally I wanted every user to have their own stack so to speak: database, storage, workflows and I was looking for an easy way to just copy a setup (all the database tables, environmental variables, queries, workflows, vector stores, etc.) so that I could clone a complete "environment" or rather I guess an organization in retool? does that make sense? otherwise I have to have a single database as a shared resource which I could do but it would be ideal if each of my clients had their own database and storage for privacy reasons. maybe I'm trying to use Retool for something that it is not intended for. Happy to share more about my application if that helps.

It probably would help to hear more context, @neilbalthaser! There are quite a few users in the community that build and host tooling for their clients from within the same organization, which sounds similar to what you want to do. They would likely be able to provide some advice. :+1: I'll ping @MiguelOrtiz to see if he has any additional thoughts.

At a high level, though, Retool's formal solution for a multitenant architecture is spaces. The big caveat here is that this feature requires an Enterprise plan. If you're on a Business plan, you can give your users a similar level of privacy with folders and granular permissioning.

2 Likes

Thanks for the ping @Darren

I think it all depends what "elements" you want to "clone.

For example, when it comes to databases, you can easily create new databases for each of your customers with separate Retool resources. You would then assign the resource id to your customer's retool attributes so you dynamically select it within apps.

This becomes more difficult when it comes to workflows. You could arguably have one "orchestrator" workflow that receives data from the apps and then directs it to "custom" workflows for each of yoru clients. So instead of having to dynamically set the workflows within the apps, you would send the data to this parent workflow and set that one up to then send the data to the correct personalized workflow.

To summarize, I think you CAN achieve what you are trying to do with a Business account, however it requires workarounds and it is more difficult to scale.

Hope this helps!

Thanks @MiguelOrtiz. You guys already have heard many times over the request for more robust multi-tenancy support/features. Just consider this a plus one.

1 Like