I would like to see the ability to define account development profiles defining custom “stages” for apps, and settings for the stages.
- A profile contains a set of user defined stages (Live, testing, development, etc.) with settings for those stages (described below).
- Profiles of stages defined at the account level. Multiple profiles allowed.
- In an app, select the development profile to use.
- Within an app, allow “duplicate a profile, and edit” to allow a derivative profile to be created quickly for an app.
These features should be definable (and optional) within a profile:
- Base URL field for each defined stage, this becomes the base URL for all features in an app.
- Authentication URL for each stage, this becomes the authentication URL if enabled in all app features.
- Install/app lifecycle webhook URL for each stage.
- OAuth callback URL for each stage.
- Sharing setting per stage.
With the app itself:
- Selection of the development profile to apply. Or leave the app using the default provided profile (matching current stages and behaviors).
- In the webhook configuration, provide a grayed field for each defined stage in the profile, with a checkbox to override that stage.
- Track installs per version, allowing us to install/uninstall a test or draft version to be visible to non-collaborators without going live (so internal non-devs can test without affecting customers)
- Per version sharing URLs so beta versions may be shared with specific end customers (such as those requesting a feature or who are experiencing a bug to get confirmation of resolution)
Within the app features (using Integrations as an example).
- Base URL field for the stage in each feature.
- Authentication URL for the stage in each feature.
- Other URLs depending on feature type.
- Provide an override checkbox for each stage IF its defined at the profile level within each feature for each URL/setting.
- For view apps, the URLs will be custom per stage - though a “base URL” would be useful so only the path needs to be defined if many apps are served by the same infrastructure.
These enhancements allow us to
- manage our development cycles
- set up an app to use existing environments (apps that are too big are hard for users to understand the functionality and then navigate)
- eliminate the need to change URLs multiple times in a version (lots of footguns here)
- allows us to share an app version with a customer experiencing a bug or requested a new feature before release
- allow non-collaborators on an app to test the app within the dev account
- test install webhooks without going live, (bug fixes, or installing into a development or test environment).