Restrict app creation to admins

Description of the limitation and why it is relevant to address

As an Admin, I would like to control who creates an app for production so Iā€™m able to control the published app.

We have quite a strict quality system before an app should be published to production. Now Any dev can create an app (thankfully not a workspace). As soon that happened any user can be triggered to ask for a workspace for that, which leads to an unnecessary maintenance burden for the admins. Also now our apps overview is polluted with apps that I donā€™t want to have here.

I am actually very surprised that any dev can create an app.

We are now in the situation that a junior developer has created an app that is not intended to be in production and I am not able to fix this. (Apps cannot be removed so: Be able to remove an app - :bulb: Feature Requests - VIKTOR Community)

Hi Wichard,

Thank you for describing this limitation. In my opinion we are currently missing a ā€˜draftā€™ or ā€˜in-developmentā€™ state for apps. I understand that you would like to have controls before flagging an app as production-ready. Currently, you would be able to use the labels to indicate that an app is not production-ready yet.

However, in my opinion it is also very valuable for a developer to be able to test the application or gather feedback from users during the development process. Now this requires an administrator to set up a workspace and add users specifically for testing purposes, which can become a bottleneck when the number of developers grows. So restricting workspace creation to admins is also not an ideal solution.

I think it could be valuable to have an intermediate state where a developer is able create a ā€˜draftā€™ app, publish versions and add users for testing. Upon completion this app could then be ā€˜approvedā€™ by an admin to make it available in the app store for users to see and request access to it. Do you think a flow like this could work?

Iā€™m uncertain if that approach is effective. Weā€™ve observed instances where individuals create apps simply because thereā€™s a button available, and theyā€™d like to explore this further. As an administrator, I strongly advocate for the functionality for admins to remove apps in such cases.

We maintain a strict approach, so I propose making this functionality configurable at the company level. This way, we can carefully decide which permissions to grant.

Additionally, if we adopt your proposal, I recommend that ā€˜draftā€™ apps remain hidden from users in the ā€˜appsā€™ overview. This prevents unnecessary requests for access. As you mentioned, our current practice involves labeling apps as ā€˜obsoleteā€™ or ā€˜in development.ā€™

I understand, we are planning to implement an archiving functionality similar to what admins can do for workspaces.

Could elaborate what specifically you would like to control? Or what is most important to have controls for in your opinion?

Do you think it could be valuable for users to see which apps are being developed? I can imagine it could spark some interest in new developments.

I discovered that the ā€œcreate appā€ workflow automatically generates an app instance.

One of our users believes they need to go through this workflow to start developing new apps. The result is truly problematic: our entire app store is polluted with ā€œtest appsā€ that are not intended for production. We have a strict process for app creation, along with a set of rules for naming the apps. Because of this possibility, our entire system has been compromised.

Once again, I urge you to restrict app creation to admins, or at least provide the option to restrict it (similar to how I can restrict (private) workspace creation). I donā€™t understand why this wasnā€™t included with the workspace iteration:

Dear Wichard,

Thank you for your message.

In my last message I indicated that we were planning to work on an app archiving functionality. That has since been released, so any unwanted apps can be removed from the app store. You can find the archive button on the app details page:

image

Additionally, we are currently addressing the pain point you mention; to remove the clutter of test apps and apps that are still under development, users will only see published apps in the app store. Developers will see an additional tab ā€˜My appsā€™ that contains apps they maintain, irrespective of publication status. Administrators will have an additional tab to view all apps that have been created in the environment. Below, you will find a screenshot of the design of the administrator view:

In a concurrent development we will also be adding an editable UI name for apps. This UI name will be shown in the app store instead of the unique identifier which cannot be changed after creation. This will allow developers and administrators to decouple the internal name and the name the user will see. It can also be changed during the lifecycle of the app.

If you look closely at the screenshot above it also shows another change that we will be introducing in the product, namely a development workspace per app. That will address another longstanding pain point as this will allow developers to work on multiple projects simultaneously, without the need to clear their database when switching between apps. To support this, it will be required that an app be created before you can access the development workspace associated with that app.

To prevent a situation where a developer needs to wait for an administrator to create an app before development can start, I donā€™t believe it would be desirable to restrict app creation to administrators. With the changes listed above, which are planned to be released before the end of the year, do you think additional controls are required?

Kind regards,

Raoul

That seems quite a good improvement. Canā€™t wait untill the launch.

It is not clear to me who will be able to change the publication status ā†’ IMO that shouldnā€™t be a right for every dev OR at least be the decision of the company.

About archiving apps: that works and I have used it, but it is not really deleting.

Kind regards,

Nice to hear that you find the points above good improvements to the product.

It is not clear to me who will be able to change the publication status ā†’ IMO that shouldnā€™t be a right for every dev OR at least be the decision of the company.

In the current implementation the filtering will take place on whether an app version has been published or not. However, we want to extend the functionality to allow for more control on the status of apps/workspaces. This is still very much in the discovery phase, so it is a bit too early to have a clear description of what this would look like. In that light your input would be much appreciated.

About archiving apps: that works and I have used it, but it is not really deleting.

Would being able to delete apps completely add value for you? What would that add over the current archive functionality?

Iā€™m curious to lean more. IMO this implementation is not complete without the app status control, I would urge you to combine these two features in one release.

About complete deletion: If someone (accidentally) creates an app, I can no longer use the name. It is already in use (even if archived). As a result, even the archive (potentially_ becomes cluttered with nonsense.