PromucFlow_constructor/app/client/src/ce/entities/FeatureFlag.ts
Rahul Barwal fd33730241
feat: Adds partial import functionality (#28293)
## Description

This pull request adds partial import/export functionality to the
Appsmith application at page level, allowing users to import and export
specific widgets, data sources, queries, and custom JS libraries. The
functionality is behind a feature flag and includes loading and done
states.

#### PR fixes following issue(s)
Fixes #27376
> if no issue exists, please create an issue and ask the maintainers
about this first
>
>
#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change\
- New feature (non-breaking change which adds functionality)
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [x] Manual
- [ ] JUnit
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [x] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed

---------

Co-authored-by: Jacques Ikot <jacquesikot@gmail.com>
Co-authored-by: Anagh Hegde <anagh@appsmith.com>
2023-11-17 12:46:18 +05:30

85 lines
3.8 KiB
TypeScript

// Please follow naming convention : https://www.notion.so/appsmith/Using-Feature-Flags-in-Appsmith-d362fe7acc7d4ef0aa12e1f5f9b83b5f?pvs=4#f6d4242e56284e84af25cadef71b7aeb to create feature flags.
export const FEATURE_FLAG = {
TEST_FLAG: "TEST_FLAG",
release_datasource_environments_enabled:
"release_datasource_environments_enabled",
release_appnavigationlogoupload_enabled:
"release_appnavigationlogoupload_enabled",
release_embed_hide_share_settings_enabled:
"release_embed_hide_share_settings_enabled",
ab_gsheet_schema_enabled: "ab_gsheet_schema_enabled",
ab_wds_enabled: "ab_wds_enabled",
release_table_serverside_filtering_enabled:
"release_table_serverside_filtering_enabled",
release_custom_echarts_enabled: "release_custom_echarts_enabled",
license_branding_enabled: "license_branding_enabled",
release_git_status_lite_enabled: "release_git_status_lite_enabled",
license_sso_saml_enabled: "license_sso_saml_enabled",
license_sso_oidc_enabled: "license_sso_oidc_enabled",
release_git_connect_v2_enabled: "release_git_connect_v2_enabled",
deprecate_custom_fusioncharts_enabled:
"deprecate_custom_fusioncharts_enabled",
ab_mock_mongo_schema_enabled: "ab_mock_mongo_schema_enabled",
license_private_embeds_enabled: "license_private_embeds_enabled",
release_show_publish_app_to_community_enabled:
"release_show_publish_app_to_community_enabled",
license_gac_enabled: "license_gac_enabled",
release_anvil_enabled: "release_anvil_enabled",
ab_show_templates_instead_of_blank_canvas_enabled:
"ab_show_templates_instead_of_blank_canvas_enabled",
release_app_sidebar_enabled: "release_app_sidebar_enabled",
license_git_branch_protection_enabled:
"license_git_branch_protection_enabled",
license_widget_rtl_support_enabled: "license_widget_rtl_support_enabled",
release_custom_widgets_enabled: "release_custom_widgets_enabled",
ab_onboarding_flow_start_with_data_dev_only_enabled:
"ab_onboarding_flow_start_with_data_dev_only_enabled",
ab_create_new_apps_enabled: "ab_create_new_apps_enabled",
release_show_new_sidebar_announcement_enabled:
"release_show_new_sidebar_announcement_enabled",
rollout_app_sidebar_enabled: "rollout_app_sidebar_enabled",
release_show_partial_import_export_enabled:
"release_show_partial_import_export_enabled",
} as const;
export type FeatureFlag = keyof typeof FEATURE_FLAG;
export type FeatureFlags = Record<FeatureFlag, boolean>;
export const DEFAULT_FEATURE_FLAG_VALUE: FeatureFlags = {
TEST_FLAG: true,
release_datasource_environments_enabled: false,
release_appnavigationlogoupload_enabled: false,
release_embed_hide_share_settings_enabled: false,
ab_gsheet_schema_enabled: false,
ab_wds_enabled: false,
release_table_serverside_filtering_enabled: false,
release_custom_echarts_enabled: false,
license_branding_enabled: false,
release_git_status_lite_enabled: false,
license_sso_saml_enabled: false,
license_sso_oidc_enabled: false,
release_git_connect_v2_enabled: false,
deprecate_custom_fusioncharts_enabled: false,
ab_mock_mongo_schema_enabled: false,
license_private_embeds_enabled: false,
release_show_publish_app_to_community_enabled: false,
license_gac_enabled: false,
release_anvil_enabled: false,
ab_show_templates_instead_of_blank_canvas_enabled: false,
release_app_sidebar_enabled: false,
license_git_branch_protection_enabled: false,
license_widget_rtl_support_enabled: false,
release_custom_widgets_enabled: false,
ab_onboarding_flow_start_with_data_dev_only_enabled: false,
ab_create_new_apps_enabled: false,
release_show_new_sidebar_announcement_enabled: false,
rollout_app_sidebar_enabled: false,
release_show_partial_import_export_enabled: false,
};
export const AB_TESTING_EVENT_KEYS = {
abTestingFlagLabel: "abTestingFlagLabel",
abTestingFlagValue: "abTestingFlagValue",
};