appsmithorg / appsmith

Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
https://www.appsmith.com
Apache License 2.0
34.63k stars 3.74k forks source link

[Feature]: Workspace Key/Value storage "Extensions" #37398

Open magliok-wwt opened 3 days ago

magliok-wwt commented 3 days ago

Is there an existing issue for this?

Summary

I would like to have a way to set static variables at the workspace, environment, and app level within AppSmith. The idea is this would be a way to do key : value storage for static values needed within apps.

The concept is similar to another tool we utilize and these 'extensions' work very well for these use-cases.

A future state of this could also function similarly to a 'resources' strings type feature that many apps see as extensibility to support multiple languages. This function functions similarly in that you can generate keys and provide values. The only change to this feature would be to support setting the language/local for the values as you populate them ( and being able to reference what language you are selecting when retrieving said values ) -- localization should be a Phase 2.

We need the ability to have a Key - become an Extension. These Keys can be setup/configured within an App.

Once the app is published, there will be an area in the AppSmith admin UI where values can be assigned. These extensions would - show up only after the app is published, therefore you only specify the value. This reduces having to "coordinate" knowing/typing in the exact 'key' again.

When setting these values, you should be able to set them at either the Environment ( within a Workspace ) level - optionally having a setting for "all" environments ( so effectively you are setting this at a Workspace level ).

App: My App

Publish "My App" to the Production workspace

Workspace Settings Gear > Extensions

This would then list extensions (Keys), grouped by App Name You would hit a '+' button to add an extension You are asked "One value for all Environments" or "Value per Environment" From here, you either get to enter the one value if it's for all environments or a way to enter values for each environment configured for the workspace.

Should a new environment be added later, it should be expected that you have to set those values - if you are using environment-specific configurations Extension(s).

Why should this be worked on?

This is a must-have to be able to correctly specify different assets when you operate AppSmith in a multi-environment enterprise. This should be enhanced to allow multi-lingual support as well... as this could be done utilizing a similar feature. (Environment within a workspace configurable strings).

We need a solution, without hard-coding these values into applications. Today, there isn't a great solution to target Workspace / Environment names in JS, this could rely on that or circumvent that need.

I don't know how a mature shop, interconnecting Apps built in AppSmith, could reference links that change across environments in any other way without this feature.

ame-appsmith commented 3 days ago

EE ticket