2023-07-12 06:42:16 +00:00
|
|
|
// Please follow naming convention : https://www.notion.so/appsmith/Using-Feature-Flags-in-Appsmith-d362fe7acc7d4ef0aa12e1f5f9b83b5f?pvs=4#f6d4242e56284e84af25cadef71b7aeb to create feature flags.
|
2023-06-27 10:45:33 +00:00
|
|
|
export const FEATURE_FLAG = {
|
|
|
|
|
TEST_FLAG: "TEST_FLAG",
|
2023-07-05 06:58:18 +00:00
|
|
|
release_datasource_environments_enabled:
|
|
|
|
|
"release_datasource_environments_enabled",
|
2023-07-21 08:43:36 +00:00
|
|
|
release_appnavigationlogoupload_enabled:
|
|
|
|
|
"release_appnavigationlogoupload_enabled",
|
2023-07-12 13:49:49 +00:00
|
|
|
release_embed_hide_share_settings_enabled:
|
|
|
|
|
"release_embed_hide_share_settings_enabled",
|
2023-10-12 08:24:03 +00:00
|
|
|
release_table_serverside_filtering_enabled:
|
|
|
|
|
"release_table_serverside_filtering_enabled",
|
2023-08-16 10:21:04 +00:00
|
|
|
license_branding_enabled: "license_branding_enabled",
|
2023-08-21 13:42:22 +00:00
|
|
|
license_sso_saml_enabled: "license_sso_saml_enabled",
|
|
|
|
|
license_sso_oidc_enabled: "license_sso_oidc_enabled",
|
2023-10-04 10:10:38 +00:00
|
|
|
license_private_embeds_enabled: "license_private_embeds_enabled",
|
2023-09-25 06:27:23 +00:00
|
|
|
release_show_publish_app_to_community_enabled:
|
|
|
|
|
"release_show_publish_app_to_community_enabled",
|
2023-09-29 20:42:56 +00:00
|
|
|
license_gac_enabled: "license_gac_enabled",
|
2023-10-19 15:20:17 +00:00
|
|
|
release_anvil_enabled: "release_anvil_enabled",
|
2025-03-27 12:48:12 +00:00
|
|
|
license_ai_agent_enabled: "license_ai_agent_enabled",
|
2023-11-07 14:55:02 +00:00
|
|
|
license_git_branch_protection_enabled:
|
|
|
|
|
"license_git_branch_protection_enabled",
|
2024-01-24 07:55:58 +00:00
|
|
|
license_git_continuous_delivery_enabled:
|
|
|
|
|
"license_git_continuous_delivery_enabled",
|
2023-11-03 10:48:13 +00:00
|
|
|
license_widget_rtl_support_enabled: "license_widget_rtl_support_enabled",
|
2023-11-27 09:30:20 +00:00
|
|
|
ab_one_click_learning_popover_enabled:
|
|
|
|
|
"ab_one_click_learning_popover_enabled",
|
2024-01-16 14:49:08 +00:00
|
|
|
ab_appsmith_ai_query: "ab_appsmith_ai_query",
|
2024-02-13 11:14:59 +00:00
|
|
|
rollout_remove_feature_walkthrough_enabled:
|
|
|
|
|
"rollout_remove_feature_walkthrough_enabled",
|
2024-11-12 12:05:28 +00:00
|
|
|
rollout_eslint_enabled: "rollout_eslint_enabled",
|
2024-03-08 09:05:02 +00:00
|
|
|
release_drag_drop_building_blocks_enabled:
|
|
|
|
|
"release_drag_drop_building_blocks_enabled",
|
2024-04-11 11:51:14 +00:00
|
|
|
release_layout_conversion_enabled: "release_layout_conversion_enabled",
|
2024-10-14 11:04:16 +00:00
|
|
|
release_git_persist_branch_enabled: "release_git_persist_branch_enabled",
|
2024-09-09 10:55:50 +00:00
|
|
|
release_ide_animations_enabled: "release_ide_animations_enabled",
|
2024-10-25 16:22:41 +00:00
|
|
|
release_ide_datasource_selector_enabled:
|
|
|
|
|
"release_ide_datasource_selector_enabled",
|
2024-11-11 10:29:32 +00:00
|
|
|
release_custom_widget_ai_builder: "release_custom_widget_ai_builder",
|
2024-12-09 11:58:25 +00:00
|
|
|
ab_request_new_integration_enabled: "ab_request_new_integration_enabled",
|
2024-12-13 04:14:19 +00:00
|
|
|
release_evaluation_scope_cache: "release_evaluation_scope_cache",
|
2024-12-13 08:39:53 +00:00
|
|
|
release_gs_all_sheets_options_enabled:
|
|
|
|
|
"release_gs_all_sheets_options_enabled",
|
2025-01-05 10:21:23 +00:00
|
|
|
release_git_modularisation_enabled: "release_git_modularisation_enabled",
|
2025-01-21 10:19:18 +00:00
|
|
|
release_git_api_contracts_enabled: "release_git_api_contracts_enabled",
|
2024-12-19 14:30:09 +00:00
|
|
|
ab_premium_datasources_view_enabled: "ab_premium_datasources_view_enabled",
|
2024-12-20 13:32:02 +00:00
|
|
|
kill_session_recordings_enabled: "kill_session_recordings_enabled",
|
|
|
|
|
config_mask_session_recordings_enabled:
|
|
|
|
|
"config_mask_session_recordings_enabled",
|
|
|
|
|
config_user_session_recordings_enabled:
|
|
|
|
|
"config_user_session_recordings_enabled",
|
2025-02-06 13:22:03 +00:00
|
|
|
release_external_saas_plugins_enabled:
|
|
|
|
|
"release_external_saas_plugins_enabled",
|
2025-03-28 07:43:44 +00:00
|
|
|
release_table_infinitescroll_enabled: "release_table_infinitescroll_enabled",
|
2025-03-26 08:47:46 +00:00
|
|
|
license_multi_org_enabled: "license_multi_org_enabled",
|
feat: adds custom sort function feature flag for table widget (#39649)
## Description
### Custom Sort Function for Table Widget
This PR introduces a new custom sort function feature for the Table
Widget, allowing users to define their own sorting logic for table data.
**Feature Flag Implementation**
- Added a new feature flag `release_table_custom_sort_function_enabled`
to control the availability of this feature
- Set the default value to `false` to allow for controlled rollout
**Table Widget Updates**
- Added `customSortFunction` property to the TableWidgetV2 props
interface
- Updated property configuration to include the custom sort function
control
- Added helper text and placeholder to guide users on proper
implementation
- Implemented visibility condition based on the feature flag and
sortable state
**Control Updates**
- Enhanced `TableCustomSortControl` to support the new custom sorting
logic
- Improved error handling in the sort function implementation
- Updated the binding structure to provide access to original data with
`original_` prefix
- Modified the function signature to use `(tableData, column, order)`
parameters
**Testing**
- Updated test cases to verify the extraction and computation of custom
sort expressions
- Implemented round-trip testing to ensure proper function parsing and
generation
- Added tests for edge cases like empty strings and non-matching formats
This feature enables users to implement complex sorting logic beyond the
default column-based sorting, such as multi-column sorting, custom
collation, or business-specific ordering rules.
Fixes #https://github.com/appsmithorg/appsmith-ee/issues/6503
_or_
Fixes `Issue URL`
> [!WARNING]
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._
## Automation
/ok-to-test tags="@tag.Table, @tag.Sanity, @tag.Datasource"
### :mag: Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/13986693183>
> Commit: b64c2919c5d8eb1b82f6f8e6c76b98a60c2a6e22
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13986693183&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Table, @tag.Sanity, @tag.Datasource`
> Spec:
> <hr>Fri, 21 Mar 2025 08:35:48 UTC
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Introduced custom table sorting, enabling users to define and apply
their own sorting logic in table displays.
- Added a new control interface for configuring custom sort functions,
offering enhanced flexibility in data presentation.
- Integrated an option to enable or disable the custom sort
functionality based on feature flags.
- Enhanced the table widget to support custom sorting function data,
allowing for dynamic data presentation.
- Added a new property configuration for custom sorting functions within
the table widget.
- **Tests**
- Implemented comprehensive tests to verify custom sorting input
processing and ensure accurate data computation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-21 10:15:29 +00:00
|
|
|
release_table_custom_sort_function_enabled:
|
|
|
|
|
"release_table_custom_sort_function_enabled",
|
2025-03-31 17:23:11 +00:00
|
|
|
release_git_package_enabled: "release_git_package_enabled",
|
2025-04-02 06:18:36 +00:00
|
|
|
license_external_saas_plugins_enabled:
|
|
|
|
|
"license_external_saas_plugins_enabled",
|
2025-05-05 12:25:25 +00:00
|
|
|
release_computation_cache_enabled: "release_computation_cache_enabled",
|
2023-06-27 10:45:33 +00:00
|
|
|
} 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,
|
2023-07-05 06:58:18 +00:00
|
|
|
release_datasource_environments_enabled: false,
|
2023-07-21 08:43:36 +00:00
|
|
|
release_appnavigationlogoupload_enabled: false,
|
2023-07-12 13:49:49 +00:00
|
|
|
release_embed_hide_share_settings_enabled: false,
|
2023-10-12 08:24:03 +00:00
|
|
|
release_table_serverside_filtering_enabled: false,
|
2023-08-16 10:21:04 +00:00
|
|
|
license_branding_enabled: false,
|
2023-08-21 13:42:22 +00:00
|
|
|
license_sso_saml_enabled: false,
|
|
|
|
|
license_sso_oidc_enabled: false,
|
2023-10-04 10:10:38 +00:00
|
|
|
license_private_embeds_enabled: false,
|
2023-09-25 06:27:23 +00:00
|
|
|
release_show_publish_app_to_community_enabled: false,
|
2023-09-29 20:42:56 +00:00
|
|
|
license_gac_enabled: false,
|
2023-10-19 15:20:17 +00:00
|
|
|
release_anvil_enabled: false,
|
2025-03-27 12:48:12 +00:00
|
|
|
license_ai_agent_enabled: false,
|
2024-03-08 09:05:02 +00:00
|
|
|
release_drag_drop_building_blocks_enabled: false,
|
2023-11-07 14:55:02 +00:00
|
|
|
license_git_branch_protection_enabled: false,
|
2024-01-24 07:55:58 +00:00
|
|
|
license_git_continuous_delivery_enabled: false,
|
2023-11-03 10:48:13 +00:00
|
|
|
license_widget_rtl_support_enabled: false,
|
2023-11-27 09:30:20 +00:00
|
|
|
ab_one_click_learning_popover_enabled: false,
|
2024-01-16 14:49:08 +00:00
|
|
|
ab_appsmith_ai_query: false,
|
2024-05-13 10:18:11 +00:00
|
|
|
rollout_remove_feature_walkthrough_enabled: true,
|
2024-11-12 12:05:28 +00:00
|
|
|
rollout_eslint_enabled: false,
|
2024-04-11 11:51:14 +00:00
|
|
|
release_layout_conversion_enabled: false,
|
2024-10-14 11:04:16 +00:00
|
|
|
release_git_persist_branch_enabled: false,
|
2024-09-09 10:55:50 +00:00
|
|
|
release_ide_animations_enabled: false,
|
2024-10-25 16:22:41 +00:00
|
|
|
release_ide_datasource_selector_enabled: false,
|
2024-11-11 10:29:32 +00:00
|
|
|
release_custom_widget_ai_builder: false,
|
2024-12-09 11:58:25 +00:00
|
|
|
ab_request_new_integration_enabled: false,
|
2024-12-13 04:14:19 +00:00
|
|
|
release_evaluation_scope_cache: false,
|
2024-12-13 08:39:53 +00:00
|
|
|
release_gs_all_sheets_options_enabled: false,
|
2025-01-05 10:21:23 +00:00
|
|
|
release_git_modularisation_enabled: false,
|
2025-01-21 10:19:18 +00:00
|
|
|
release_git_api_contracts_enabled: false,
|
2024-12-19 14:30:09 +00:00
|
|
|
ab_premium_datasources_view_enabled: false,
|
2024-12-20 13:32:02 +00:00
|
|
|
kill_session_recordings_enabled: false,
|
|
|
|
|
config_user_session_recordings_enabled: true,
|
|
|
|
|
config_mask_session_recordings_enabled: true,
|
2025-02-06 13:22:03 +00:00
|
|
|
release_external_saas_plugins_enabled: false,
|
2025-03-28 07:43:44 +00:00
|
|
|
release_table_infinitescroll_enabled: false,
|
2025-03-26 08:47:46 +00:00
|
|
|
license_multi_org_enabled: false,
|
feat: adds custom sort function feature flag for table widget (#39649)
## Description
### Custom Sort Function for Table Widget
This PR introduces a new custom sort function feature for the Table
Widget, allowing users to define their own sorting logic for table data.
**Feature Flag Implementation**
- Added a new feature flag `release_table_custom_sort_function_enabled`
to control the availability of this feature
- Set the default value to `false` to allow for controlled rollout
**Table Widget Updates**
- Added `customSortFunction` property to the TableWidgetV2 props
interface
- Updated property configuration to include the custom sort function
control
- Added helper text and placeholder to guide users on proper
implementation
- Implemented visibility condition based on the feature flag and
sortable state
**Control Updates**
- Enhanced `TableCustomSortControl` to support the new custom sorting
logic
- Improved error handling in the sort function implementation
- Updated the binding structure to provide access to original data with
`original_` prefix
- Modified the function signature to use `(tableData, column, order)`
parameters
**Testing**
- Updated test cases to verify the extraction and computation of custom
sort expressions
- Implemented round-trip testing to ensure proper function parsing and
generation
- Added tests for edge cases like empty strings and non-matching formats
This feature enables users to implement complex sorting logic beyond the
default column-based sorting, such as multi-column sorting, custom
collation, or business-specific ordering rules.
Fixes #https://github.com/appsmithorg/appsmith-ee/issues/6503
_or_
Fixes `Issue URL`
> [!WARNING]
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._
## Automation
/ok-to-test tags="@tag.Table, @tag.Sanity, @tag.Datasource"
### :mag: Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/13986693183>
> Commit: b64c2919c5d8eb1b82f6f8e6c76b98a60c2a6e22
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13986693183&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Table, @tag.Sanity, @tag.Datasource`
> Spec:
> <hr>Fri, 21 Mar 2025 08:35:48 UTC
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Introduced custom table sorting, enabling users to define and apply
their own sorting logic in table displays.
- Added a new control interface for configuring custom sort functions,
offering enhanced flexibility in data presentation.
- Integrated an option to enable or disable the custom sort
functionality based on feature flags.
- Enhanced the table widget to support custom sorting function data,
allowing for dynamic data presentation.
- Added a new property configuration for custom sorting functions within
the table widget.
- **Tests**
- Implemented comprehensive tests to verify custom sorting input
processing and ensure accurate data computation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-21 10:15:29 +00:00
|
|
|
release_table_custom_sort_function_enabled: false,
|
2025-03-31 17:23:11 +00:00
|
|
|
release_git_package_enabled: false,
|
2025-04-02 06:18:36 +00:00
|
|
|
license_external_saas_plugins_enabled: false,
|
2025-05-05 12:25:25 +00:00
|
|
|
release_computation_cache_enabled: false,
|
2023-07-12 06:42:16 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const AB_TESTING_EVENT_KEYS = {
|
|
|
|
|
abTestingFlagLabel: "abTestingFlagLabel",
|
|
|
|
|
abTestingFlagValue: "abTestingFlagValue",
|
2023-06-27 10:45:33 +00:00
|
|
|
};
|