From e71d929034ad15e359e04536ad3252d8d9200b90 Mon Sep 17 00:00:00 2001 From: Amit Miran <47772523+amitmiran137@users.noreply.github.com> Date: Fri, 2 Apr 2021 10:27:09 +0300 Subject: [PATCH] feat: extra_jwt support to be used in dashboard_rbac (#1021) * feat: extra_jwt support to be used in dashboard_rbac for BE validation of data-access based on dashboard access * test: extra_jwt existence * chore: extra_jwt in BaseFormData * fix: add missing ff to enum * fix: missing : * chore: add extra_jwt to QueryContext * Update QueryFormData.ts * Update buildQueryContext.ts * Update buildQueryContext.test.ts * fix: text * Update Query.ts * Update QueryFormData.ts --- .../superset-ui-core/src/query/buildQueryContext.ts | 1 + .../superset-ui-core/src/query/types/Query.ts | 1 + .../superset-ui-core/src/query/types/QueryFormData.ts | 1 + .../superset-ui-core/src/utils/featureFlags.ts | 1 + .../test/query/buildQueryContext.test.ts | 11 ++++++++++- 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/buildQueryContext.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/buildQueryContext.ts index c4621c2f6816..c21ba0eab79a 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/buildQueryContext.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/buildQueryContext.ts @@ -44,5 +44,6 @@ export default function buildQueryContext( }), result_format: formData.result_format || 'json', result_type: formData.result_type || 'full', + extra_jwt: formData.extra_jwt, }; } diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/Query.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/Query.ts index 0556a7bd3e81..f77a342fc50c 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/Query.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/Query.ts @@ -146,6 +146,7 @@ export interface QueryContext { /** Response format */ result_format: string; queries: QueryObject[]; + extra_jwt?: string; } export default {}; diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/QueryFormData.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/QueryFormData.ts index 1b5de86a7a2f..7e023bd73c23 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/QueryFormData.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/QueryFormData.ts @@ -149,6 +149,7 @@ export interface BaseFormData extends TimeRange, FormDataResidual { annotation_layers?: AnnotationLayer[]; url_params?: Record; custom_params?: Record; + extra_jwt?: string; } /** diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/utils/featureFlags.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/utils/featureFlags.ts index 45178bbc1af3..7ae09ee9a474 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/utils/featureFlags.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/utils/featureFlags.ts @@ -41,6 +41,7 @@ export enum FeatureFlag { GLOBAL_ASYNC_QUERIES = 'GLOBAL_ASYNC_QUERIES', ENABLE_TEMPLATE_PROCESSING = 'ENABLE_TEMPLATE_PROCESSING', ENABLE_EXPLORE_DRAG_AND_DROP = 'ENABLE_EXPLORE_DRAG_AND_DROP', + DASHBOARD_RBAC = 'DASHBOARD_RBAC', } export type ScheduleQueriesProps = { JSONSCHEMA: { diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/query/buildQueryContext.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/query/buildQueryContext.test.ts index 9dff74ea9d2c..c151ee0c2879 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/query/buildQueryContext.test.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/query/buildQueryContext.test.ts @@ -31,7 +31,16 @@ describe('buildQueryContext', () => { expect(queryContext.result_format).toBe('json'); expect(queryContext.result_type).toBe('full'); }); - + it('should build with extra_jwt', () => { + const queryContext = buildQueryContext({ + datasource: '5__table', + viz_type: 'table', + extra_jwt: 'ABCDEFG', + }); + expect(queryContext.datasource.id).toBe(5); + expect(queryContext.datasource.type).toBe('table'); + expect(queryContext.extra_jwt).toBe('ABCDEFG'); + }); it('should build datasource for druid sources and set force to true', () => { const queryContext = buildQueryContext({ datasource: '5__druid',