From 3504fe653237ac4346cd3585c56aa5c0a1cb4820 Mon Sep 17 00:00:00 2001 From: hkad98 Date: Wed, 26 Oct 2022 13:28:29 +0200 Subject: [PATCH 1/4] PSDK-103 Fix docker image name --- .fossa/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.fossa/README.md b/.fossa/README.md index 960152687..721bc026b 100644 --- a/.fossa/README.md +++ b/.fossa/README.md @@ -6,5 +6,5 @@ Use job https://checklist.intgdc.com/job/space/job/fossa-repository-scanning-too - REPOSITORIES: gooddata-python-sdk - GITHUB_USER: gooddata - BRANCH: latest -- DOCKER_IMAGE: harbor.intgdc.com/pavel.cerny/gdc-fossa-cli_py39:latest +- DOCKER_IMAGE: harbor.intgdc.com/tools/gdc-fossa-cli:latest - SCAN_CMD: analyze From 0428534e581143e827e4e4e890ba931ccbffb9a8 Mon Sep 17 00:00:00 2001 From: hkad98 Date: Thu, 27 Oct 2022 11:18:33 +0200 Subject: [PATCH 2/4] PSDK-103 BigQuery data source API change --- gooddata-sdk/gooddata_sdk/__init__.py | 1 - .../declarative_model/data_source.py | 11 +++++++---- .../data_source/entity_model/data_source.py | 18 ++++-------------- gooddata-sdk/gooddata_sdk/catalog/parameter.py | 17 +++++++++++++++++ 4 files changed, 28 insertions(+), 19 deletions(-) create mode 100644 gooddata-sdk/gooddata_sdk/catalog/parameter.py diff --git a/gooddata-sdk/gooddata_sdk/__init__.py b/gooddata-sdk/gooddata_sdk/__init__.py index 8e15f18b1..4f122f5af 100644 --- a/gooddata-sdk/gooddata_sdk/__init__.py +++ b/gooddata-sdk/gooddata_sdk/__init__.py @@ -18,7 +18,6 @@ ) from gooddata_sdk.catalog.data_source.entity_model.content_objects.table import CatalogDataSourceTable from gooddata_sdk.catalog.data_source.entity_model.data_source import ( - BigQueryAttributes, CatalogDataSource, CatalogDataSourceBigQuery, CatalogDataSourcePostgres, diff --git a/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/data_source.py b/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/data_source.py index efa2aa556..b6130b9f0 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/data_source.py +++ b/gooddata-sdk/gooddata_sdk/catalog/data_source/declarative_model/data_source.py @@ -9,9 +9,10 @@ from gooddata_api_client.model.declarative_data_source import DeclarativeDataSource from gooddata_api_client.model.declarative_data_sources import DeclarativeDataSources from gooddata_api_client.model.test_definition_request import TestDefinitionRequest -from gooddata_sdk.catalog.base import Base +from gooddata_sdk.catalog.base import Base, value_in_allowed from gooddata_sdk.catalog.data_source.declarative_model.physical_model.pdm import CatalogDeclarativeTables from gooddata_sdk.catalog.entity import TokenCredentialsFromFile +from gooddata_sdk.catalog.parameter import CatalogParameter from gooddata_sdk.catalog.permission.declarative_model.permission import CatalogDeclarativeDataSourcePermission from gooddata_sdk.utils import create_directory, read_layout_from_file, write_layout_to_file @@ -65,14 +66,16 @@ def load_from_disk(cls, layout_organization_folder: Path) -> CatalogDeclarativeD @attr.s(auto_attribs=True, kw_only=True) class CatalogDeclarativeDataSource(Base): id: str - type: str name: str - url: str + type: str = attr.field(validator=value_in_allowed) + url: Optional[str] = None schema: str enable_caching: Optional[bool] = None - pdm: Optional[CatalogDeclarativeTables] = None + pdm: CatalogDeclarativeTables = CatalogDeclarativeTables() cache_path: Optional[List[str]] = None username: Optional[str] = None + parameters: Optional[List[CatalogParameter]] = None + decoded_parameters: Optional[List[CatalogParameter]] = None permissions: List[CatalogDeclarativeDataSourcePermission] = attr.field(factory=list) def to_test_request( diff --git a/gooddata-sdk/gooddata_sdk/catalog/data_source/entity_model/data_source.py b/gooddata-sdk/gooddata_sdk/catalog/data_source/entity_model/data_source.py index b04d0fa33..a63f22420 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/data_source/entity_model/data_source.py +++ b/gooddata-sdk/gooddata_sdk/catalog/data_source/entity_model/data_source.py @@ -48,7 +48,7 @@ def __init__( self.data_source_type = data_source_type or self._make_data_source_type() self.url = url or self._make_url() - def _make_url(self) -> str: + def _make_url(self) -> Optional[str]: if self.db_specific_attributes and self._URL_TMPL: db_vendor = None if self._URL_VENDOR: @@ -62,7 +62,7 @@ def _make_url(self) -> str: db_vendor=db_vendor, ) + self._join_params(";") else: - raise Exception("Neither url(constructor) nor URL_TMPL set, cannot setup final url.") + return None def _join_params(self, delimiter: str) -> str: if self.url_params: @@ -99,13 +99,14 @@ def to_api(self) -> JsonApiDataSourceInDocument: kwargs["enableCaching"] = self.enable_caching if self.cache_path is not None: kwargs["cachePath"] = self.cache_path + if self.url is not None: + kwargs["url"] = self.url return JsonApiDataSourceInDocument( data=JsonApiDataSourceIn( id=self.id, attributes=JsonApiDataSourceInAttributes( name=self.name, type=self.data_source_type, - url=self.url, schema=self.schema, **kwargs, ), @@ -176,16 +177,5 @@ class CatalogDataSourceSnowflake(CatalogDataSource): _DATA_SOURCE_TYPE = "SNOWFLAKE" -class BigQueryAttributes(DatabaseAttributes): - def __init__(self, project_id: str, port: str = "443"): - self.project_id = project_id - self.port = port - - @property - def str_attributes(self) -> dict[str, str]: - return dict(project_id=self.project_id, port=self.port) - - class CatalogDataSourceBigQuery(CatalogDataSource): - _URL_TMPL = "jdbc:{db_vendor}://https://www.googleapis.com/bigquery/v2:{port};ProjectId={project_id};OAuthType=0" _DATA_SOURCE_TYPE = "BIGQUERY" diff --git a/gooddata-sdk/gooddata_sdk/catalog/parameter.py b/gooddata-sdk/gooddata_sdk/catalog/parameter.py new file mode 100644 index 000000000..d60d4d27c --- /dev/null +++ b/gooddata-sdk/gooddata_sdk/catalog/parameter.py @@ -0,0 +1,17 @@ +# (C) 2022 GoodData Corporation +from typing import Type + +import attr + +from gooddata_api_client.model.parameter import Parameter +from gooddata_sdk.catalog.base import Base + + +@attr.s(auto_attribs=True, kw_only=True) +class CatalogParameter(Base): + name: str + value: str + + @staticmethod + def client_class() -> Type[Parameter]: + return Parameter From 6b3dc1f6d346659ab56005a427cd91a326b584d1 Mon Sep 17 00:00:00 2001 From: hkad98 Date: Thu, 27 Oct 2022 11:19:39 +0200 Subject: [PATCH 3/4] PSDK-103 declarative workspace new parameter --- gooddata-sdk/gooddata_sdk/catalog/setting.py | 12 ++++++++++++ .../declarative_model/workspace/workspace.py | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gooddata-sdk/gooddata_sdk/catalog/setting.py b/gooddata-sdk/gooddata_sdk/catalog/setting.py index 0ea4c3f9c..2263b165a 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/setting.py +++ b/gooddata-sdk/gooddata_sdk/catalog/setting.py @@ -5,6 +5,7 @@ import attr +from gooddata_api_client.model.declarative_custom_application_setting import DeclarativeCustomApplicationSetting from gooddata_api_client.model.declarative_setting import DeclarativeSetting from gooddata_sdk.catalog.base import Base @@ -17,3 +18,14 @@ class CatalogDeclarativeSetting(Base): @staticmethod def client_class() -> Type[DeclarativeSetting]: return DeclarativeSetting + + +@attr.s(auto_attribs=True, kw_only=True) +class CatalogDeclarativeCustomApplicationSetting(Base): + id: str + content: Dict[str, Any] + application_name: str + + @staticmethod + def client_class() -> Type[DeclarativeCustomApplicationSetting]: + return DeclarativeCustomApplicationSetting diff --git a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py index f05f3d132..a34823ac7 100644 --- a/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py +++ b/gooddata-sdk/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py @@ -18,7 +18,7 @@ CatalogDeclarativeSingleWorkspacePermission, CatalogDeclarativeWorkspaceHierarchyPermission, ) -from gooddata_sdk.catalog.setting import CatalogDeclarativeSetting +from gooddata_sdk.catalog.setting import CatalogDeclarativeCustomApplicationSetting, CatalogDeclarativeSetting from gooddata_sdk.catalog.workspace.declarative_model.workspace.analytics_model.analytics_model import ( CatalogDeclarativeAnalyticsLayer, ) @@ -65,6 +65,7 @@ class CatalogDeclarativeWorkspace(Base): hierarchy_permissions: List[CatalogDeclarativeWorkspaceHierarchyPermission] = attr.field(factory=list) early_access: Optional[str] = None settings: List[CatalogDeclarativeSetting] = attr.field(factory=list) + custom_application_settings: List[CatalogDeclarativeCustomApplicationSetting] = attr.field(factory=list) @staticmethod def client_class() -> Type[DeclarativeWorkspace]: From 83c21fd81ed5c1c856d91c489246be20fb48ff31 Mon Sep 17 00:00:00 2001 From: hkad98 Date: Thu, 27 Oct 2022 11:20:49 +0200 Subject: [PATCH 4/4] PSDK-103 tests + fixtures --- .../execute_compute_table_all_columns.yaml | 4 +- .../execute_compute_table_metrics_only.yaml | 4 +- ...ompute_table_with_reduced_granularity.yaml | 4 +- .../fixtures/execute_insight_all_columns.yaml | 4 +- .../execute_insight_some_columns.yaml | 4 +- .../import_compute_without_restrictions.yaml | 156 +- .../import_insights_without_restrictions.yaml | 156 +- ...ame_for_exec_def_bytes_limits_failure.yaml | 40 +- ...or_exec_def_dimensions_limits_failure.yaml | 40 +- .../dataframe_for_exec_def_one_dim1.yaml | 98 +- .../dataframe_for_exec_def_one_dim2.yaml | 98 +- .../dataframe_for_exec_def_totals1.yaml | 38 +- .../dataframe_for_exec_def_totals2.yaml | 158 +- .../dataframe_for_exec_def_totals3.yaml | 38 +- .../dataframe_for_exec_def_totals4.yaml | 126 +- .../dataframe_for_exec_def_two_dim1.yaml | 116 +- .../dataframe_for_exec_def_two_dim2.yaml | 58 +- .../dataframe_for_exec_def_two_dim3.yaml | 38 +- .../fixtures/dataframe_for_insight.yaml | 42 +- .../fixtures/dataframe_for_insight_date.yaml | 56 +- .../dataframe_for_insight_no_index.yaml | 42 +- .../fixtures/dataframe_for_items.yaml | 42 +- .../dataframe_for_items_no_index.yaml | 42 +- .../fixtures/empty_indexed_dataframe.yaml | 42 +- .../fixtures/empty_not_indexed_dataframe.yaml | 42 +- ...ulti_index_filtered_metrics_and_label.yaml | 42 +- ...ndex_filtered_metrics_and_label_reuse.yaml | 42 +- .../fixtures/multi_index_metrics.yaml | 42 +- .../multi_index_metrics_and_label.yaml | 112 +- ...t_indexed_filtered_metrics_and_labels.yaml | 42 +- .../fixtures/not_indexed_metrics.yaml | 42 +- .../not_indexed_metrics_and_labels.yaml | 42 +- ...mple_index_filtered_metrics_and_label.yaml | 42 +- .../fixtures/simple_index_metrics.yaml | 42 +- .../simple_index_metrics_and_label.yaml | 42 +- .../simple_index_metrics_no_duplicate.yaml | 42 +- .../fixtures/multi_index_filtered_series.yaml | 42 +- .../fixtures/multi_index_metric_series.yaml | 42 +- .../not_indexed_filtered_metric_series.yaml | 84 +- .../fixtures/not_indexed_label_series.yaml | 42 +- ...indexed_label_series_with_granularity.yaml | 42 +- .../fixtures/not_indexed_metric_series.yaml | 42 +- ...ndexed_metric_series_with_granularity.yaml | 42 +- .../simple_index_filtered_series.yaml | 42 +- .../fixtures/simple_index_label_series.yaml | 42 +- .../fixtures/simple_index_metric_series.yaml | 42 +- .../expected/declarative_workspaces.json | 3 + .../declarative_workspaces_snake_case.json | 9 +- .../fixtures/data_sources/bigquery.yaml | 15 +- .../declarative_data_sources.yaml | 344 +-- .../demo_generate_logical_model.yaml | 532 ++-- ...load_and_put_declarative_data_sources.yaml | 366 +-- .../demo_put_declarative_data_sources.yaml | 344 +-- ...t_declarative_data_sources_connection.yaml | 344 +-- .../demo_register_upload_notification.yaml | 4 +- ...tore_and_load_and_put_declarative_pdm.yaml | 312 +-- .../demo_store_declarative_data_sources.yaml | 348 +-- .../demo_test_declarative_data_sources.yaml | 172 +- .../demo_test_get_declarative_pdm.yaml | 152 +- .../demo_test_put_declarative_pdm.yaml | 152 +- ...emo_test_scan_and_put_declarative_pdm.yaml | 304 +-- .../catalog/fixtures/data_sources/dremio.yaml | 4 +- .../catalog/fixtures/data_sources/patch.yaml | 4 +- .../fixtures/data_sources/pdm_store_load.yaml | 304 +-- .../fixtures/data_sources/redshift.yaml | 4 +- .../fixtures/data_sources/snowflake.yaml | 4 +- .../data_sources/test_create_update.yaml | 6 +- .../fixtures/data_sources/vertica.yaml | 4 +- .../fixtures/organization/organization.yaml | 2 +- .../fixtures/organization/update_name.yaml | 18 +- .../organization/update_oidc_settings.yaml | 8 +- .../get_declarative_permissions.yaml | 40 +- .../put_declarative_permissions.yaml | 24 +- .../fixtures/users/create_delete_user.yaml | 32 +- .../users/create_delete_user_group.yaml | 2 +- .../fixtures/users/get_declarative_users.yaml | 20 +- .../get_declarative_users_user_groups.yaml | 64 +- .../catalog/fixtures/users/get_user.yaml | 2 +- .../catalog/fixtures/users/list_users.yaml | 4 +- .../load_and_put_declarative_user_groups.yaml | 20 +- .../users/load_and_put_declarative_users.yaml | 30 +- ...and_put_declarative_users_user_groups.yaml | 74 +- .../users/put_declarative_user_groups.yaml | 18 +- .../fixtures/users/put_declarative_users.yaml | 44 +- .../put_declarative_users_user_groups.yaml | 76 +- .../users/store_declarative_user_groups.yaml | 4 +- .../users/store_declarative_users.yaml | 24 +- .../store_declarative_users_user_groups.yaml | 68 +- .../catalog/fixtures/users/update_user.yaml | 26 +- .../analytics_store_load.yaml | 600 ++--- .../workspace_content/demo_catalog.yaml | 348 +-- .../demo_catalog_availability.yaml | 348 +-- .../demo_catalog_list_metrics.yaml | 254 +- .../demo_get_declarative_analytics_model.yaml | 300 +-- .../demo_get_declarative_ldm.yaml | 266 +- .../demo_get_dependent_entities_graph.yaml | 972 +++---- ...dent_entities_graph_from_entry_points.yaml | 14 +- ...and_modify_ds_and_put_declarative_ldm.yaml | 534 ++-- ...d_and_put_declarative_analytics_model.yaml | 870 +++--- .../demo_load_and_put_declarative_ldm.yaml | 536 ++-- .../demo_put_declarative_analytics_model.yaml | 272 +- .../demo_put_declarative_ldm.yaml | 534 ++-- ...emo_store_declarative_analytics_model.yaml | 604 ++--- .../demo_store_declarative_ldm.yaml | 536 ++-- .../workspace_content/ldm_store_load.yaml | 532 ++-- .../workspaces/demo_create_workspace.yaml | 2 +- .../demo_declarative_workspaces.yaml | 2006 +++++++------- .../workspaces/demo_delete_workspace.yaml | 2 +- .../demo_get_declarative_workspace.yaml | 1540 +++++------ ...et_declarative_workspace_data_filters.yaml | 60 +- .../demo_get_declarative_workspaces.yaml | 955 +++---- ...get_declarative_workspaces_snake_case.yaml | 955 +++---- ...mo_load_and_put_declarative_workspace.yaml | 2376 ++++++++-------- ...ut_declarative_workspace_data_filters.yaml | 62 +- ...o_load_and_put_declarative_workspaces.yaml | 965 +++---- .../demo_put_declarative_workspace.yaml | 2390 ++++++++--------- ...ut_declarative_workspace_data_filters.yaml | 60 +- .../demo_put_declarative_workspaces.yaml | 2334 ++++++++-------- .../demo_store_declarative_workspace.yaml | 1828 ++++++------- ...re_declarative_workspace_data_filters.yaml | 64 +- .../demo_store_declarative_workspaces.yaml | 2010 +++++++------- .../demo-bigquery-ds/demo-bigquery-ds.yaml | 7 +- .../tests/catalog/test_catalog_data_source.py | 9 +- gooddata-sdk/tests/gd_test_config.yaml | 2 + .../table_with_attribute_and_metric.yaml | 4 +- ...able_with_attribute_metric_and_filter.yaml | 4 +- .../fixtures/table_with_just_attribute.yaml | 4 +- .../fixtures/table_with_just_metric.yaml | 4 +- 128 files changed, 16023 insertions(+), 15953 deletions(-) diff --git a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_all_columns.yaml b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_all_columns.yaml index 1062ecbf8..805109cb4 100644 --- a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_all_columns.yaml +++ b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_all_columns.yaml @@ -178,10 +178,10 @@ interactions: name: Revenue localIdentifier: dim_1 links: - executionResult: a5e5fdd28b2e7b3e59c1f0f4b8ae7046f487d1cf + executionResult: 291d0a2480dbdfb81a2b99ec57c7ac97c022943c - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a5e5fdd28b2e7b3e59c1f0f4b8ae7046f487d1cf?offset=0%2C0&limit=512%2C256 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/291d0a2480dbdfb81a2b99ec57c7ac97c022943c?offset=0%2C0&limit=512%2C256 body: null headers: Accept: diff --git a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_metrics_only.yaml b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_metrics_only.yaml index d049108a8..6937f1fce 100644 --- a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_metrics_only.yaml +++ b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_metrics_only.yaml @@ -134,10 +134,10 @@ interactions: name: Revenue localIdentifier: dim_0 links: - executionResult: 1cae29c1976def45f44b6bbeb123b889138cb07e + executionResult: b505e8394ba7b6e5a0bb7aa5331d22eb0e403faa - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1cae29c1976def45f44b6bbeb123b889138cb07e?offset=0&limit=256 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/b505e8394ba7b6e5a0bb7aa5331d22eb0e403faa?offset=0&limit=256 body: null headers: Accept: diff --git a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml index b177cea47..c9b99c13d 100644 --- a/gooddata-fdw/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml +++ b/gooddata-fdw/tests/execute/fixtures/execute_compute_table_with_reduced_granularity.yaml @@ -135,10 +135,10 @@ interactions: name: Revenue localIdentifier: dim_1 links: - executionResult: e9472a37b58f6a1dfcc06dbe41b439df0bee8759 + executionResult: 22a3b1218e272c4ed70aeeaf86d5f72ecb6cd64f - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e9472a37b58f6a1dfcc06dbe41b439df0bee8759?offset=0%2C0&limit=512%2C256 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/22a3b1218e272c4ed70aeeaf86d5f72ecb6cd64f?offset=0%2C0&limit=512%2C256 body: null headers: Accept: diff --git a/gooddata-fdw/tests/execute/fixtures/execute_insight_all_columns.yaml b/gooddata-fdw/tests/execute/fixtures/execute_insight_all_columns.yaml index d282a4080..1ec199dea 100644 --- a/gooddata-fdw/tests/execute/fixtures/execute_insight_all_columns.yaml +++ b/gooddata-fdw/tests/execute/fixtures/execute_insight_all_columns.yaml @@ -447,10 +447,10 @@ interactions: name: Revenue localIdentifier: dim_1 links: - executionResult: bb22bf365b1fef1274fb534971f5f706759d916e + executionResult: cf3d6660f9c3d5fb5c8e4fabdebadccf751fa899 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/bb22bf365b1fef1274fb534971f5f706759d916e?offset=0%2C0&limit=512%2C256 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/cf3d6660f9c3d5fb5c8e4fabdebadccf751fa899?offset=0%2C0&limit=512%2C256 body: null headers: Accept: diff --git a/gooddata-fdw/tests/execute/fixtures/execute_insight_some_columns.yaml b/gooddata-fdw/tests/execute/fixtures/execute_insight_some_columns.yaml index d282a4080..1ec199dea 100644 --- a/gooddata-fdw/tests/execute/fixtures/execute_insight_some_columns.yaml +++ b/gooddata-fdw/tests/execute/fixtures/execute_insight_some_columns.yaml @@ -447,10 +447,10 @@ interactions: name: Revenue localIdentifier: dim_1 links: - executionResult: bb22bf365b1fef1274fb534971f5f706759d916e + executionResult: cf3d6660f9c3d5fb5c8e4fabdebadccf751fa899 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/bb22bf365b1fef1274fb534971f5f706759d916e?offset=0%2C0&limit=512%2C256 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/cf3d6660f9c3d5fb5c8e4fabdebadccf751fa899?offset=0%2C0&limit=512%2C256 body: null headers: Accept: diff --git a/gooddata-fdw/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml b/gooddata-fdw/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml index 161f6bd46..8b85ef411 100644 --- a/gooddata-fdw/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml +++ b/gooddata-fdw/tests/import_foreign_schema/fixtures/import_compute_without_restrictions.yaml @@ -212,10 +212,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -984,65 +984,6 @@ interactions: body: string: data: - - id: campaign_channels - type: dataset - attributes: - title: Campaign channels - description: Campaign channels - tags: - - Campaign channels - grain: - - id: campaign_channel_id - type: attribute - referenceProperties: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: demo-test-ds:campaign_channels - areRelationsValid: true - type: NORMAL - relationships: - attributes: - data: - - id: campaign_channel_id - type: attribute - - id: campaign_channels.category - type: attribute - - id: type - type: attribute - facts: - data: - - id: spend - type: fact - - id: budget - type: fact - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels - - id: campaigns - type: dataset - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute - dataSourceTableId: demo-test-ds:campaigns - areRelationsValid: true - type: NORMAL - relationships: - attributes: - data: - - id: campaign_name - type: attribute - - id: campaign_id - type: attribute - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns - id: customers type: dataset attributes: @@ -1087,11 +1028,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1099,11 +1040,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1160,38 +1101,97 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute links: self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date + - id: campaign_channels + type: dataset + attributes: + title: Campaign channels + description: Campaign channels + tags: + - Campaign channels + grain: + - id: campaign_channel_id + type: attribute + referenceProperties: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + dataSourceTableId: demo-test-ds:campaign_channels + areRelationsValid: true + type: NORMAL + relationships: + attributes: + data: + - id: campaign_channel_id + type: attribute + - id: campaign_channels.category + type: attribute + - id: type + type: attribute + facts: + data: + - id: spend + type: fact + - id: budget + type: fact + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels + - id: campaigns + type: dataset + attributes: + title: Campaigns + description: Campaigns + tags: + - Campaigns + grain: + - id: campaign_id + type: attribute + dataSourceTableId: demo-test-ds:campaigns + areRelationsValid: true + type: NORMAL + relationships: + attributes: + data: + - id: campaign_name + type: attribute + - id: campaign_id + type: attribute + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns included: - id: product_id type: attribute diff --git a/gooddata-fdw/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml b/gooddata-fdw/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml index a5b6a158b..32b751fac 100644 --- a/gooddata-fdw/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml +++ b/gooddata-fdw/tests/import_foreign_schema/fixtures/import_insights_without_restrictions.yaml @@ -212,10 +212,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -984,65 +984,6 @@ interactions: body: string: data: - - id: campaign_channels - type: dataset - attributes: - title: Campaign channels - description: Campaign channels - tags: - - Campaign channels - grain: - - id: campaign_channel_id - type: attribute - referenceProperties: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: demo-test-ds:campaign_channels - areRelationsValid: true - type: NORMAL - relationships: - attributes: - data: - - id: campaign_channel_id - type: attribute - - id: campaign_channels.category - type: attribute - - id: type - type: attribute - facts: - data: - - id: spend - type: fact - - id: budget - type: fact - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels - - id: campaigns - type: dataset - attributes: - title: Campaigns - description: Campaigns - tags: - - Campaigns - grain: - - id: campaign_id - type: attribute - dataSourceTableId: demo-test-ds:campaigns - areRelationsValid: true - type: NORMAL - relationships: - attributes: - data: - - id: campaign_name - type: attribute - - id: campaign_id - type: attribute - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns - id: customers type: dataset attributes: @@ -1087,11 +1028,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1099,11 +1040,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1160,38 +1101,97 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute links: self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date + - id: campaign_channels + type: dataset + attributes: + title: Campaign channels + description: Campaign channels + tags: + - Campaign channels + grain: + - id: campaign_channel_id + type: attribute + referenceProperties: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + dataSourceTableId: demo-test-ds:campaign_channels + areRelationsValid: true + type: NORMAL + relationships: + attributes: + data: + - id: campaign_channel_id + type: attribute + - id: campaign_channels.category + type: attribute + - id: type + type: attribute + facts: + data: + - id: spend + type: fact + - id: budget + type: fact + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaign_channels + - id: campaigns + type: dataset + attributes: + title: Campaigns + description: Campaigns + tags: + - Campaigns + grain: + - id: campaign_id + type: attribute + dataSourceTableId: demo-test-ds:campaigns + areRelationsValid: true + type: NORMAL + relationships: + attributes: + data: + - id: campaign_name + type: attribute + - id: campaign_id + type: attribute + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/campaigns included: - id: product_id type: attribute diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_bytes_limits_failure.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_bytes_limits_failure.yaml index 5a6eb85c6..d1b5f826b 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_bytes_limits_failure.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_bytes_limits_failure.yaml @@ -175,10 +175,10 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b + executionResult: 526c8e8a10e8e7363ffb95f57a7269421b08b814 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/526c8e8a10e8e7363ffb95f57a7269421b08b814/metadata body: null headers: Accept: @@ -338,7 +338,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b + executionResult: 526c8e8a10e8e7363ffb95f57a7269421b08b814 resultSpec: dimensions: - localIdentifier: dim_0 @@ -352,10 +352,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 7085 + resultSize: 7077 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/526c8e8a10e8e7363ffb95f57a7269421b08b814?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -378,7 +378,7 @@ interactions: Connection: - keep-alive Content-Length: - - '11303' + - '11295' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -423,14 +423,6 @@ interactions: body: string: data: - - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - 790.0 - 963.08 - 869.41 @@ -439,6 +431,14 @@ interactions: - 926.38 - 2664.71 - 2664.71 + - - 652.4 + - 712.22 + - 949.42 + - 1198.83 + - 759.31 + - 927.48 + - 3837.42 + - 3837.42 - - 2294.87 - 2725.93 - 2170.62 @@ -810,12 +810,12 @@ interactions: dimensionHeaders: - headerGroups: - headers: + - attributeHeader: + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -955,12 +955,12 @@ interactions: labelValue: Wisconsin primaryLabelValue: Wisconsin - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West + - attributeHeader: + labelValue: South + primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_dimensions_limits_failure.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_dimensions_limits_failure.yaml index 5a6eb85c6..d1b5f826b 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_dimensions_limits_failure.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_dimensions_limits_failure.yaml @@ -175,10 +175,10 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b + executionResult: 526c8e8a10e8e7363ffb95f57a7269421b08b814 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/526c8e8a10e8e7363ffb95f57a7269421b08b814/metadata body: null headers: Accept: @@ -338,7 +338,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b + executionResult: 526c8e8a10e8e7363ffb95f57a7269421b08b814 resultSpec: dimensions: - localIdentifier: dim_0 @@ -352,10 +352,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 7085 + resultSize: 7077 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/526c8e8a10e8e7363ffb95f57a7269421b08b814?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -378,7 +378,7 @@ interactions: Connection: - keep-alive Content-Length: - - '11303' + - '11295' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -423,14 +423,6 @@ interactions: body: string: data: - - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - 790.0 - 963.08 - 869.41 @@ -439,6 +431,14 @@ interactions: - 926.38 - 2664.71 - 2664.71 + - - 652.4 + - 712.22 + - 949.42 + - 1198.83 + - 759.31 + - 927.48 + - 3837.42 + - 3837.42 - - 2294.87 - 2725.93 - 2170.62 @@ -810,12 +810,12 @@ interactions: dimensionHeaders: - headerGroups: - headers: + - attributeHeader: + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -955,12 +955,12 @@ interactions: labelValue: Wisconsin primaryLabelValue: Wisconsin - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West + - attributeHeader: + labelValue: South + primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim1.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim1.yaml index 3a2735d9c..809e8b86a 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim1.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim1.yaml @@ -171,10 +171,10 @@ interactions: name: Order Amount localIdentifier: dim_0 links: - executionResult: 17b632097850c1249dbf2fa7ef42557c906fc3c5 + executionResult: 92613cfd865f7df6f311159987f46706cf41f158 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/92613cfd865f7df6f311159987f46706cf41f158/metadata body: null headers: Accept: @@ -332,7 +332,7 @@ interactions: name: Order Amount localIdentifier: dim_0 links: - executionResult: 17b632097850c1249dbf2fa7ef42557c906fc3c5 + executionResult: 92613cfd865f7df6f311159987f46706cf41f158 resultSpec: dimensions: - localIdentifier: dim_0 @@ -343,10 +343,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 34939 + resultSize: 34875 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=0&limit=100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/92613cfd865f7df6f311159987f46706cf41f158?offset=0&limit=100 body: null headers: Accept: @@ -1630,7 +1630,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=100&limit=100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/92613cfd865f7df6f311159987f46706cf41f158?offset=100&limit=100 body: null headers: Accept: @@ -2914,7 +2914,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=200&limit=100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/92613cfd865f7df6f311159987f46706cf41f158?offset=200&limit=100 body: null headers: Accept: @@ -2937,7 +2937,7 @@ interactions: Connection: - keep-alive Content-Length: - - '27287' + - '27223' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -3609,29 +3609,29 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -4198,7 +4198,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=300&limit=100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/92613cfd865f7df6f311159987f46706cf41f158?offset=300&limit=100 body: null headers: Accept: @@ -5050,7 +5050,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/92613cfd865f7df6f311159987f46706cf41f158/metadata body: null headers: Accept: @@ -5208,7 +5208,7 @@ interactions: name: Order Amount localIdentifier: dim_0 links: - executionResult: 17b632097850c1249dbf2fa7ef42557c906fc3c5 + executionResult: 92613cfd865f7df6f311159987f46706cf41f158 resultSpec: dimensions: - localIdentifier: dim_0 @@ -5219,10 +5219,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 34939 + resultSize: 34875 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=0&limit=100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/92613cfd865f7df6f311159987f46706cf41f158?offset=0&limit=100 body: null headers: Accept: @@ -6506,7 +6506,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=100&limit=100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/92613cfd865f7df6f311159987f46706cf41f158?offset=100&limit=100 body: null headers: Accept: @@ -7790,7 +7790,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=200&limit=100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/92613cfd865f7df6f311159987f46706cf41f158?offset=200&limit=100 body: null headers: Accept: @@ -7813,7 +7813,7 @@ interactions: Connection: - keep-alive Content-Length: - - '27287' + - '27223' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -8485,29 +8485,29 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -9074,7 +9074,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/17b632097850c1249dbf2fa7ef42557c906fc3c5?offset=300&limit=100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/92613cfd865f7df6f311159987f46706cf41f158?offset=300&limit=100 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim2.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim2.yaml index 3664ec3ff..96ae1b3ab 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim2.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_one_dim2.yaml @@ -175,10 +175,10 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 7d29bd098f97b6c1de86055380b33edc3f31971d + executionResult: 1e2f637d10f665b0e2a5ada884fefeaa69aca278 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1e2f637d10f665b0e2a5ada884fefeaa69aca278/metadata body: null headers: Accept: @@ -338,7 +338,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 7d29bd098f97b6c1de86055380b33edc3f31971d + executionResult: 1e2f637d10f665b0e2a5ada884fefeaa69aca278 resultSpec: dimensions: - localIdentifier: dim_0 @@ -352,10 +352,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 34954 + resultSize: 34890 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1e2f637d10f665b0e2a5ada884fefeaa69aca278?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -1643,7 +1643,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C100&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1e2f637d10f665b0e2a5ada884fefeaa69aca278?offset=0%2C100&limit=100%2C100 body: null headers: Accept: @@ -2931,7 +2931,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C200&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1e2f637d10f665b0e2a5ada884fefeaa69aca278?offset=0%2C200&limit=100%2C100 body: null headers: Accept: @@ -2954,7 +2954,7 @@ interactions: Connection: - keep-alive Content-Length: - - '27315' + - '27251' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -3627,29 +3627,29 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -4219,7 +4219,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C300&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1e2f637d10f665b0e2a5ada884fefeaa69aca278?offset=0%2C300&limit=100%2C100 body: null headers: Accept: @@ -5075,7 +5075,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1e2f637d10f665b0e2a5ada884fefeaa69aca278/metadata body: null headers: Accept: @@ -5235,7 +5235,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 7d29bd098f97b6c1de86055380b33edc3f31971d + executionResult: 1e2f637d10f665b0e2a5ada884fefeaa69aca278 resultSpec: dimensions: - localIdentifier: dim_0 @@ -5249,10 +5249,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 34954 + resultSize: 34890 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1e2f637d10f665b0e2a5ada884fefeaa69aca278?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -6540,7 +6540,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C100&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1e2f637d10f665b0e2a5ada884fefeaa69aca278?offset=0%2C100&limit=100%2C100 body: null headers: Accept: @@ -7828,7 +7828,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C200&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1e2f637d10f665b0e2a5ada884fefeaa69aca278?offset=0%2C200&limit=100%2C100 body: null headers: Accept: @@ -7851,7 +7851,7 @@ interactions: Connection: - keep-alive Content-Length: - - '27315' + - '27251' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -8524,29 +8524,29 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -9116,7 +9116,7 @@ interactions: - 364 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7d29bd098f97b6c1de86055380b33edc3f31971d?offset=0%2C300&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1e2f637d10f665b0e2a5ada884fefeaa69aca278?offset=0%2C300&limit=100%2C100 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals1.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals1.yaml index 0cae795a2..83d6c515d 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals1.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals1.yaml @@ -194,10 +194,10 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 23d0b5f5a16e315f3a49a4f27c5af33e3c854d90 + executionResult: 5181c982fbbf6cdf80054f92037d72f252f66547 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/23d0b5f5a16e315f3a49a4f27c5af33e3c854d90/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5181c982fbbf6cdf80054f92037d72f252f66547/metadata body: null headers: Accept: @@ -357,7 +357,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 23d0b5f5a16e315f3a49a4f27c5af33e3c854d90 + executionResult: 5181c982fbbf6cdf80054f92037d72f252f66547 resultSpec: dimensions: - localIdentifier: dim_0 @@ -389,10 +389,10 @@ interactions: - region - state - measureGroup - resultSize: 11124 + resultSize: 11108 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/23d0b5f5a16e315f3a49a4f27c5af33e3c854d90?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5181c982fbbf6cdf80054f92037d72f252f66547?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -415,7 +415,7 @@ interactions: Connection: - keep-alive Content-Length: - - '22935' + - '22919' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -1367,11 +1367,11 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -1846,7 +1846,7 @@ interactions: - 96 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/23d0b5f5a16e315f3a49a4f27c5af33e3c854d90/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5181c982fbbf6cdf80054f92037d72f252f66547/metadata body: null headers: Accept: @@ -2006,7 +2006,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 23d0b5f5a16e315f3a49a4f27c5af33e3c854d90 + executionResult: 5181c982fbbf6cdf80054f92037d72f252f66547 resultSpec: dimensions: - localIdentifier: dim_0 @@ -2038,10 +2038,10 @@ interactions: - region - state - measureGroup - resultSize: 11124 + resultSize: 11108 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/23d0b5f5a16e315f3a49a4f27c5af33e3c854d90?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5181c982fbbf6cdf80054f92037d72f252f66547?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -2064,7 +2064,7 @@ interactions: Connection: - keep-alive Content-Length: - - '22935' + - '22919' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -3016,11 +3016,11 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals2.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals2.yaml index 1b3152be2..1fb97f9a4 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals2.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals2.yaml @@ -192,10 +192,10 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888 + executionResult: 9ddde844043814d1b9b469ef95459018f6d8bfc4 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9ddde844043814d1b9b469ef95459018f6d8bfc4/metadata body: null headers: Accept: @@ -355,7 +355,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888 + executionResult: 9ddde844043814d1b9b469ef95459018f6d8bfc4 resultSpec: dimensions: - localIdentifier: dim_0 @@ -385,10 +385,10 @@ interactions: totalDimensionItems: - state - measureGroup - resultSize: 12250 + resultSize: 12234 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9ddde844043814d1b9b469ef95459018f6d8bfc4?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -411,7 +411,7 @@ interactions: Connection: - keep-alive Content-Length: - - '24559' + - '24543' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -1224,10 +1224,10 @@ interactions: - null - null - null - - - 652.4 - - 712.22 - - null + - - null - null + - 652.4 + - 712.22 - null - null - 527.93 @@ -1320,10 +1320,10 @@ interactions: - 681.94 - null - null - - - 949.42 - - 1198.83 - - null + - - null - null + - 949.42 + - 1198.83 - null - null - 316.18 @@ -1416,10 +1416,10 @@ interactions: - 750.01 - null - null - - - 759.31 - - 927.48 - - null + - - null - null + - 759.31 + - 927.48 - null - null - 454.73 @@ -1512,10 +1512,10 @@ interactions: - 1176.32 - null - null - - - 3837.42 - - 3837.42 - - null + - - null - null + - 3837.42 + - 3837.42 - null - null - 3384.84 @@ -1704,10 +1704,10 @@ interactions: - null - null - null - - - null - - null - - 790.0 + - - 790.0 - 963.08 + - null + - null - 2294.87 - 2725.93 - null @@ -1800,10 +1800,10 @@ interactions: - null - null - null - - - null - - null - - 869.41 + - - 869.41 - 890.67 + - null + - null - 2170.62 - 2380.37 - null @@ -1896,10 +1896,10 @@ interactions: - null - null - null - - - null - - null - - 659.24 + - - 659.24 - 926.38 + - null + - null - 2137.33 - 2158.09 - null @@ -1992,10 +1992,10 @@ interactions: - null - null - null - - - null - - null - - 2664.71 + - - 2664.71 - 2664.71 + - null + - null - 3676.86 - 3676.86 - null @@ -2196,18 +2196,18 @@ interactions: primaryLabelValue: Outdoor - headerGroups: - headers: + - attributeHeader: + labelValue: AK + primaryLabelValue: AK + - attributeHeader: + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -2680,10 +2680,10 @@ interactions: grandTotals: - data: - - null - - 3837.42 - - null - 2664.71 - null + - 3837.42 + - null - 3676.86 - null - 3384.84 @@ -2775,9 +2775,9 @@ interactions: - 1176.32 - null - 5646.42 - - - 6198.55 + - - 4983.36 - null - - 4983.36 + - 6198.55 - null - 10279.68 - null @@ -2897,7 +2897,7 @@ interactions: - 96 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9ddde844043814d1b9b469ef95459018f6d8bfc4/metadata body: null headers: Accept: @@ -3057,7 +3057,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888 + executionResult: 9ddde844043814d1b9b469ef95459018f6d8bfc4 resultSpec: dimensions: - localIdentifier: dim_0 @@ -3087,10 +3087,10 @@ interactions: totalDimensionItems: - state - measureGroup - resultSize: 12250 + resultSize: 12234 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f1ddb5ac0e6d3f47aea093fd1ab625d2dbca7888?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9ddde844043814d1b9b469ef95459018f6d8bfc4?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -3113,7 +3113,7 @@ interactions: Connection: - keep-alive Content-Length: - - '24559' + - '24543' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -3926,10 +3926,10 @@ interactions: - null - null - null - - - 652.4 - - 712.22 - - null + - - null - null + - 652.4 + - 712.22 - null - null - 527.93 @@ -4022,10 +4022,10 @@ interactions: - 681.94 - null - null - - - 949.42 - - 1198.83 - - null + - - null - null + - 949.42 + - 1198.83 - null - null - 316.18 @@ -4118,10 +4118,10 @@ interactions: - 750.01 - null - null - - - 759.31 - - 927.48 - - null + - - null - null + - 759.31 + - 927.48 - null - null - 454.73 @@ -4214,10 +4214,10 @@ interactions: - 1176.32 - null - null - - - 3837.42 - - 3837.42 - - null + - - null - null + - 3837.42 + - 3837.42 - null - null - 3384.84 @@ -4406,10 +4406,10 @@ interactions: - null - null - null - - - null - - null - - 790.0 + - - 790.0 - 963.08 + - null + - null - 2294.87 - 2725.93 - null @@ -4502,10 +4502,10 @@ interactions: - null - null - null - - - null - - null - - 869.41 + - - 869.41 - 890.67 + - null + - null - 2170.62 - 2380.37 - null @@ -4598,10 +4598,10 @@ interactions: - null - null - null - - - null - - null - - 659.24 + - - 659.24 - 926.38 + - null + - null - 2137.33 - 2158.09 - null @@ -4694,10 +4694,10 @@ interactions: - null - null - null - - - null - - null - - 2664.71 + - - 2664.71 - 2664.71 + - null + - null - 3676.86 - 3676.86 - null @@ -4898,18 +4898,18 @@ interactions: primaryLabelValue: Outdoor - headerGroups: - headers: + - attributeHeader: + labelValue: AK + primaryLabelValue: AK + - attributeHeader: + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -5382,10 +5382,10 @@ interactions: grandTotals: - data: - - null - - 3837.42 - - null - 2664.71 - null + - 3837.42 + - null - 3676.86 - null - 3384.84 @@ -5477,9 +5477,9 @@ interactions: - 1176.32 - null - 5646.42 - - - 6198.55 + - - 4983.36 - null - - 4983.36 + - 6198.55 - null - 10279.68 - null diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals3.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals3.yaml index 59fd7ba88..ebb9547bc 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals3.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals3.yaml @@ -194,10 +194,10 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: a4506d758df1e0244e029f1da155c2a3493311db + executionResult: e73c7f66e2f4df26d86143222f2feb2b5195ac10 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4506d758df1e0244e029f1da155c2a3493311db/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e73c7f66e2f4df26d86143222f2feb2b5195ac10/metadata body: null headers: Accept: @@ -357,7 +357,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: a4506d758df1e0244e029f1da155c2a3493311db + executionResult: e73c7f66e2f4df26d86143222f2feb2b5195ac10 resultSpec: dimensions: - localIdentifier: dim_0 @@ -389,10 +389,10 @@ interactions: - region - state - measureGroup - resultSize: 11856 + resultSize: 11840 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4506d758df1e0244e029f1da155c2a3493311db?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e73c7f66e2f4df26d86143222f2feb2b5195ac10?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -415,7 +415,7 @@ interactions: Connection: - keep-alive Content-Length: - - '23307' + - '23291' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -1353,11 +1353,11 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -1846,7 +1846,7 @@ interactions: - 4 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4506d758df1e0244e029f1da155c2a3493311db/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e73c7f66e2f4df26d86143222f2feb2b5195ac10/metadata body: null headers: Accept: @@ -2006,7 +2006,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: a4506d758df1e0244e029f1da155c2a3493311db + executionResult: e73c7f66e2f4df26d86143222f2feb2b5195ac10 resultSpec: dimensions: - localIdentifier: dim_0 @@ -2038,10 +2038,10 @@ interactions: - region - state - measureGroup - resultSize: 11856 + resultSize: 11840 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a4506d758df1e0244e029f1da155c2a3493311db?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e73c7f66e2f4df26d86143222f2feb2b5195ac10?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -2064,7 +2064,7 @@ interactions: Connection: - keep-alive Content-Length: - - '23307' + - '23291' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -3002,11 +3002,11 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals4.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals4.yaml index c8b3ccd42..66692ebb9 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals4.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_totals4.yaml @@ -192,10 +192,10 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: c388dc3633e6b45781a4ecedca938a5e98c0f623 + executionResult: 9da81a85c749eb1b13a09ddfec054abb9a78da60 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/c388dc3633e6b45781a4ecedca938a5e98c0f623/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9da81a85c749eb1b13a09ddfec054abb9a78da60/metadata body: null headers: Accept: @@ -355,7 +355,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: c388dc3633e6b45781a4ecedca938a5e98c0f623 + executionResult: 9da81a85c749eb1b13a09ddfec054abb9a78da60 resultSpec: dimensions: - localIdentifier: dim_0 @@ -385,10 +385,10 @@ interactions: totalDimensionItems: - state - measureGroup - resultSize: 12904 + resultSize: 12888 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/c388dc3633e6b45781a4ecedca938a5e98c0f623?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9da81a85c749eb1b13a09ddfec054abb9a78da60?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -411,7 +411,7 @@ interactions: Connection: - keep-alive Content-Length: - - '24905' + - '24889' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -464,15 +464,15 @@ interactions: - null - null - null - - 652.4 - - 949.42 - - 759.31 - - 3837.42 - null - null - null - null - null + - 790.0 + - 869.41 + - 659.24 + - 2664.71 - - null - null - null @@ -481,15 +481,15 @@ interactions: - null - null - null - - 712.22 - - 1198.83 - - 927.48 - - 3837.42 - null - null - null - null - null + - 963.08 + - 890.67 + - 926.38 + - 2664.71 - - null - null - null @@ -498,15 +498,15 @@ interactions: - null - null - null + - 652.4 + - 949.42 + - 759.31 + - 3837.42 - null - null - null - null - null - - 790.0 - - 869.41 - - 659.24 - - 2664.71 - - null - null - null @@ -515,15 +515,15 @@ interactions: - null - null - null + - 712.22 + - 1198.83 + - 927.48 + - 3837.42 - null - null - null - null - null - - 963.08 - - 890.67 - - 926.38 - - 2664.71 - - null - null - null @@ -2091,18 +2091,18 @@ interactions: dimensionHeaders: - headerGroups: - headers: + - attributeHeader: + labelValue: AK + primaryLabelValue: AK + - attributeHeader: + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -2679,14 +2679,14 @@ interactions: primaryLabelValue: Outdoor grandTotals: - data: - - - null - - 6198.55 - - - 3837.42 - - null - - null - 4983.36 - - 2664.71 - null + - - null + - 6198.55 + - - 3837.42 + - null - - null - 10279.68 - - 3676.86 @@ -2897,7 +2897,7 @@ interactions: - 17 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/c388dc3633e6b45781a4ecedca938a5e98c0f623/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9da81a85c749eb1b13a09ddfec054abb9a78da60/metadata body: null headers: Accept: @@ -3057,7 +3057,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: c388dc3633e6b45781a4ecedca938a5e98c0f623 + executionResult: 9da81a85c749eb1b13a09ddfec054abb9a78da60 resultSpec: dimensions: - localIdentifier: dim_0 @@ -3087,10 +3087,10 @@ interactions: totalDimensionItems: - state - measureGroup - resultSize: 12904 + resultSize: 12888 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/c388dc3633e6b45781a4ecedca938a5e98c0f623?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9da81a85c749eb1b13a09ddfec054abb9a78da60?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -3113,7 +3113,7 @@ interactions: Connection: - keep-alive Content-Length: - - '24905' + - '24889' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -3166,15 +3166,15 @@ interactions: - null - null - null - - 652.4 - - 949.42 - - 759.31 - - 3837.42 - null - null - null - null - null + - 790.0 + - 869.41 + - 659.24 + - 2664.71 - - null - null - null @@ -3183,15 +3183,15 @@ interactions: - null - null - null - - 712.22 - - 1198.83 - - 927.48 - - 3837.42 - null - null - null - null - null + - 963.08 + - 890.67 + - 926.38 + - 2664.71 - - null - null - null @@ -3200,15 +3200,15 @@ interactions: - null - null - null + - 652.4 + - 949.42 + - 759.31 + - 3837.42 - null - null - null - null - null - - 790.0 - - 869.41 - - 659.24 - - 2664.71 - - null - null - null @@ -3217,15 +3217,15 @@ interactions: - null - null - null + - 712.22 + - 1198.83 + - 927.48 + - 3837.42 - null - null - null - null - null - - 963.08 - - 890.67 - - 926.38 - - 2664.71 - - null - null - null @@ -4793,18 +4793,18 @@ interactions: dimensionHeaders: - headerGroups: - headers: + - attributeHeader: + labelValue: AK + primaryLabelValue: AK + - attributeHeader: + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -5381,14 +5381,14 @@ interactions: primaryLabelValue: Outdoor grandTotals: - data: - - - null - - 6198.55 - - - 3837.42 - - null - - null - 4983.36 - - 2664.71 - null + - - null + - 6198.55 + - - 3837.42 + - null - - null - 10279.68 - - 3676.86 diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim1.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim1.yaml index d6ea11b92..7b79efb29 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim1.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim1.yaml @@ -175,10 +175,10 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b + executionResult: 526c8e8a10e8e7363ffb95f57a7269421b08b814 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/526c8e8a10e8e7363ffb95f57a7269421b08b814/metadata body: null headers: Accept: @@ -338,7 +338,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b + executionResult: 526c8e8a10e8e7363ffb95f57a7269421b08b814 resultSpec: dimensions: - localIdentifier: dim_0 @@ -352,10 +352,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 7085 + resultSize: 7077 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/526c8e8a10e8e7363ffb95f57a7269421b08b814?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -378,7 +378,7 @@ interactions: Connection: - keep-alive Content-Length: - - '11303' + - '11295' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -423,14 +423,6 @@ interactions: body: string: data: - - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - 790.0 - 963.08 - 869.41 @@ -439,6 +431,14 @@ interactions: - 926.38 - 2664.71 - 2664.71 + - - 652.4 + - 712.22 + - 949.42 + - 1198.83 + - 759.31 + - 927.48 + - 3837.42 + - 3837.42 - - 2294.87 - 2725.93 - 2170.62 @@ -810,12 +810,12 @@ interactions: dimensionHeaders: - headerGroups: - headers: + - attributeHeader: + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -955,12 +955,12 @@ interactions: labelValue: Wisconsin primaryLabelValue: Wisconsin - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West + - attributeHeader: + labelValue: South + primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West @@ -1155,7 +1155,7 @@ interactions: - 8 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/526c8e8a10e8e7363ffb95f57a7269421b08b814/metadata body: null headers: Accept: @@ -1315,7 +1315,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b + executionResult: 526c8e8a10e8e7363ffb95f57a7269421b08b814 resultSpec: dimensions: - localIdentifier: dim_0 @@ -1329,10 +1329,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 7085 + resultSize: 7077 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/526c8e8a10e8e7363ffb95f57a7269421b08b814?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -1355,7 +1355,7 @@ interactions: Connection: - keep-alive Content-Length: - - '11303' + - '11295' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -1400,14 +1400,6 @@ interactions: body: string: data: - - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - 790.0 - 963.08 - 869.41 @@ -1416,6 +1408,14 @@ interactions: - 926.38 - 2664.71 - 2664.71 + - - 652.4 + - 712.22 + - 949.42 + - 1198.83 + - 759.31 + - 927.48 + - 3837.42 + - 3837.42 - - 2294.87 - 2725.93 - 2170.62 @@ -1787,12 +1787,12 @@ interactions: dimensionHeaders: - headerGroups: - headers: + - attributeHeader: + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -1932,12 +1932,12 @@ interactions: labelValue: Wisconsin primaryLabelValue: Wisconsin - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West + - attributeHeader: + labelValue: South + primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West @@ -2132,7 +2132,7 @@ interactions: - 8 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/526c8e8a10e8e7363ffb95f57a7269421b08b814/metadata body: null headers: Accept: @@ -2292,7 +2292,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 84f17ec92e4c381193ecb617a58cef6bf68bf00b + executionResult: 526c8e8a10e8e7363ffb95f57a7269421b08b814 resultSpec: dimensions: - localIdentifier: dim_0 @@ -2306,10 +2306,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 7085 + resultSize: 7077 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/84f17ec92e4c381193ecb617a58cef6bf68bf00b?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/526c8e8a10e8e7363ffb95f57a7269421b08b814?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -2332,7 +2332,7 @@ interactions: Connection: - keep-alive Content-Length: - - '11303' + - '11295' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -2377,14 +2377,6 @@ interactions: body: string: data: - - - 652.4 - - 712.22 - - 949.42 - - 1198.83 - - 759.31 - - 927.48 - - 3837.42 - - 3837.42 - - 790.0 - 963.08 - 869.41 @@ -2393,6 +2385,14 @@ interactions: - 926.38 - 2664.71 - 2664.71 + - - 652.4 + - 712.22 + - 949.42 + - 1198.83 + - 759.31 + - 927.48 + - 3837.42 + - 3837.42 - - 2294.87 - 2725.93 - 2170.62 @@ -2764,12 +2764,12 @@ interactions: dimensionHeaders: - headerGroups: - headers: + - attributeHeader: + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -2909,12 +2909,12 @@ interactions: labelValue: Wisconsin primaryLabelValue: Wisconsin - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West + - attributeHeader: + labelValue: South + primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim2.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim2.yaml index 56ee2ba62..508475958 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim2.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim2.yaml @@ -175,10 +175,10 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74 + executionResult: 7ffa1c4567af7c522a41a0a95bf42d714b82067f - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7ffa1c4567af7c522a41a0a95bf42d714b82067f/metadata body: null headers: Accept: @@ -338,7 +338,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74 + executionResult: 7ffa1c4567af7c522a41a0a95bf42d714b82067f resultSpec: dimensions: - localIdentifier: dim_0 @@ -352,10 +352,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 19322 + resultSize: 19290 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7ffa1c4567af7c522a41a0a95bf42d714b82067f?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -1547,7 +1547,7 @@ interactions: - 2 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74?offset=100%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7ffa1c4567af7c522a41a0a95bf42d714b82067f?offset=100%2C0&limit=100%2C100 body: null headers: Accept: @@ -1570,7 +1570,7 @@ interactions: Connection: - keep-alive Content-Length: - - '20020' + - '19988' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -2141,17 +2141,17 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -2541,7 +2541,7 @@ interactions: - 2 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7ffa1c4567af7c522a41a0a95bf42d714b82067f/metadata body: null headers: Accept: @@ -2701,7 +2701,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74 + executionResult: 7ffa1c4567af7c522a41a0a95bf42d714b82067f resultSpec: dimensions: - localIdentifier: dim_0 @@ -2715,10 +2715,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 19322 + resultSize: 19290 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7ffa1c4567af7c522a41a0a95bf42d714b82067f?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -3910,7 +3910,7 @@ interactions: - 2 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7a0f94c7d57b64d70eec8af9e96eb3aba45f5c74?offset=100%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7ffa1c4567af7c522a41a0a95bf42d714b82067f?offset=100%2C0&limit=100%2C100 body: null headers: Accept: @@ -3933,7 +3933,7 @@ interactions: Connection: - keep-alive Content-Length: - - '20020' + - '19988' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -4504,17 +4504,17 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim3.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim3.yaml index 178bc5c5d..fd97821b3 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim3.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_exec_def_two_dim3.yaml @@ -175,10 +175,10 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 6380a6add557a8e94371c6b11907d1440e03fe1a + executionResult: 399727321b4c955ae594570e971b9cae4013b1ff - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6380a6add557a8e94371c6b11907d1440e03fe1a/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/399727321b4c955ae594570e971b9cae4013b1ff/metadata body: null headers: Accept: @@ -338,7 +338,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 6380a6add557a8e94371c6b11907d1440e03fe1a + executionResult: 399727321b4c955ae594570e971b9cae4013b1ff resultSpec: dimensions: - localIdentifier: dim_0 @@ -352,10 +352,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 9802 + resultSize: 9786 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6380a6add557a8e94371c6b11907d1440e03fe1a?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/399727321b4c955ae594570e971b9cae4013b1ff?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -378,7 +378,7 @@ interactions: Connection: - keep-alive Content-Length: - - '21425' + - '21409' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -1330,11 +1330,11 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -1607,7 +1607,7 @@ interactions: - 96 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6380a6add557a8e94371c6b11907d1440e03fe1a/metadata + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/399727321b4c955ae594570e971b9cae4013b1ff/metadata body: null headers: Accept: @@ -1767,7 +1767,7 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 6380a6add557a8e94371c6b11907d1440e03fe1a + executionResult: 399727321b4c955ae594570e971b9cae4013b1ff resultSpec: dimensions: - localIdentifier: dim_0 @@ -1781,10 +1781,10 @@ interactions: - measureGroup sorting: [] totals: [] - resultSize: 9802 + resultSize: 9786 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6380a6add557a8e94371c6b11907d1440e03fe1a?offset=0%2C0&limit=100%2C100 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/399727321b4c955ae594570e971b9cae4013b1ff?offset=0%2C0&limit=100%2C100 body: null headers: Accept: @@ -1807,7 +1807,7 @@ interactions: Connection: - keep-alive Content-Length: - - '21425' + - '21409' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -2759,11 +2759,11 @@ interactions: labelValue: Rhode Island primaryLabelValue: Rhode Island - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight.yaml index 6ebd31652..a2f4d5267 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight.yaml @@ -447,7 +447,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 39629ea17d4aa7d0989318427674da3d1f769782 + executionResult: 6f08a8028052b391af4882856aa74ef36deff1fa - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -658,10 +658,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1533,11 +1533,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1545,11 +1545,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1606,33 +1606,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2312,7 +2312,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/39629ea17d4aa7d0989318427674da3d1f769782?offset=0%2C0&limit=4%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6f08a8028052b391af4882856aa74ef36deff1fa?offset=0%2C0&limit=4%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_date.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_date.yaml index 98d2ffcbc..9ed23deff 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_date.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_date.yaml @@ -346,7 +346,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 72dd59d1c5043cd137f6e1fef420239e1eae2dca + executionResult: 8c94c8fc568ebe95dc2cd0494109159b461d836f - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -557,10 +557,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1432,11 +1432,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1444,11 +1444,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1505,33 +1505,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2211,7 +2211,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/72dd59d1c5043cd137f6e1fef420239e1eae2dca?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/8c94c8fc568ebe95dc2cd0494109159b461d836f?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: @@ -2234,7 +2234,7 @@ interactions: Connection: - keep-alive Content-Length: - - '1415' + - '1409' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -2279,9 +2279,9 @@ interactions: body: string: data: - - - 57.0 - - 87.0 - - 63.0 + - - 56.0 + - 88.0 + - 65.0 - 61.0 - 70.0 - 53.0 @@ -2291,9 +2291,9 @@ interactions: - 95.0 - 110.0 - 91.0 - - - 167.8428 - - 182.3487341772152 - - 176.9677358490566 + - - 170.1824 + - 178.174875 + - 174.79036363636362 - 150.10735849056604 - 110.63396825396825 - 164.63276595744682 diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_no_index.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_no_index.yaml index 6ebd31652..a2f4d5267 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_no_index.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_insight_no_index.yaml @@ -447,7 +447,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 39629ea17d4aa7d0989318427674da3d1f769782 + executionResult: 6f08a8028052b391af4882856aa74ef36deff1fa - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -658,10 +658,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1533,11 +1533,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1545,11 +1545,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1606,33 +1606,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2312,7 +2312,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/39629ea17d4aa7d0989318427674da3d1f769782?offset=0%2C0&limit=4%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6f08a8028052b391af4882856aa74ef36deff1fa?offset=0%2C0&limit=4%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items.yaml index a403a572a..6d1ebbe70 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items.yaml @@ -155,7 +155,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 41ced45171703502426f482466c89e5ba2a8cda2 + executionResult: e164f18dc97810a2291b9de359c293347b75ad74 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -366,10 +366,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1241,11 +1241,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1253,11 +1253,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1314,33 +1314,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2020,7 +2020,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/41ced45171703502426f482466c89e5ba2a8cda2?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e164f18dc97810a2291b9de359c293347b75ad74?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items_no_index.yaml b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items_no_index.yaml index a403a572a..6d1ebbe70 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items_no_index.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/dataframe_for_items_no_index.yaml @@ -155,7 +155,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 41ced45171703502426f482466c89e5ba2a8cda2 + executionResult: e164f18dc97810a2291b9de359c293347b75ad74 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -366,10 +366,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1241,11 +1241,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1253,11 +1253,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1314,33 +1314,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2020,7 +2020,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/41ced45171703502426f482466c89e5ba2a8cda2?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e164f18dc97810a2291b9de359c293347b75ad74?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/empty_indexed_dataframe.yaml b/gooddata-pandas/tests/dataframe/fixtures/empty_indexed_dataframe.yaml index 8574b4b6f..40e52e9bc 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/empty_indexed_dataframe.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/empty_indexed_dataframe.yaml @@ -136,7 +136,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 649dc53f019b865f20b5d8dafbfaf5a2e0686098 + executionResult: 03a3eba179a039c449c1527a9f75a0b803775bad - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -347,10 +347,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1222,11 +1222,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1234,11 +1234,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1295,33 +1295,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2001,7 +2001,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/649dc53f019b865f20b5d8dafbfaf5a2e0686098?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/03a3eba179a039c449c1527a9f75a0b803775bad?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/empty_not_indexed_dataframe.yaml b/gooddata-pandas/tests/dataframe/fixtures/empty_not_indexed_dataframe.yaml index 8574b4b6f..40e52e9bc 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/empty_not_indexed_dataframe.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/empty_not_indexed_dataframe.yaml @@ -136,7 +136,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 649dc53f019b865f20b5d8dafbfaf5a2e0686098 + executionResult: 03a3eba179a039c449c1527a9f75a0b803775bad - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -347,10 +347,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1222,11 +1222,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1234,11 +1234,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1295,33 +1295,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2001,7 +2001,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/649dc53f019b865f20b5d8dafbfaf5a2e0686098?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/03a3eba179a039c449c1527a9f75a0b803775bad?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label.yaml b/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label.yaml index de5830800..e7e869c36 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label.yaml @@ -189,7 +189,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 477461adc642356812c88771a6b2abe4772952f5 + executionResult: cfab6006a21a2f31a5556a8d9862c824417ffe30 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -400,10 +400,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1275,11 +1275,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1287,11 +1287,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1348,33 +1348,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2054,7 +2054,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/477461adc642356812c88771a6b2abe4772952f5?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/cfab6006a21a2f31a5556a8d9862c824417ffe30?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label_reuse.yaml b/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label_reuse.yaml index 9dd6ffb06..c97c46dc6 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label_reuse.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/multi_index_filtered_metrics_and_label_reuse.yaml @@ -164,7 +164,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 431b392d29be2bd61d03542d0466949b21271041 + executionResult: 6bfe88d92f79053ae4d9e56666c985817a7d07f1 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -375,10 +375,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1250,11 +1250,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1262,11 +1262,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1323,33 +1323,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2029,7 +2029,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/431b392d29be2bd61d03542d0466949b21271041?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6bfe88d92f79053ae4d9e56666c985817a7d07f1?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics.yaml b/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics.yaml index 00afbc83a..7089db0cb 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics.yaml @@ -156,7 +156,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 23bc7f2885c9b944a7109ee73e71e5c266f629c1 + executionResult: f289a80678729b36340c55bbbd6a54dcb1e45dcd - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -367,10 +367,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1242,11 +1242,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1254,11 +1254,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1315,33 +1315,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2021,7 +2021,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/23bc7f2885c9b944a7109ee73e71e5c266f629c1?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/f289a80678729b36340c55bbbd6a54dcb1e45dcd?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics_and_label.yaml b/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics_and_label.yaml index 98ca843fb..f63d537ae 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics_and_label.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/multi_index_metrics_and_label.yaml @@ -176,7 +176,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 64e30a3deef2e1926eafde81868c2c7864bd03aa + executionResult: c1dc5fd5419dee5fa6b521f43b60067cfd9afbf0 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -387,10 +387,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1262,11 +1262,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1274,11 +1274,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1335,33 +1335,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2041,7 +2041,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/64e30a3deef2e1926eafde81868c2c7864bd03aa?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/c1dc5fd5419dee5fa6b521f43b60067cfd9afbf0?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: @@ -2064,7 +2064,7 @@ interactions: Connection: - keep-alive Content-Length: - - '43803' + - '43771' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -2109,14 +2109,14 @@ interactions: body: string: data: - - - 712.22 - - 1198.83 - - 927.48 - - 3837.42 - - 963.08 + - - 963.08 - 890.67 - 926.38 - 2664.71 + - 712.22 + - 1198.83 + - 927.48 + - 3837.42 - 2725.93 - 2380.37 - 2158.09 @@ -2291,14 +2291,14 @@ interactions: - 2638.54 - 1684.95 - 5646.42 - - - 19.0 - - 14.0 - - 12.0 - - 3.0 - - 21.0 + - - 21.0 - 11.0 - 7.0 - 3.0 + - 19.0 + - 14.0 + - 12.0 + - 3.0 - 60.0 - 35.0 - 25.0 @@ -2482,6 +2482,18 @@ interactions: measureIndex: 1 - headerGroups: - headers: + - attributeHeader: + labelValue: AK + primaryLabelValue: AK + - attributeHeader: + labelValue: AK + primaryLabelValue: AK + - attributeHeader: + labelValue: AK + primaryLabelValue: AK + - attributeHeader: + labelValue: AK + primaryLabelValue: AK - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama @@ -2494,18 +2506,6 @@ interactions: - attributeHeader: labelValue: Alabama primaryLabelValue: Alabama - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - - attributeHeader: - labelValue: Alaska - primaryLabelValue: Alaska - attributeHeader: labelValue: Arizona primaryLabelValue: Arizona @@ -3029,18 +3029,6 @@ interactions: labelValue: Wisconsin primaryLabelValue: Wisconsin - headers: - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - - attributeHeader: - labelValue: South - primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West @@ -3053,6 +3041,18 @@ interactions: - attributeHeader: labelValue: West primaryLabelValue: West + - attributeHeader: + labelValue: South + primaryLabelValue: South + - attributeHeader: + labelValue: South + primaryLabelValue: South + - attributeHeader: + labelValue: South + primaryLabelValue: South + - attributeHeader: + labelValue: South + primaryLabelValue: South - attributeHeader: labelValue: West primaryLabelValue: West diff --git a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_filtered_metrics_and_labels.yaml b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_filtered_metrics_and_labels.yaml index 3c7c0d5b7..a90cae0cf 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_filtered_metrics_and_labels.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_filtered_metrics_and_labels.yaml @@ -144,7 +144,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 5e78f41b20eba30908244d6e912ffce1cde42163 + executionResult: 66ca79d5442e847334f885e435b82646162c922e - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -355,10 +355,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1230,11 +1230,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1242,11 +1242,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1303,33 +1303,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2009,7 +2009,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5e78f41b20eba30908244d6e912ffce1cde42163?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/66ca79d5442e847334f885e435b82646162c922e?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics.yaml b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics.yaml index 2882fe08e..6366fc6b3 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics.yaml @@ -112,7 +112,7 @@ interactions: name: '# of Orders' localIdentifier: dim_0 links: - executionResult: 16b2cf5db5fccef3bcc33496688ae73501e82b36 + executionResult: bb2e945fc88ab16955810e3aa74ae9527dc0e60f - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -323,10 +323,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1198,11 +1198,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1210,11 +1210,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1271,33 +1271,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -1977,7 +1977,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/16b2cf5db5fccef3bcc33496688ae73501e82b36?offset=0&limit=2 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/bb2e945fc88ab16955810e3aa74ae9527dc0e60f?offset=0&limit=2 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics_and_labels.yaml b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics_and_labels.yaml index 571b57f3c..38139ff8e 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics_and_labels.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/not_indexed_metrics_and_labels.yaml @@ -136,7 +136,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: c9d858b213fb44c88ec200d4685889b62380f7a6 + executionResult: a6280b20801b0f5e3eb41f147e22e6d331fb4181 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -347,10 +347,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1222,11 +1222,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1234,11 +1234,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1295,33 +1295,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2001,7 +2001,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/c9d858b213fb44c88ec200d4685889b62380f7a6?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a6280b20801b0f5e3eb41f147e22e6d331fb4181?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/simple_index_filtered_metrics_and_label.yaml b/gooddata-pandas/tests/dataframe/fixtures/simple_index_filtered_metrics_and_label.yaml index 16af93bf8..cad357bef 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/simple_index_filtered_metrics_and_label.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/simple_index_filtered_metrics_and_label.yaml @@ -191,7 +191,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 6ef6dff44f4971360e367fb30836e582943a0047 + executionResult: e64da965189157e70c0ee9935aa473844d76985f - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -402,10 +402,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1277,11 +1277,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1289,11 +1289,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1350,33 +1350,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2056,7 +2056,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/6ef6dff44f4971360e367fb30836e582943a0047?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e64da965189157e70c0ee9935aa473844d76985f?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics.yaml b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics.yaml index 861ab0f43..dc4df4b37 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics.yaml @@ -143,7 +143,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 7f71176d6b2f13d605a5f6c8608d83d143e24295 + executionResult: 75e524764b6b8a109f2beae03a072ccea5778961 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -354,10 +354,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1229,11 +1229,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1241,11 +1241,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1302,33 +1302,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2008,7 +2008,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7f71176d6b2f13d605a5f6c8608d83d143e24295?offset=0%2C0&limit=1%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/75e524764b6b8a109f2beae03a072ccea5778961?offset=0%2C0&limit=1%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_and_label.yaml b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_and_label.yaml index d8c0d2186..c372eff76 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_and_label.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_and_label.yaml @@ -134,7 +134,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 541e7dbfa848a5a40cc0040ce5c28270d2ce8ad2 + executionResult: 147dc618dc031c5a28ed11b56c0a7be1e4d84589 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -345,10 +345,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1220,11 +1220,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1232,11 +1232,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1293,33 +1293,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -1999,7 +1999,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/541e7dbfa848a5a40cc0040ce5c28270d2ce8ad2?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/147dc618dc031c5a28ed11b56c0a7be1e4d84589?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_no_duplicate.yaml b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_no_duplicate.yaml index d8c0d2186..c372eff76 100644 --- a/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_no_duplicate.yaml +++ b/gooddata-pandas/tests/dataframe/fixtures/simple_index_metrics_no_duplicate.yaml @@ -134,7 +134,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 541e7dbfa848a5a40cc0040ce5c28270d2ce8ad2 + executionResult: 147dc618dc031c5a28ed11b56c0a7be1e4d84589 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -345,10 +345,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1220,11 +1220,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1232,11 +1232,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1293,33 +1293,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -1999,7 +1999,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/541e7dbfa848a5a40cc0040ce5c28270d2ce8ad2?offset=0%2C0&limit=2%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/147dc618dc031c5a28ed11b56c0a7be1e4d84589?offset=0%2C0&limit=2%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/series/fixtures/multi_index_filtered_series.yaml b/gooddata-pandas/tests/series/fixtures/multi_index_filtered_series.yaml index 64ab124b8..33e26c998 100644 --- a/gooddata-pandas/tests/series/fixtures/multi_index_filtered_series.yaml +++ b/gooddata-pandas/tests/series/fixtures/multi_index_filtered_series.yaml @@ -151,7 +151,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 1f7a253f4aa30349990307f5e9802f2462b28a73 + executionResult: 9c711d83537ccd82bde208df93a8ed317cb84279 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -362,10 +362,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1237,11 +1237,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1249,11 +1249,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1310,33 +1310,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2016,7 +2016,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1f7a253f4aa30349990307f5e9802f2462b28a73?offset=0%2C0&limit=1%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/9c711d83537ccd82bde208df93a8ed317cb84279?offset=0%2C0&limit=1%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/series/fixtures/multi_index_metric_series.yaml b/gooddata-pandas/tests/series/fixtures/multi_index_metric_series.yaml index 861ab0f43..dc4df4b37 100644 --- a/gooddata-pandas/tests/series/fixtures/multi_index_metric_series.yaml +++ b/gooddata-pandas/tests/series/fixtures/multi_index_metric_series.yaml @@ -143,7 +143,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: 7f71176d6b2f13d605a5f6c8608d83d143e24295 + executionResult: 75e524764b6b8a109f2beae03a072ccea5778961 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -354,10 +354,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1229,11 +1229,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1241,11 +1241,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1302,33 +1302,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2008,7 +2008,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/7f71176d6b2f13d605a5f6c8608d83d143e24295?offset=0%2C0&limit=1%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/75e524764b6b8a109f2beae03a072ccea5778961?offset=0%2C0&limit=1%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/series/fixtures/not_indexed_filtered_metric_series.yaml b/gooddata-pandas/tests/series/fixtures/not_indexed_filtered_metric_series.yaml index b5bd3cb2b..0ac2614d8 100644 --- a/gooddata-pandas/tests/series/fixtures/not_indexed_filtered_metric_series.yaml +++ b/gooddata-pandas/tests/series/fixtures/not_indexed_filtered_metric_series.yaml @@ -99,7 +99,7 @@ interactions: - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 localIdentifier: dim_0 links: - executionResult: b4904a1dd253efa3d30e390075e7fc2084244b15 + executionResult: 80722e9a97f9208da237e3bfd20106a2fc172e6f - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -310,10 +310,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1185,11 +1185,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1197,11 +1197,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1258,33 +1258,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -1964,7 +1964,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/b4904a1dd253efa3d30e390075e7fc2084244b15?offset=0&limit=1 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/80722e9a97f9208da237e3bfd20106a2fc172e6f?offset=0&limit=1 body: null headers: Accept: @@ -2151,7 +2151,7 @@ interactions: - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 localIdentifier: dim_0 links: - executionResult: 4aeabb6b2fe2c1090de8462335f6776f56c914ef + executionResult: dcec4c8f27504e195eef008a09f4971c4fcbc1db - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -2362,10 +2362,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -3237,11 +3237,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -3249,11 +3249,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -3310,33 +3310,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -4016,7 +4016,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/4aeabb6b2fe2c1090de8462335f6776f56c914ef?offset=0&limit=1 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/dcec4c8f27504e195eef008a09f4971c4fcbc1db?offset=0&limit=1 body: null headers: Accept: diff --git a/gooddata-pandas/tests/series/fixtures/not_indexed_label_series.yaml b/gooddata-pandas/tests/series/fixtures/not_indexed_label_series.yaml index 504d559b7..275d54bb1 100644 --- a/gooddata-pandas/tests/series/fixtures/not_indexed_label_series.yaml +++ b/gooddata-pandas/tests/series/fixtures/not_indexed_label_series.yaml @@ -106,7 +106,7 @@ interactions: type: label localIdentifier: dim_0 links: - executionResult: 5188aa5d48539ab0ff6a9e8ee9308aa507fdaee9 + executionResult: 3e53e22a37ad888851a1ba0fff89d278f3c53ddb - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -317,10 +317,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1192,11 +1192,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1204,11 +1204,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1265,33 +1265,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -1971,7 +1971,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5188aa5d48539ab0ff6a9e8ee9308aa507fdaee9?offset=0&limit=1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/3e53e22a37ad888851a1ba0fff89d278f3c53ddb?offset=0&limit=1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/series/fixtures/not_indexed_label_series_with_granularity.yaml b/gooddata-pandas/tests/series/fixtures/not_indexed_label_series_with_granularity.yaml index cab61ecb6..bf7f4f753 100644 --- a/gooddata-pandas/tests/series/fixtures/not_indexed_label_series_with_granularity.yaml +++ b/gooddata-pandas/tests/series/fixtures/not_indexed_label_series_with_granularity.yaml @@ -126,7 +126,7 @@ interactions: type: label localIdentifier: dim_0 links: - executionResult: a645b8dd53c89ab2b82e3a850b32929669d03d9b + executionResult: 1e6fd5a630705716a1122d1221b3002d819b89ac - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -337,10 +337,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1212,11 +1212,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1224,11 +1224,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1285,33 +1285,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -1991,7 +1991,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/a645b8dd53c89ab2b82e3a850b32929669d03d9b?offset=0&limit=1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/1e6fd5a630705716a1122d1221b3002d819b89ac?offset=0&limit=1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series.yaml b/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series.yaml index a95fe3091..6f1c78ba7 100644 --- a/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series.yaml +++ b/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series.yaml @@ -99,7 +99,7 @@ interactions: - localIdentifier: 27c4b665b9d047b1a66a149714f1c596 localIdentifier: dim_0 links: - executionResult: b4904a1dd253efa3d30e390075e7fc2084244b15 + executionResult: 80722e9a97f9208da237e3bfd20106a2fc172e6f - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -310,10 +310,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1185,11 +1185,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1197,11 +1197,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1258,33 +1258,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -1964,7 +1964,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/b4904a1dd253efa3d30e390075e7fc2084244b15?offset=0&limit=1 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/80722e9a97f9208da237e3bfd20106a2fc172e6f?offset=0&limit=1 body: null headers: Accept: diff --git a/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series_with_granularity.yaml b/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series_with_granularity.yaml index 6bc22f10b..a21f075a5 100644 --- a/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series_with_granularity.yaml +++ b/gooddata-pandas/tests/series/fixtures/not_indexed_metric_series_with_granularity.yaml @@ -123,7 +123,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: d35c46404aedd5c13b2f21d26348b5e8dcf7cae3 + executionResult: 53e6e5f774dbda0928072e808cde42e4d47dfab1 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -334,10 +334,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1209,11 +1209,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1221,11 +1221,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1282,33 +1282,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -1988,7 +1988,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/d35c46404aedd5c13b2f21d26348b5e8dcf7cae3?offset=0%2C0&limit=1%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/53e6e5f774dbda0928072e808cde42e4d47dfab1?offset=0%2C0&limit=1%2C1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/series/fixtures/simple_index_filtered_series.yaml b/gooddata-pandas/tests/series/fixtures/simple_index_filtered_series.yaml index c2140b7c2..1aebb8bcd 100644 --- a/gooddata-pandas/tests/series/fixtures/simple_index_filtered_series.yaml +++ b/gooddata-pandas/tests/series/fixtures/simple_index_filtered_series.yaml @@ -142,7 +142,7 @@ interactions: type: label localIdentifier: dim_0 links: - executionResult: 591c5830f820cad797c00255b1c675dcb4c976af + executionResult: 3f73df6c42376a33fd2826b0e3cd0e1e89dabe09 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -353,10 +353,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1228,11 +1228,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1240,11 +1240,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1301,33 +1301,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -2007,7 +2007,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/591c5830f820cad797c00255b1c675dcb4c976af?offset=0&limit=1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/3f73df6c42376a33fd2826b0e3cd0e1e89dabe09?offset=0&limit=1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/series/fixtures/simple_index_label_series.yaml b/gooddata-pandas/tests/series/fixtures/simple_index_label_series.yaml index 504d559b7..275d54bb1 100644 --- a/gooddata-pandas/tests/series/fixtures/simple_index_label_series.yaml +++ b/gooddata-pandas/tests/series/fixtures/simple_index_label_series.yaml @@ -106,7 +106,7 @@ interactions: type: label localIdentifier: dim_0 links: - executionResult: 5188aa5d48539ab0ff6a9e8ee9308aa507fdaee9 + executionResult: 3e53e22a37ad888851a1ba0fff89d278f3c53ddb - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -317,10 +317,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1192,11 +1192,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1204,11 +1204,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1265,33 +1265,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -1971,7 +1971,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/5188aa5d48539ab0ff6a9e8ee9308aa507fdaee9?offset=0&limit=1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/3e53e22a37ad888851a1ba0fff89d278f3c53ddb?offset=0&limit=1000 body: null headers: Accept: diff --git a/gooddata-pandas/tests/series/fixtures/simple_index_metric_series.yaml b/gooddata-pandas/tests/series/fixtures/simple_index_metric_series.yaml index 6bc22f10b..a21f075a5 100644 --- a/gooddata-pandas/tests/series/fixtures/simple_index_metric_series.yaml +++ b/gooddata-pandas/tests/series/fixtures/simple_index_metric_series.yaml @@ -123,7 +123,7 @@ interactions: type: label localIdentifier: dim_1 links: - executionResult: d35c46404aedd5c13b2f21d26348b5e8dcf7cae3 + executionResult: 53e6e5f774dbda0928072e808cde42e4d47dfab1 - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces/demo/attributes?include=labels&page=0&size=500 @@ -334,10 +334,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1209,11 +1209,11 @@ interactions: sourceColumns: - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: id: products type: dataset @@ -1221,11 +1221,11 @@ interactions: sourceColumns: - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1282,33 +1282,33 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.quarter type: attribute - - id: date.month + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.minute + - id: date.hour type: attribute - - id: date.quarter + - id: date.hourOfDay type: attribute - id: date.minuteOfHour type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - - id: date.dayOfWeek + - id: date.dayOfMonth type: attribute - id: date.weekOfYear type: attribute - - id: date.hour + - id: date.month + type: attribute + - id: date.year + type: attribute + - id: date.minute type: attribute - id: date.monthOfYear type: attribute @@ -1988,7 +1988,7 @@ interactions: next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/d35c46404aedd5c13b2f21d26348b5e8dcf7cae3?offset=0%2C0&limit=1%2C1000 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/53e6e5f774dbda0928072e808cde42e4d47dfab1?offset=0%2C0&limit=1%2C1000 body: null headers: Accept: diff --git a/gooddata-sdk/tests/catalog/expected/declarative_workspaces.json b/gooddata-sdk/tests/catalog/expected/declarative_workspaces.json index fd7f150eb..22ed3e946 100644 --- a/gooddata-sdk/tests/catalog/expected/declarative_workspaces.json +++ b/gooddata-sdk/tests/catalog/expected/declarative_workspaces.json @@ -1,6 +1,7 @@ { "workspaces": [ { + "customApplicationSettings": [], "hierarchyPermissions": [ { "assignee": { @@ -2678,6 +2679,7 @@ "settings": [] }, { + "customApplicationSettings": [], "hierarchyPermissions": [], "id": "demo_west", "model": { @@ -2702,6 +2704,7 @@ "settings": [] }, { + "customApplicationSettings": [], "hierarchyPermissions": [], "id": "demo_west_california", "model": { diff --git a/gooddata-sdk/tests/catalog/expected/declarative_workspaces_snake_case.json b/gooddata-sdk/tests/catalog/expected/declarative_workspaces_snake_case.json index 834153d2f..8da827f88 100644 --- a/gooddata-sdk/tests/catalog/expected/declarative_workspaces_snake_case.json +++ b/gooddata-sdk/tests/catalog/expected/declarative_workspaces_snake_case.json @@ -2665,7 +2665,8 @@ } } ], - "settings": [] + "settings": [], + "custom_application_settings": [] }, { "id": "demo_west", @@ -2688,7 +2689,8 @@ }, "permissions": [], "hierarchy_permissions": [], - "settings": [] + "settings": [], + "custom_application_settings": [] }, { "id": "demo_west_california", @@ -2711,7 +2713,8 @@ }, "permissions": [], "hierarchy_permissions": [], - "settings": [] + "settings": [], + "custom_application_settings": [] } ], "workspace_data_filters": [ diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml index f4008c33b..eda72c4cd 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/bigquery.yaml @@ -75,7 +75,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: dfbb06650f1f4d72 + traceId: 3bb55142488305d7 - request: method: POST uri: http://localhost:3000/api/v1/entities/dataSources @@ -85,8 +85,7 @@ interactions: name: Test schema: demo type: BIGQUERY - url: jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=gdc-us-dev;OAuthType=0param=value - token: YmlncXVlcnlfc2VydmljZV9hY2NvdW50X2pzb24= + token: eyJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsICJwcm9qZWN0X2lkIjogIlBST0pFQ1RfSUQiLCAicHJpdmF0ZV9rZXlfaWQiOiAiS0VZX0lEIiwgInByaXZhdGVfa2V5IjogIi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxcblBSSVZBVEVfS0VZXFxuLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVxcbiIsICJjbGllbnRfZW1haWwiOiAiU0VSVklDRV9BQ0NPVU5UX0VNQUlMIiwgImNsaWVudF9pZCI6ICJDTElFTlRfSUQiLCAiYXV0aF91cmkiOiAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLCAidG9rZW5fdXJpIjogImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsICJhdXRoX3Byb3ZpZGVyX3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwgImNsaWVudF94NTA5X2NlcnRfdXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL3JvYm90L3YxL21ldGFkYXRhL3g1MDkvU0VSVklDRV9BQ0NPVU5UX0VNQUlMIn0= enableCaching: true cachePath: - cache_schema @@ -115,7 +114,7 @@ interactions: Connection: - keep-alive Content-Length: - - '340' + - '382' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -163,10 +162,16 @@ interactions: id: test type: dataSource attributes: - url: jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=0param=value;ProjectId=gdc-us-dev enableCaching: true cachePath: - cache_schema + decodedParameters: + - name: clientEmail + value: SERVICE_ACCOUNT_EMAIL + - name: keyId + value: KEY_ID + - name: projectId + value: PROJECT_ID name: Test type: BIGQUERY schema: demo diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/declarative_data_sources.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/declarative_data_sources.yaml index 8c768184b..919f1d2c4 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/declarative_data_sources.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/declarative_data_sources.yaml @@ -72,143 +72,143 @@ interactions: body: string: dataSources: - - id: demo-test-ds + - enableCaching: false + id: demo-test-ds name: demo-test-ds - type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demo - schema: demo - username: demouser - enableCaching: false pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE permissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: USE - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup + name: USE + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo + username: demouser - request: method: GET uri: http://localhost:3000/api/v1/layout/dataSources @@ -279,140 +279,140 @@ interactions: body: string: dataSources: - - id: demo-test-ds + - enableCaching: false + id: demo-test-ds name: demo-test-ds - type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demo - schema: demo - username: demouser - enableCaching: false pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE permissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: USE - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup + name: USE + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo + username: demouser diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml index b37038a2c..05b6bd63c 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_generate_logical_model.yaml @@ -73,47 +73,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -121,131 +124,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -271,55 +274,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -336,8 +331,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: POST uri: http://localhost:3000/api/v1/actions/dataSources/demo-test-ds/generateLogicalModel @@ -413,47 +413,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -461,131 +464,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -611,55 +614,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: + - granularities: - MINUTE - HOUR - DAY @@ -675,5 +670,10 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml index ccbfd7467..6c70a9f60 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_load_and_put_declarative_data_sources.yaml @@ -210,7 +210,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd + oauthClientId: c25c941a-3135-411c-816c-e1c0b8fa486f links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -222,12 +222,17 @@ interactions: name: demo-bigquery-ds schema: demo type: BIGQUERY - url: jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=test;OAuthType=0 enableCaching: true pdm: tables: [] + parameters: + - name: projectId + value: projectId-value-override + decodedParameters: + - name: clientEmail + value: fake email permissions: [] - token: c2VjcmV0X3Rva2Vu + token: eyJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsICJwcm9qZWN0X2lkIjogIlBST0pFQ1RfSUQiLCAicHJpdmF0ZV9rZXlfaWQiOiAiS0VZX0lEIiwgInByaXZhdGVfa2V5IjogIi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxuUFJJVkFURV9LRVlcbi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS1cbiIsICJjbGllbnRfZW1haWwiOiAiU0VSVklDRV9BQ0NPVU5UX0VNQUlMIiwgImNsaWVudF9pZCI6ICJDTElFTlRfSUQiLCAiYXV0aF91cmkiOiAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLCAidG9rZW5fdXJpIjogImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsICJhdXRoX3Byb3ZpZGVyX3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwgImNsaWVudF94NTA5X2NlcnRfdXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL3JvYm90L3YxL21ldGFkYXRhL3g1MDkvU0VSVklDRV9BQ0NPVU5UX0VNQUlMIn0= - id: demo-test-ds name: demo-test-ds schema: demo @@ -582,7 +587,7 @@ interactions: Connection: - keep-alive Content-Length: - - '5441' + - '5571' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -627,280 +632,289 @@ interactions: body: string: dataSources: - - id: demo-bigquery-ds - name: demo-bigquery-ds - type: BIGQUERY - url: jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=0;ProjectId=test - schema: demo + - decodedParameters: + - name: clientEmail + value: SERVICE_ACCOUNT_EMAIL + - name: keyId + value: KEY_ID + - name: projectId + value: PROJECT_ID enableCaching: true + id: demo-bigquery-ds + name: demo-bigquery-ds + parameters: + - name: projectId + value: projectId-value-override pdm: tables: [] permissions: [] - - id: demo-test-ds - name: demo-test-ds - type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demo schema: demo - username: demouser - enableCaching: false + type: BIGQUERY + - enableCaching: false + id: demo-test-ds + name: demo-test-ds pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE permissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: USE - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup - - id: demo-vertica-ds - name: demo-vertica-ds - type: VERTICA - url: jdbc:vertica://localhost:5434/demo + name: USE schema: demo - enableCaching: true + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo + username: demouser + - enableCaching: true + id: demo-vertica-ds + name: demo-vertica-ds pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE permissions: [] + schema: demo + type: VERTICA + url: jdbc:vertica://localhost:5434/demo - request: method: PUT uri: http://localhost:3000/api/v1/layout/dataSources diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml index fdeb5acb4..31be4206b 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources.yaml @@ -72,143 +72,143 @@ interactions: body: string: dataSources: - - id: demo-test-ds + - enableCaching: false + id: demo-test-ds name: demo-test-ds - type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demo - schema: demo - username: demouser - enableCaching: false pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE permissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: USE - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup + name: USE + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo + username: demouser - request: method: PUT uri: http://localhost:3000/api/v1/layout/dataSources @@ -485,143 +485,143 @@ interactions: body: string: dataSources: - - id: demo-test-ds + - enableCaching: false + id: demo-test-ds name: demo-test-ds - type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demo - schema: demo - username: demouser - enableCaching: false pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE permissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: USE - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup + name: USE + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo + username: demouser - request: method: PUT uri: http://localhost:3000/api/v1/layout/dataSources diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml index 52deea46f..36d2e2468 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_put_declarative_data_sources_connection.yaml @@ -72,143 +72,143 @@ interactions: body: string: dataSources: - - id: demo-test-ds + - enableCaching: false + id: demo-test-ds name: demo-test-ds - type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demo - schema: demo - username: demouser - enableCaching: false pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE permissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: USE - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup + name: USE + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo + username: demouser - request: method: POST uri: http://localhost:3000/api/v1/actions/dataSource/test @@ -562,143 +562,143 @@ interactions: body: string: dataSources: - - id: demo-test-ds + - enableCaching: false + id: demo-test-ds name: demo-test-ds - type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demo - schema: demo - username: demouser - enableCaching: false pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE permissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: USE - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup + name: USE + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo + username: demouser - request: method: PUT uri: http://localhost:3000/api/v1/layout/dataSources diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml index cc27b97a0..1b2fde273 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_register_upload_notification.yaml @@ -428,7 +428,7 @@ interactions: name: '# of Active Customers' localIdentifier: dim_0 links: - executionResult: a3275a1fc4478fb5cf51e171dfb11fa98dc075cf + executionResult: 1804ac567ab5f55fc534d5aaa1c730a11c1a357e - request: method: POST uri: http://localhost:3000/api/v1/actions/dataSources/demo-test-ds/uploadNotification @@ -594,4 +594,4 @@ interactions: name: '# of Active Customers' localIdentifier: dim_0 links: - executionResult: 555e0835bba3315dfd3286f26c14ebdea672fff0 + executionResult: 27ab4b22d4c4fed46f21d2b2329edd4c557ce878 diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_and_load_and_put_declarative_pdm.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_and_load_and_put_declarative_pdm.yaml index 91ffc9109..a37079d25 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_and_load_and_put_declarative_pdm.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_and_load_and_put_declarative_pdm.yaml @@ -73,125 +73,125 @@ interactions: string: pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -332,7 +332,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd + oauthClientId: c25c941a-3135-411c-816c-e1c0b8fa486f links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -406,125 +406,125 @@ interactions: string: pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -665,7 +665,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd + oauthClientId: c25c941a-3135-411c-816c-e1c0b8fa486f links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -808,7 +808,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd + oauthClientId: c25c941a-3135-411c-816c-e1c0b8fa486f links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -1139,6 +1139,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd + oauthClientId: c25c941a-3135-411c-816c-e1c0b8fa486f links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml index 4afbb0ce6..123669d4f 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_store_declarative_data_sources.yaml @@ -72,143 +72,143 @@ interactions: body: string: dataSources: - - id: demo-test-ds + - enableCaching: false + id: demo-test-ds name: demo-test-ds - type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demo - schema: demo - username: demouser - enableCaching: false pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE permissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: USE - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup + name: USE + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo + username: demouser - request: method: GET uri: http://localhost:3000/api/v1/layout/dataSources @@ -279,143 +279,143 @@ interactions: body: string: dataSources: - - id: demo-test-ds + - enableCaching: false + id: demo-test-ds name: demo-test-ds - type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demo - schema: demo - username: demouser - enableCaching: false pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE permissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: USE - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup + name: USE + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo + username: demouser - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -556,7 +556,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd + oauthClientId: c25c941a-3135-411c-816c-e1c0b8fa486f links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -699,6 +699,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd + oauthClientId: c25c941a-3135-411c-816c-e1c0b8fa486f links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml index ed48ad1cb..dcb06c503 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_declarative_data_sources.yaml @@ -72,143 +72,143 @@ interactions: body: string: dataSources: - - id: demo-test-ds + - enableCaching: false + id: demo-test-ds name: demo-test-ds - type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demo - schema: demo - username: demouser - enableCaching: false pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE permissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: USE - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup + name: USE + schema: demo + type: POSTGRESQL + url: jdbc:postgresql://localhost:5432/demo + username: demouser - request: method: POST uri: http://localhost:3000/api/v1/actions/dataSource/test diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_get_declarative_pdm.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_get_declarative_pdm.yaml index 0a0a4c45a..9cf56dd26 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_get_declarative_pdm.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_get_declarative_pdm.yaml @@ -73,122 +73,122 @@ interactions: string: pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_put_declarative_pdm.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_put_declarative_pdm.yaml index 5a42f299a..cd933a910 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_put_declarative_pdm.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_put_declarative_pdm.yaml @@ -73,125 +73,125 @@ interactions: string: pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE - request: method: PUT uri: http://localhost:3000/api/v1/layout/dataSources/demo-test-ds/physicalModel diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_and_put_declarative_pdm.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_and_put_declarative_pdm.yaml index 8a112888f..9b2c3fe2f 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_and_put_declarative_pdm.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/demo_test_scan_and_put_declarative_pdm.yaml @@ -73,125 +73,125 @@ interactions: string: pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE - request: method: POST uri: http://localhost:3000/api/v1/actions/dataSources/demo-test-ds/scan @@ -864,122 +864,122 @@ interactions: string: pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml index 5024624df..f8e8e328a 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/dremio.yaml @@ -75,7 +75,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: ae3092a6e710f929 + traceId: 1403074bc3ddf38d - request: method: POST uri: http://localhost:3000/api/v1/entities/dataSources @@ -85,12 +85,12 @@ interactions: name: Dremio schema: '' type: DREMIO - url: jdbc:dremio:direct=dremio:31010 username: demouser password: demopass enableCaching: true cachePath: - $scratch + url: jdbc:dremio:direct=dremio:31010 id: dremio type: dataSource headers: diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml index eac8ce37d..80d5a88f6 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/patch.yaml @@ -159,7 +159,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: 4b7371637c1f5040 + traceId: 8ac828639e14083c - request: method: POST uri: http://localhost:3000/api/v1/entities/dataSources @@ -169,12 +169,12 @@ interactions: name: Test schema: demo type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demoparam=value username: demouser password: demopass enableCaching: true cachePath: - cache_schema + url: jdbc:postgresql://localhost:5432/demoparam=value id: test type: dataSource headers: diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/pdm_store_load.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/pdm_store_load.yaml index 5e5fc427a..98ce8d312 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/pdm_store_load.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/pdm_store_load.yaml @@ -73,125 +73,125 @@ interactions: string: pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE - request: method: GET uri: http://localhost:3000/api/v1/layout/dataSources/demo-test-ds/physicalModel @@ -263,122 +263,122 @@ interactions: string: pdm: tables: - - id: campaign_channels - path: - - demo - - campaign_channels - type: TABLE - columns: - - name: budget - dataType: NUMERIC + - columns: + - dataType: NUMERIC isPrimaryKey: false - - name: campaign_channel_id - dataType: STRING + name: budget + - dataType: STRING isPrimaryKey: true - - name: campaign_id - dataType: INT + name: campaign_channel_id + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: category - dataType: STRING + referencedTableId: campaigns + - dataType: STRING isPrimaryKey: false - - name: spend - dataType: NUMERIC + name: category + - dataType: NUMERIC isPrimaryKey: false - - name: type - dataType: STRING + name: spend + - dataType: STRING isPrimaryKey: false - - id: campaigns + name: type + id: campaign_channels path: - demo - - campaigns + - campaign_channels type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: campaign_name - dataType: STRING + name: campaign_id + - dataType: STRING isPrimaryKey: false - - id: customers + name: campaign_name + id: campaigns path: - demo - - customers + - campaigns type: TABLE - columns: - - name: customer_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: true - - name: customer_name - dataType: STRING + name: customer_id + - dataType: STRING isPrimaryKey: false - - name: geo__state__location - dataType: STRING + name: customer_name + - dataType: STRING isPrimaryKey: false - - name: region - dataType: STRING + name: geo__state__location + - dataType: STRING isPrimaryKey: false - - name: state - dataType: STRING + name: region + - dataType: STRING isPrimaryKey: false - - id: order_lines + name: state + id: customers path: - demo - - order_lines + - customers type: TABLE - columns: - - name: campaign_id - dataType: INT + - columns: + - dataType: INT isPrimaryKey: false - referencedTableId: campaigns + name: campaign_id referencedTableColumn: campaign_id - - name: customer_id - dataType: INT + referencedTableId: campaigns + - dataType: INT isPrimaryKey: false - referencedTableId: customers + name: customer_id referencedTableColumn: customer_id - - name: date - dataType: DATE + referencedTableId: customers + - dataType: DATE isPrimaryKey: false - - name: order_id - dataType: STRING + name: date + - dataType: STRING isPrimaryKey: false - - name: order_line_id - dataType: STRING + name: order_id + - dataType: STRING isPrimaryKey: true - - name: order_status - dataType: STRING + name: order_line_id + - dataType: STRING isPrimaryKey: false - - name: price - dataType: NUMERIC + name: order_status + - dataType: NUMERIC isPrimaryKey: false - - name: product_id - dataType: INT + name: price + - dataType: INT isPrimaryKey: false - referencedTableId: products + name: product_id referencedTableColumn: product_id - - name: quantity - dataType: NUMERIC + referencedTableId: products + - dataType: NUMERIC isPrimaryKey: false - - name: wdf__region - dataType: STRING + name: quantity + - dataType: STRING isPrimaryKey: false - - name: wdf__state - dataType: STRING + name: wdf__region + - dataType: STRING isPrimaryKey: false - - id: products + name: wdf__state + id: order_lines path: - demo - - products + - order_lines type: TABLE - columns: - - name: category - dataType: STRING + - columns: + - dataType: STRING isPrimaryKey: false - - name: product_id - dataType: INT + name: category + - dataType: INT isPrimaryKey: true - - name: product_name - dataType: STRING + name: product_id + - dataType: STRING isPrimaryKey: false + name: product_name + id: products + path: + - demo + - products + type: TABLE diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml index 716f54b7a..d45edb76f 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/redshift.yaml @@ -75,7 +75,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: 4846860468b37ab8 + traceId: 3d3edfc106d1f3b8 - request: method: POST uri: http://localhost:3000/api/v1/entities/dataSources @@ -85,10 +85,10 @@ interactions: name: Test2 schema: demo type: REDSHIFT - url: jdbc:redshift://aws.endpoint:5439/demoparam=value username: demouser password: demopass enableCaching: false + url: jdbc:redshift://aws.endpoint:5439/demoparam=value id: test type: dataSource headers: diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml index 7294bd0e5..ceb388aef 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/snowflake.yaml @@ -75,7 +75,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: 3f7cbf4b70183cec + traceId: e7b37ee210c7834c - request: method: POST uri: http://localhost:3000/api/v1/entities/dataSources @@ -85,12 +85,12 @@ interactions: name: Test schema: demo type: SNOWFLAKE - url: jdbc:snowflake://gooddata.snowflakecomputing.com:443?warehouse=TIGER&db=TIGERparam=value username: demouser password: demopass enableCaching: true cachePath: - cache_schema + url: jdbc:snowflake://gooddata.snowflakecomputing.com:443?warehouse=TIGER&db=TIGERparam=value id: test type: dataSource headers: diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml index 4bf32b381..574e92f97 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/test_create_update.yaml @@ -159,7 +159,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: 9fddcf9d8933e283 + traceId: 88ed2fecf94702ce - request: method: POST uri: http://localhost:3000/api/v1/entities/dataSources @@ -169,12 +169,12 @@ interactions: name: Test schema: demo type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demoparam=value username: demouser password: demopass enableCaching: true cachePath: - cache_schema + url: jdbc:postgresql://localhost:5432/demoparam=value id: test type: dataSource headers: @@ -350,10 +350,10 @@ interactions: name: Test2 schema: demo type: POSTGRESQL - url: jdbc:postgresql://localhost:5432/demoparam=value username: demouser password: demopass enableCaching: false + url: jdbc:postgresql://localhost:5432/demoparam=value id: test type: dataSource headers: diff --git a/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml b/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml index fbe61e11a..125547518 100644 --- a/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/data_sources/vertica.yaml @@ -75,7 +75,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: d1e7b6b3032bee35 + traceId: 630cd5ea0730a8f8 - request: method: POST uri: http://localhost:3000/api/v1/entities/dataSources @@ -85,10 +85,10 @@ interactions: name: Test2 schema: demo type: VERTICA - url: jdbc:vertica://localhost:5433/demoparam=value username: demouser password: demopass enableCaching: false + url: jdbc:vertica://localhost:5433/demoparam=value id: test type: dataSource headers: diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml index b7ff8762c..a54832fc5 100644 --- a/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/organization/organization.yaml @@ -142,6 +142,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd + oauthClientId: c25c941a-3135-411c-816c-e1c0b8fa486f links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml index c5f9c6108..726a89cd3 100644 --- a/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/organization/update_name.yaml @@ -142,7 +142,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -285,7 +285,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -298,7 +298,7 @@ interactions: attributes: name: test_organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 headers: Accept: - application/vnd.gooddata.api+json @@ -372,7 +372,7 @@ interactions: attributes: name: test_organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -515,7 +515,7 @@ interactions: attributes: name: test_organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -658,7 +658,7 @@ interactions: attributes: name: test_organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -671,7 +671,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 headers: Accept: - application/vnd.gooddata.api+json @@ -745,7 +745,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -888,6 +888,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/organization/update_oidc_settings.yaml b/gooddata-sdk/tests/catalog/fixtures/organization/update_oidc_settings.yaml index 304f63a54..5a0df0648 100644 --- a/gooddata-sdk/tests/catalog/fixtures/organization/update_oidc_settings.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/organization/update_oidc_settings.yaml @@ -142,7 +142,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd + oauthClientId: c25c941a-3135-411c-816c-e1c0b8fa486f links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -285,7 +285,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 8b43c645-cd6d-4029-baf9-aff505b46ccd + oauthClientId: c25c941a-3135-411c-816c-e1c0b8fa486f links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -749,7 +749,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -892,6 +892,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml b/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml index 350bf6e3a..6891d42a6 100644 --- a/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/permissions/get_declarative_permissions.yaml @@ -71,24 +71,24 @@ interactions: - 1 ; mode=block body: string: - permissions: - - name: ANALYZE - assignee: + hierarchyPermissions: + - assignee: id: demo2 type: user - - name: VIEW - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: + name: ANALYZE + permissions: + - assignee: id: demo2 type: user - - name: ANALYZE - assignee: + name: ANALYZE + - assignee: id: demoGroup type: userGroup + name: VIEW - request: method: GET uri: http://localhost:3000/api/v1/layout/workspaces/demo/permissions @@ -158,21 +158,21 @@ interactions: - 1 ; mode=block body: string: - permissions: - - name: ANALYZE - assignee: + hierarchyPermissions: + - assignee: id: demo2 type: user - - name: VIEW - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: + name: ANALYZE + permissions: + - assignee: id: demo2 type: user - - name: ANALYZE - assignee: + name: ANALYZE + - assignee: id: demoGroup type: userGroup + name: VIEW diff --git a/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml b/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml index 56c79b830..df781d015 100644 --- a/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/permissions/put_declarative_permissions.yaml @@ -71,8 +71,8 @@ interactions: - 1 ; mode=block body: string: - permissions: [] hierarchyPermissions: [] + permissions: [] - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaces/demo_west/permissions @@ -227,24 +227,24 @@ interactions: - 1 ; mode=block body: string: - permissions: - - name: ANALYZE - assignee: + hierarchyPermissions: + - assignee: id: demo2 type: user - - name: VIEW - assignee: + name: MANAGE + - assignee: id: demoGroup type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: + name: ANALYZE + permissions: + - assignee: id: demo2 type: user - - name: ANALYZE - assignee: + name: ANALYZE + - assignee: id: demoGroup type: userGroup + name: VIEW - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaces/demo_west/permissions @@ -383,5 +383,5 @@ interactions: - 1 ; mode=block body: string: - permissions: [] hierarchyPermissions: [] + permissions: [] diff --git a/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml b/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml index 2fb04c0ed..82ee1b01e 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user.yaml @@ -85,7 +85,7 @@ interactions: - id: demo type: user attributes: - authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authenticationId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs relationships: userGroups: data: @@ -96,7 +96,7 @@ interactions: - id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: @@ -191,7 +191,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: ab57f14bb2b599d3 + traceId: 60922c78859c6f7f - request: method: POST uri: http://localhost:3000/api/v1/entities/users @@ -447,39 +447,39 @@ interactions: type: userGroup links: self: http://localhost:3000/api/v1/entities/users/admin - - id: newUser + - id: demo type: user attributes: - authenticationId: newUser_auth_id + authenticationId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs relationships: userGroups: data: - - id: demoGroup + - id: adminGroup type: userGroup links: - self: http://localhost:3000/api/v1/entities/users/newUser - - id: demo + self: http://localhost:3000/api/v1/entities/users/demo + - id: demo2 type: user attributes: - authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: - - id: adminGroup + - id: demoGroup type: userGroup links: - self: http://localhost:3000/api/v1/entities/users/demo - - id: demo2 + self: http://localhost:3000/api/v1/entities/users/demo2 + - id: newUser type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: newUser_auth_id relationships: userGroups: data: - id: demoGroup type: userGroup links: - self: http://localhost:3000/api/v1/entities/users/demo2 + self: http://localhost:3000/api/v1/entities/users/newUser included: - id: adminGroup type: userGroup @@ -642,7 +642,7 @@ interactions: - id: demo type: user attributes: - authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authenticationId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs relationships: userGroups: data: @@ -653,7 +653,7 @@ interactions: - id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: diff --git a/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml b/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml index f5fc3b737..537218fd3 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/create_delete_user_group.yaml @@ -189,7 +189,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: c71646e4441018eb + traceId: b621e435c7aa93c1 - request: method: POST uri: http://localhost:3000/api/v1/entities/userGroups diff --git a/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml b/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml index 5d3479148..362a91582 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users.yaml @@ -73,22 +73,22 @@ interactions: string: users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - request: method: GET uri: http://localhost:3000/api/v1/layout/users @@ -160,19 +160,19 @@ interactions: string: users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] diff --git a/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml index 571620650..e7585426b 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/get_declarative_users_user_groups.yaml @@ -71,35 +71,35 @@ interactions: - 1 ; mode=block body: string: + userGroups: + - id: adminGroup + - id: adminQA1Group + parents: + - id: adminGroup + type: userGroup + - id: demoGroup + - id: visitorsGroup + parents: + - id: demoGroup + type: userGroup users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - userGroups: - - id: adminGroup - - id: adminQA1Group - parents: - - id: adminGroup - type: userGroup - - id: demoGroup - - id: visitorsGroup - parents: - - id: demoGroup - type: userGroup - request: method: GET uri: http://localhost:3000/api/v1/layout/usersAndUserGroups @@ -169,32 +169,32 @@ interactions: - 1 ; mode=block body: string: + userGroups: + - id: adminGroup + - id: adminQA1Group + parents: + - id: adminGroup + type: userGroup + - id: demoGroup + - id: visitorsGroup + parents: + - id: demoGroup + type: userGroup users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - userGroups: - - id: adminGroup - - id: adminQA1Group - parents: - - id: adminGroup - type: userGroup - - id: demoGroup - - id: visitorsGroup - parents: - - id: demoGroup - type: userGroup diff --git a/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml b/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml index 1e59a7488..80daa428c 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/get_user.yaml @@ -75,7 +75,7 @@ interactions: id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: diff --git a/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml b/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml index 29e66540a..2ae011e5e 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/list_users.yaml @@ -85,7 +85,7 @@ interactions: - id: demo type: user attributes: - authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authenticationId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs relationships: userGroups: data: @@ -96,7 +96,7 @@ interactions: - id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: diff --git a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml index 7dc4d03a7..765d14f19 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_user_groups.yaml @@ -73,22 +73,22 @@ interactions: string: users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - request: method: GET uri: http://localhost:3000/api/v1/layout/userGroups @@ -242,7 +242,7 @@ interactions: - id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: @@ -263,7 +263,7 @@ interactions: - id: demo type: user attributes: - authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authenticationId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs relationships: userGroups: data: @@ -559,7 +559,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -809,13 +809,13 @@ interactions: type: userGroup settings: [] - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs userGroups: - id: adminGroup type: userGroup settings: [] - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs userGroups: - id: demoGroup type: userGroup diff --git a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml index 165466b69..3e6376377 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users.yaml @@ -73,22 +73,22 @@ interactions: string: users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - request: method: GET uri: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500 @@ -172,7 +172,7 @@ interactions: - id: demo type: user attributes: - authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authenticationId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs relationships: userGroups: data: @@ -183,7 +183,7 @@ interactions: - id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: @@ -410,7 +410,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -569,22 +569,22 @@ interactions: string: users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - request: method: PUT uri: http://localhost:3000/api/v1/layout/users @@ -596,13 +596,13 @@ interactions: type: userGroup settings: [] - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs userGroups: - id: adminGroup type: userGroup settings: [] - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs userGroups: - id: demoGroup type: userGroup diff --git a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml index 0dfaa3fd7..be526cb1a 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/load_and_put_declarative_users_user_groups.yaml @@ -71,35 +71,35 @@ interactions: - 1 ; mode=block body: string: + userGroups: + - id: adminGroup + - id: adminQA1Group + parents: + - id: adminGroup + type: userGroup + - id: demoGroup + - id: visitorsGroup + parents: + - id: demoGroup + type: userGroup users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - userGroups: - - id: adminGroup - - id: adminQA1Group - parents: - - id: adminGroup - type: userGroup - - id: demoGroup - - id: visitorsGroup - parents: - - id: demoGroup - type: userGroup - request: method: GET uri: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500 @@ -183,7 +183,7 @@ interactions: - id: demo type: user attributes: - authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authenticationId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs relationships: userGroups: data: @@ -194,7 +194,7 @@ interactions: - id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: @@ -490,7 +490,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -658,35 +658,35 @@ interactions: - 1 ; mode=block body: string: + userGroups: + - id: adminGroup + - id: adminQA1Group + parents: + - id: adminGroup + type: userGroup + - id: demoGroup + - id: visitorsGroup + parents: + - id: demoGroup + type: userGroup users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - userGroups: - - id: adminGroup - - id: adminQA1Group - parents: - - id: adminGroup - type: userGroup - - id: demoGroup - - id: visitorsGroup - parents: - - id: demoGroup - type: userGroup - request: method: PUT uri: http://localhost:3000/api/v1/layout/usersAndUserGroups @@ -709,13 +709,13 @@ interactions: type: userGroup settings: [] - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs userGroups: - id: adminGroup type: userGroup settings: [] - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs userGroups: - id: demoGroup type: userGroup diff --git a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml index 3f1367a7a..1994bdfc7 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_user_groups.yaml @@ -153,22 +153,22 @@ interactions: string: users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - request: method: GET uri: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500 @@ -252,7 +252,7 @@ interactions: - id: demo type: user attributes: - authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authenticationId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs relationships: userGroups: data: @@ -263,7 +263,7 @@ interactions: - id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: @@ -666,13 +666,13 @@ interactions: type: userGroup settings: [] - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs userGroups: - id: adminGroup type: userGroup settings: [] - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs userGroups: - id: demoGroup type: userGroup diff --git a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml index 4ac94703c..7c4d38eba 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users.yaml @@ -73,22 +73,22 @@ interactions: string: users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - request: method: GET uri: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500 @@ -169,28 +169,28 @@ interactions: type: userGroup links: self: http://localhost:3000/api/v1/entities/users/admin - - id: demo2 + - id: demo type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs relationships: userGroups: data: - - id: demoGroup + - id: adminGroup type: userGroup links: - self: http://localhost:3000/api/v1/entities/users/demo2 - - id: demo + self: http://localhost:3000/api/v1/entities/users/demo + - id: demo2 type: user attributes: - authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: - - id: adminGroup + - id: demoGroup type: userGroup links: - self: http://localhost:3000/api/v1/entities/users/demo + self: http://localhost:3000/api/v1/entities/users/demo2 included: - id: adminGroup type: userGroup @@ -281,13 +281,13 @@ interactions: type: userGroup settings: [] - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs userGroups: - id: adminGroup type: userGroup settings: [] - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs userGroups: - id: demoGroup type: userGroup @@ -426,22 +426,22 @@ interactions: string: users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - request: method: PUT uri: http://localhost:3000/api/v1/layout/users @@ -453,13 +453,13 @@ interactions: type: userGroup settings: [] - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs userGroups: - id: adminGroup type: userGroup settings: [] - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs userGroups: - id: demoGroup type: userGroup diff --git a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml index dbb08e5c0..7777718b2 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/put_declarative_users_user_groups.yaml @@ -71,35 +71,35 @@ interactions: - 1 ; mode=block body: string: + userGroups: + - id: adminGroup + - id: adminQA1Group + parents: + - id: adminGroup + type: userGroup + - id: demoGroup + - id: visitorsGroup + parents: + - id: demoGroup + type: userGroup users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - userGroups: - - id: adminGroup - - id: adminQA1Group - parents: - - id: adminGroup - type: userGroup - - id: demoGroup - - id: visitorsGroup - parents: - - id: demoGroup - type: userGroup - request: method: GET uri: http://localhost:3000/api/v1/entities/users?include=userGroups&page=0&size=500 @@ -173,7 +173,7 @@ interactions: - id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: @@ -194,7 +194,7 @@ interactions: - id: demo type: user attributes: - authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authenticationId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs relationships: userGroups: data: @@ -372,13 +372,13 @@ interactions: type: userGroup settings: [] - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs userGroups: - id: adminGroup type: userGroup settings: [] - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs userGroups: - id: demoGroup type: userGroup @@ -515,35 +515,35 @@ interactions: - 1 ; mode=block body: string: + userGroups: + - id: adminGroup + - id: adminQA1Group + parents: + - id: adminGroup + type: userGroup + - id: demoGroup + - id: visitorsGroup + parents: + - id: demoGroup + type: userGroup users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - userGroups: - - id: adminGroup - - id: adminQA1Group - parents: - - id: adminGroup - type: userGroup - - id: demoGroup - - id: visitorsGroup - parents: - - id: demoGroup - type: userGroup - request: method: PUT uri: http://localhost:3000/api/v1/layout/usersAndUserGroups @@ -566,13 +566,13 @@ interactions: type: userGroup settings: [] - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs userGroups: - id: adminGroup type: userGroup settings: [] - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs userGroups: - id: demoGroup type: userGroup diff --git a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml index a0ad20d9b..54f3ec813 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_user_groups.yaml @@ -302,7 +302,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -445,6 +445,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml index 5f49764b0..01ade3988 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users.yaml @@ -73,22 +73,22 @@ interactions: string: users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - request: method: GET uri: http://localhost:3000/api/v1/layout/users @@ -160,22 +160,22 @@ interactions: string: users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -316,7 +316,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -459,6 +459,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml index 7d5f3581d..e6ae60721 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/store_declarative_users_user_groups.yaml @@ -71,35 +71,35 @@ interactions: - 1 ; mode=block body: string: + userGroups: + - id: adminGroup + - id: adminQA1Group + parents: + - id: adminGroup + type: userGroup + - id: demoGroup + - id: visitorsGroup + parents: + - id: demoGroup + type: userGroup users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - userGroups: - - id: adminGroup - - id: adminQA1Group - parents: - - id: adminGroup - type: userGroup - - id: demoGroup - - id: visitorsGroup - parents: - - id: demoGroup - type: userGroup - request: method: GET uri: http://localhost:3000/api/v1/layout/usersAndUserGroups @@ -169,35 +169,35 @@ interactions: - 1 ; mode=block body: string: + userGroups: + - id: adminGroup + - id: adminQA1Group + parents: + - id: adminGroup + type: userGroup + - id: demoGroup + - id: visitorsGroup + parents: + - id: demoGroup + type: userGroup users: - id: admin + settings: [] userGroups: - id: adminGroup type: userGroup + - authId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs + id: demo settings: [] - - id: demo - authId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs userGroups: - id: adminGroup type: userGroup + - authId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs + id: demo2 settings: [] - - id: demo2 - authId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs userGroups: - id: demoGroup type: userGroup - settings: [] - userGroups: - - id: adminGroup - - id: adminQA1Group - parents: - - id: adminGroup - type: userGroup - - id: demoGroup - - id: visitorsGroup - parents: - - id: demoGroup - type: userGroup - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -338,7 +338,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -481,6 +481,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml b/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml index c372c22d0..1c5591b36 100644 --- a/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/users/update_user.yaml @@ -75,7 +75,7 @@ interactions: id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: @@ -162,7 +162,7 @@ interactions: id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: @@ -498,7 +498,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: b99f7227557b215a + traceId: 6f4198dafad48843 - request: method: POST uri: http://localhost:3000/api/v1/entities/users @@ -507,7 +507,7 @@ interactions: id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: @@ -584,7 +584,7 @@ interactions: id: demo2 type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs links: self: http://localhost:3000/api/v1/entities/users/demo2 - request: @@ -667,28 +667,28 @@ interactions: type: userGroup links: self: http://localhost:3000/api/v1/entities/users/admin - - id: demo2 + - id: demo type: user attributes: - authenticationId: CiQ5ZjYzOWEwNC0xY2NlLTQ1YzQtYmU3My1lZGEwODgzYzEzMGMSBWxvY2Fs + authenticationId: CiRmMWU4YmRjMS0yYmNiLTRkYmYtOTE2Yi02MzMxZjYyZmU4ZjYSBWxvY2Fs relationships: userGroups: data: - - id: demoGroup + - id: adminGroup type: userGroup links: - self: http://localhost:3000/api/v1/entities/users/demo2 - - id: demo + self: http://localhost:3000/api/v1/entities/users/demo + - id: demo2 type: user attributes: - authenticationId: CiQzNDljOGMzYi02OTllLTRhY2EtOTk5NC0xODZjYTQ2YzYxMTUSBWxvY2Fs + authenticationId: CiRlNTJmYzg3YS04YTUyLTQxYmItYTk5NC00NjQ2YzhhNTRkMjQSBWxvY2Fs relationships: userGroups: data: - - id: adminGroup + - id: demoGroup type: userGroup links: - self: http://localhost:3000/api/v1/entities/users/demo + self: http://localhost:3000/api/v1/entities/users/demo2 included: - id: adminGroup type: userGroup diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/analytics_store_load.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/analytics_store_load.yaml index 15f6ea37f..d300b0d6a 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/analytics_store_load.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/analytics_store_load.yaml @@ -73,10 +73,7 @@ interactions: string: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -117,9 +114,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -151,10 +149,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -298,11 +295,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -320,10 +330,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -336,146 +346,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -533,9 +544,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -605,9 +616,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -680,9 +691,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -735,9 +746,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -788,9 +799,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -837,9 +848,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -908,9 +919,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -961,9 +972,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1056,9 +1067,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1108,9 +1119,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1143,9 +1154,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1195,9 +1206,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1259,9 +1270,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1312,9 +1323,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1365,19 +1376,8 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products - request: method: GET uri: http://localhost:3000/api/v1/layout/workspaces/demo/analyticsModel @@ -1449,10 +1449,7 @@ interactions: string: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -1493,9 +1490,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -1527,10 +1525,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -1674,11 +1671,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -1696,10 +1706,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -1712,146 +1722,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -1909,9 +1920,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -1981,9 +1992,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -2056,9 +2067,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -2111,9 +2122,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -2164,9 +2175,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -2213,9 +2224,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -2284,9 +2295,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -2337,9 +2348,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -2432,9 +2443,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -2484,9 +2495,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -2519,9 +2530,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -2571,9 +2582,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -2635,9 +2646,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -2688,9 +2699,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -2741,16 +2752,5 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml index 185f6c168..63025fe6b 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog.yaml @@ -212,10 +212,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1033,29 +1033,29 @@ interactions: type: attribute referenceProperties: - identifier: - id: products + id: customers type: dataset multivalue: false sourceColumns: - - product_id + - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: - id: customers + id: products type: dataset multivalue: false sourceColumns: - - customer_id + - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1102,6 +1102,30 @@ interactions: type: attribute links: self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers + - id: products + type: dataset + attributes: + title: Products + description: Products + tags: + - Products + grain: + - id: product_id + type: attribute + dataSourceTableId: demo-test-ds:products + areRelationsValid: true + type: NORMAL + relationships: + attributes: + data: + - id: product_id + type: attribute + - id: product_name + type: attribute + - id: products.category + type: attribute + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - id: date type: dataset attributes: @@ -1114,62 +1138,38 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarter type: attribute - - id: date.month + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.quarter + - id: date.hour type: attribute - - id: date.minute + - id: date.hourOfDay type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - id: date.minuteOfHour type: attribute - id: date.weekOfYear type: attribute - - id: date.dayOfWeek - type: attribute - - id: date.hour + - id: date.dayOfMonth type: attribute - - id: date.monthOfYear + - id: date.month type: attribute - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date - - id: products - type: dataset - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - areRelationsValid: true - type: NORMAL - relationships: - attributes: - data: - - id: product_id + - id: date.year type: attribute - - id: product_name + - id: date.monthOfYear type: attribute - - id: products.category + - id: date.minute type: attribute links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products + self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date - id: campaigns type: dataset attributes: @@ -1606,6 +1606,133 @@ interactions: body: string: data: + - id: percent_revenue_per_product + type: metric + attributes: + title: '% Revenue per Product' + areRelationsValid: true + content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL + {attribute/product_id}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product + - id: revenue + type: metric + attributes: + title: Revenue + description: '' + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} + IN ("Returned", "Canceled")) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue + - id: revenue-clothing + type: metric + attributes: + title: Revenue (Clothing) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Clothing") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing + - id: revenue-electronic + type: metric + attributes: + title: Revenue (Electronic) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ( "Electronics") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic + - id: revenue-home + type: metric + attributes: + title: Revenue (Home) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Home") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home + - id: revenue-outdoor + type: metric + attributes: + title: Revenue (Outdoor) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Outdoor") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor + - id: revenue_per_customer + type: metric + attributes: + title: Revenue per Customer + areRelationsValid: true + content: + format: $#,##0.0 + maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer + - id: revenue_per_dollar_spent + type: metric + attributes: + title: Revenue per Dollar Spent + areRelationsValid: true + content: + format: $#,##0.0 + maql: SELECT {metric/revenue} / {metric/campaign_spend} + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent + - id: revenue_top_10 + type: metric + attributes: + title: Revenue / Top 10 + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10 + - id: revenue_top_10_percent + type: metric + attributes: + title: Revenue / Top 10% + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent + - id: total_revenue + type: metric + attributes: + title: Total Revenue + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} BY ALL OTHER + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue + - id: total_revenue-no_filters + type: metric + attributes: + title: Total Revenue (No Filters) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters - id: amount_of_active_customers type: metric attributes: @@ -1734,133 +1861,6 @@ interactions: ALL OTHER) links: self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category - - id: percent_revenue_per_product - type: metric - attributes: - title: '% Revenue per Product' - areRelationsValid: true - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL - {attribute/product_id}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product - - id: revenue - type: metric - attributes: - title: Revenue - description: '' - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue - - id: revenue-clothing - type: metric - attributes: - title: Revenue (Clothing) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Clothing") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing - - id: revenue-electronic - type: metric - attributes: - title: Revenue (Electronic) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ( "Electronics") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic - - id: revenue-home - type: metric - attributes: - title: Revenue (Home) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Home") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home - - id: revenue-outdoor - type: metric - attributes: - title: Revenue (Outdoor) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Outdoor") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor - - id: revenue_per_customer - type: metric - attributes: - title: Revenue per Customer - areRelationsValid: true - content: - format: $#,##0.0 - maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer - - id: revenue_per_dollar_spent - type: metric - attributes: - title: Revenue per Dollar Spent - areRelationsValid: true - content: - format: $#,##0.0 - maql: SELECT {metric/revenue} / {metric/campaign_spend} - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent - - id: revenue_top_10 - type: metric - attributes: - title: Revenue / Top 10 - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10 - - id: revenue_top_10_percent - type: metric - attributes: - title: Revenue / Top 10% - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent - - id: total_revenue - type: metric - attributes: - title: Total Revenue - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} BY ALL OTHER - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue - - id: total_revenue-no_filters - type: metric - attributes: - title: Total Revenue (No Filters) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters links: self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500 next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml index d02eb9c3e..77585a80d 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_availability.yaml @@ -212,10 +212,10 @@ interactions: relationships: labels: data: - - id: state - type: label - id: geo__state__location type: label + - id: state + type: label links: self: http://localhost:3000/api/v1/entities/workspaces/demo/attributes/state - id: order_id @@ -1033,29 +1033,29 @@ interactions: type: attribute referenceProperties: - identifier: - id: products + id: customers type: dataset multivalue: false sourceColumns: - - product_id + - customer_id - identifier: - id: date + id: campaigns type: dataset multivalue: false sourceColumns: - - date + - campaign_id - identifier: - id: customers + id: products type: dataset multivalue: false sourceColumns: - - customer_id + - product_id - identifier: - id: campaigns + id: date type: dataset multivalue: false sourceColumns: - - campaign_id + - date dataSourceTableId: demo-test-ds:order_lines areRelationsValid: true type: NORMAL @@ -1102,6 +1102,30 @@ interactions: type: attribute links: self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/customers + - id: products + type: dataset + attributes: + title: Products + description: Products + tags: + - Products + grain: + - id: product_id + type: attribute + dataSourceTableId: demo-test-ds:products + areRelationsValid: true + type: NORMAL + relationships: + attributes: + data: + - id: product_id + type: attribute + - id: product_name + type: attribute + - id: products.category + type: attribute + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products - id: date type: dataset attributes: @@ -1114,62 +1138,38 @@ interactions: relationships: attributes: data: - - id: date.hourOfDay - type: attribute - - id: date.week - type: attribute - - id: date.year + - id: date.dayOfWeek type: attribute - - id: date.dayOfYear + - id: date.quarter type: attribute - - id: date.month + - id: date.quarterOfYear type: attribute - id: date.day type: attribute - - id: date.dayOfMonth + - id: date.week type: attribute - - id: date.quarter + - id: date.hour type: attribute - - id: date.minute + - id: date.hourOfDay type: attribute - - id: date.quarterOfYear + - id: date.dayOfYear type: attribute - id: date.minuteOfHour type: attribute - id: date.weekOfYear type: attribute - - id: date.dayOfWeek - type: attribute - - id: date.hour + - id: date.dayOfMonth type: attribute - - id: date.monthOfYear + - id: date.month type: attribute - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date - - id: products - type: dataset - attributes: - title: Products - description: Products - tags: - - Products - grain: - - id: product_id - type: attribute - dataSourceTableId: demo-test-ds:products - areRelationsValid: true - type: NORMAL - relationships: - attributes: - data: - - id: product_id + - id: date.year type: attribute - - id: product_name + - id: date.monthOfYear type: attribute - - id: products.category + - id: date.minute type: attribute links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/products + self: http://localhost:3000/api/v1/entities/workspaces/demo/datasets/date - id: campaigns type: dataset attributes: @@ -1606,6 +1606,133 @@ interactions: body: string: data: + - id: percent_revenue_per_product + type: metric + attributes: + title: '% Revenue per Product' + areRelationsValid: true + content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL + {attribute/product_id}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product + - id: revenue + type: metric + attributes: + title: Revenue + description: '' + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} + IN ("Returned", "Canceled")) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue + - id: revenue-clothing + type: metric + attributes: + title: Revenue (Clothing) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Clothing") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing + - id: revenue-electronic + type: metric + attributes: + title: Revenue (Electronic) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ( "Electronics") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic + - id: revenue-home + type: metric + attributes: + title: Revenue (Home) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Home") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home + - id: revenue-outdoor + type: metric + attributes: + title: Revenue (Outdoor) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Outdoor") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor + - id: revenue_per_customer + type: metric + attributes: + title: Revenue per Customer + areRelationsValid: true + content: + format: $#,##0.0 + maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer + - id: revenue_per_dollar_spent + type: metric + attributes: + title: Revenue per Dollar Spent + areRelationsValid: true + content: + format: $#,##0.0 + maql: SELECT {metric/revenue} / {metric/campaign_spend} + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent + - id: revenue_top_10 + type: metric + attributes: + title: Revenue / Top 10 + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10 + - id: revenue_top_10_percent + type: metric + attributes: + title: Revenue / Top 10% + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent + - id: total_revenue + type: metric + attributes: + title: Total Revenue + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} BY ALL OTHER + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue + - id: total_revenue-no_filters + type: metric + attributes: + title: Total Revenue (No Filters) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters - id: amount_of_active_customers type: metric attributes: @@ -1734,133 +1861,6 @@ interactions: ALL OTHER) links: self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category - - id: percent_revenue_per_product - type: metric - attributes: - title: '% Revenue per Product' - areRelationsValid: true - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL - {attribute/product_id}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product - - id: revenue - type: metric - attributes: - title: Revenue - description: '' - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue - - id: revenue-clothing - type: metric - attributes: - title: Revenue (Clothing) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Clothing") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing - - id: revenue-electronic - type: metric - attributes: - title: Revenue (Electronic) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ( "Electronics") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic - - id: revenue-home - type: metric - attributes: - title: Revenue (Home) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Home") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home - - id: revenue-outdoor - type: metric - attributes: - title: Revenue (Outdoor) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Outdoor") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor - - id: revenue_per_customer - type: metric - attributes: - title: Revenue per Customer - areRelationsValid: true - content: - format: $#,##0.0 - maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer - - id: revenue_per_dollar_spent - type: metric - attributes: - title: Revenue per Dollar Spent - areRelationsValid: true - content: - format: $#,##0.0 - maql: SELECT {metric/revenue} / {metric/campaign_spend} - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent - - id: revenue_top_10 - type: metric - attributes: - title: Revenue / Top 10 - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10 - - id: revenue_top_10_percent - type: metric - attributes: - title: Revenue / Top 10% - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent - - id: total_revenue - type: metric - attributes: - title: Total Revenue - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} BY ALL OTHER - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue - - id: total_revenue-no_filters - type: metric - attributes: - title: Total Revenue (No Filters) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters links: self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500 next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml index fee4c47a9..f7a5bac2a 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_catalog_list_metrics.yaml @@ -72,6 +72,133 @@ interactions: body: string: data: + - id: percent_revenue_per_product + type: metric + attributes: + title: '% Revenue per Product' + areRelationsValid: true + content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL + {attribute/product_id}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product + - id: revenue + type: metric + attributes: + title: Revenue + description: '' + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} + IN ("Returned", "Canceled")) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue + - id: revenue-clothing + type: metric + attributes: + title: Revenue (Clothing) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Clothing") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing + - id: revenue-electronic + type: metric + attributes: + title: Revenue (Electronic) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ( "Electronics") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic + - id: revenue-home + type: metric + attributes: + title: Revenue (Home) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Home") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home + - id: revenue-outdoor + type: metric + attributes: + title: Revenue (Outdoor) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN + ("Outdoor") + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor + - id: revenue_per_customer + type: metric + attributes: + title: Revenue per Customer + areRelationsValid: true + content: + format: $#,##0.0 + maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer + - id: revenue_per_dollar_spent + type: metric + attributes: + title: Revenue per Dollar Spent + areRelationsValid: true + content: + format: $#,##0.0 + maql: SELECT {metric/revenue} / {metric/campaign_spend} + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent + - id: revenue_top_10 + type: metric + attributes: + title: Revenue / Top 10 + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10 + - id: revenue_top_10_percent + type: metric + attributes: + title: Revenue / Top 10% + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent + - id: total_revenue + type: metric + attributes: + title: Total Revenue + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/revenue} BY ALL OTHER + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue + - id: total_revenue-no_filters + type: metric + attributes: + title: Total Revenue (No Filters) + areRelationsValid: true + content: + format: $#,##0 + maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + links: + self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters - id: amount_of_active_customers type: metric attributes: @@ -200,133 +327,6 @@ interactions: ALL OTHER) links: self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_in_category - - id: percent_revenue_per_product - type: metric - attributes: - title: '% Revenue per Product' - areRelationsValid: true - content: - format: '#,##0.0%' - maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL - {attribute/product_id}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/percent_revenue_per_product - - id: revenue - type: metric - attributes: - title: Revenue - description: '' - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} - IN ("Returned", "Canceled")) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue - - id: revenue-clothing - type: metric - attributes: - title: Revenue (Clothing) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Clothing") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-clothing - - id: revenue-electronic - type: metric - attributes: - title: Revenue (Electronic) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ( "Electronics") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-electronic - - id: revenue-home - type: metric - attributes: - title: Revenue (Home) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Home") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-home - - id: revenue-outdoor - type: metric - attributes: - title: Revenue (Outdoor) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE {label/products.category} IN - ("Outdoor") - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue-outdoor - - id: revenue_per_customer - type: metric - attributes: - title: Revenue per Customer - areRelationsValid: true - content: - format: $#,##0.0 - maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_customer - - id: revenue_per_dollar_spent - type: metric - attributes: - title: Revenue per Dollar Spent - areRelationsValid: true - content: - format: $#,##0.0 - maql: SELECT {metric/revenue} / {metric/campaign_spend} - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_per_dollar_spent - - id: revenue_top_10 - type: metric - attributes: - title: Revenue / Top 10 - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10 - - id: revenue_top_10_percent - type: metric - attributes: - title: Revenue / Top 10% - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/revenue_top_10_percent - - id: total_revenue - type: metric - attributes: - title: Total Revenue - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/revenue} BY ALL OTHER - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue - - id: total_revenue-no_filters - type: metric - attributes: - title: Total Revenue (No Filters) - areRelationsValid: true - content: - format: $#,##0 - maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER - links: - self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics/total_revenue-no_filters links: self: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=0&size=500 next: http://localhost:3000/api/v1/entities/workspaces/demo/metrics?page=1&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml index 88e0dde78..55225cae5 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_analytics_model.yaml @@ -73,10 +73,7 @@ interactions: string: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -117,9 +114,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -151,10 +149,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -298,11 +295,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -320,10 +330,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -336,146 +346,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -533,9 +544,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -605,9 +616,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -680,9 +691,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -735,9 +746,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -788,9 +799,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -837,9 +848,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -908,9 +919,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -961,9 +972,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1056,9 +1067,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1108,9 +1119,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1143,9 +1154,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1195,9 +1206,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1259,9 +1270,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1312,9 +1323,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1365,16 +1376,5 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml index dc3651377..38cc8072a 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_declarative_ldm.yaml @@ -73,47 +73,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -121,131 +124,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -271,55 +274,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -336,5 +331,10 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml index e3814d280..f8b064f4e 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph.yaml @@ -72,358 +72,6 @@ interactions: body: string: graph: - nodes: - - id: campaign - type: analyticalDashboard - title: Campaign - - id: dashboard_plugin - type: analyticalDashboard - title: Dashboard plugin - - id: product_and_category - type: analyticalDashboard - title: Product & Category - - id: campaign_channel_id - type: attribute - title: Campaign channel id - - id: campaign_channels.category - type: attribute - title: Category - - id: campaign_id - type: attribute - title: Campaign id - - id: campaign_name - type: attribute - title: Campaign name - - id: customer_id - type: attribute - title: Customer id - - id: customer_name - type: attribute - title: Customer name - - id: date.day - type: attribute - title: Date - Date - - id: date.dayOfMonth - type: attribute - title: Date - Day of Month - - id: date.dayOfWeek - type: attribute - title: Date - Day of Week - - id: date.dayOfYear - type: attribute - title: Date - Day of Year - - id: date.hour - type: attribute - title: Date - Hour - - id: date.hourOfDay - type: attribute - title: Date - Hour of Day - - id: date.minute - type: attribute - title: Date - Minute - - id: date.minuteOfHour - type: attribute - title: Date - Minute of Hour - - id: date.month - type: attribute - title: Date - Month/Year - - id: date.monthOfYear - type: attribute - title: Date - Month of Year - - id: date.quarter - type: attribute - title: Date - Quarter/Year - - id: date.quarterOfYear - type: attribute - title: Date - Quarter of Year - - id: date.week - type: attribute - title: Date - Week/Year - - id: date.weekOfYear - type: attribute - title: Date - Week of Year - - id: date.year - type: attribute - title: Date - Year - - id: order_id - type: attribute - title: Order id - - id: order_line_id - type: attribute - title: Order line id - - id: order_status - type: attribute - title: Order status - - id: product_id - type: attribute - title: Product id - - id: product_name - type: attribute - title: Product name - - id: products.category - type: attribute - title: Category - - id: region - type: attribute - title: Region - - id: state - type: attribute - title: State - - id: type - type: attribute - title: Type - - id: dashboard_plugin_1 - type: dashboardPlugin - title: dashboard_plugin_1 - - id: dashboard_plugin_2 - type: dashboardPlugin - title: dashboard_plugin_2 - - id: campaign_channels - type: dataset - title: Campaign channels - - id: campaigns - type: dataset - title: Campaigns - - id: customers - type: dataset - title: Customers - - id: date - type: dataset - title: Date - - id: order_lines - type: dataset - title: Order lines - - id: products - type: dataset - title: Products - - id: budget - type: fact - title: Budget - - id: price - type: fact - title: Price - - id: quantity - type: fact - title: Quantity - - id: spend - type: fact - title: Spend - - id: campaign_name_filter - type: filterContext - title: filterContext - - id: region_filter - type: filterContext - title: filterContext - - id: campaign_channel_id - type: label - title: Campaign channel id - - id: campaign_channels.category - type: label - title: Category - - id: campaign_id - type: label - title: Campaign id - - id: campaign_name - type: label - title: Campaign name - - id: customer_id - type: label - title: Customer id - - id: customer_name - type: label - title: Customer name - - id: date.day - type: label - title: Date - Date - - id: date.dayOfMonth - type: label - title: Date - Day of Month - - id: date.dayOfWeek - type: label - title: Date - Day of Week - - id: date.dayOfYear - type: label - title: Date - Day of Year - - id: date.hour - type: label - title: Date - Hour - - id: date.hourOfDay - type: label - title: Date - Hour of Day - - id: date.minute - type: label - title: Date - Minute - - id: date.minuteOfHour - type: label - title: Date - Minute of Hour - - id: date.month - type: label - title: Date - Month/Year - - id: date.monthOfYear - type: label - title: Date - Month of Year - - id: date.quarter - type: label - title: Date - Quarter/Year - - id: date.quarterOfYear - type: label - title: Date - Quarter of Year - - id: date.week - type: label - title: Date - Week/Year - - id: date.weekOfYear - type: label - title: Date - Week of Year - - id: date.year - type: label - title: Date - Year - - id: geo__state__location - type: label - title: Location - - id: order_id - type: label - title: Order id - - id: order_line_id - type: label - title: Order line id - - id: order_status - type: label - title: Order status - - id: product_id - type: label - title: Product id - - id: product_name - type: label - title: Product name - - id: products.category - type: label - title: Category - - id: region - type: label - title: Region - - id: state - type: label - title: State - - id: type - type: label - title: Type - - id: amount_of_active_customers - type: metric - title: '# of Active Customers' - - id: amount_of_orders - type: metric - title: '# of Orders' - - id: amount_of_top_customers - type: metric - title: '# of Top Customers' - - id: amount_of_valid_orders - type: metric - title: '# of Valid Orders' - - id: campaign_spend - type: metric - title: Campaign Spend - - id: order_amount - type: metric - title: Order Amount - - id: percent_revenue - type: metric - title: '% Revenue' - - id: percent_revenue_from_top_10_customers - type: metric - title: '% Revenue from Top 10 Customers' - - id: percent_revenue_from_top_10_percent_customers - type: metric - title: '% Revenue from Top 10% Customers' - - id: percent_revenue_from_top_10_percent_products - type: metric - title: '% Revenue from Top 10% Products' - - id: percent_revenue_from_top_10_products - type: metric - title: '% Revenue from Top 10 Products' - - id: percent_revenue_in_category - type: metric - title: '% Revenue in Category' - - id: percent_revenue_per_product - type: metric - title: '% Revenue per Product' - - id: revenue - type: metric - title: Revenue - - id: revenue-clothing - type: metric - title: Revenue (Clothing) - - id: revenue-electronic - type: metric - title: Revenue (Electronic) - - id: revenue-home - type: metric - title: Revenue (Home) - - id: revenue-outdoor - type: metric - title: Revenue (Outdoor) - - id: revenue_per_customer - type: metric - title: Revenue per Customer - - id: revenue_per_dollar_spent - type: metric - title: Revenue per Dollar Spent - - id: revenue_top_10 - type: metric - title: Revenue / Top 10 - - id: revenue_top_10_percent - type: metric - title: Revenue / Top 10% - - id: total_revenue - type: metric - title: Total Revenue - - id: total_revenue-no_filters - type: metric - title: Total Revenue (No Filters) - - id: campaign_spend - type: visualizationObject - title: Campaign Spend - - id: customers_trend - type: visualizationObject - title: Customers Trend - - id: percent_revenue_per_product_by_customer_and_category - type: visualizationObject - title: '% Revenue per Product by Customer and Category' - - id: percentage_of_customers_by_region - type: visualizationObject - title: Percentage of Customers by Region - - id: product_breakdown - type: visualizationObject - title: Product Breakdown - - id: product_categories_pie_chart - type: visualizationObject - title: Product Categories Pie Chart - - id: product_revenue_comparison-over_previous_period - type: visualizationObject - title: Product Revenue Comparison (over previous period) - - id: product_saleability - type: visualizationObject - title: Product Saleability - - id: revenue_and_quantity_by_product_and_category - type: visualizationObject - title: Revenue and Quantity by Product and Category - - id: revenue_by_category_trend - type: visualizationObject - title: Revenue by Category Trend - - id: revenue_by_product - type: visualizationObject - title: Revenue by Product - - id: revenue_per_usd_vs_spend_by_campaign - type: visualizationObject - title: Revenue per $ vs Spend by Campaign - - id: revenue_trend - type: visualizationObject - title: Revenue Trend - - id: top_10_customers - type: visualizationObject - title: Top 10 Customers - - id: top_10_products - type: visualizationObject - title: Top 10 Products edges: - - id: campaign_channel_id type: attribute @@ -443,7 +91,7 @@ interactions: type: dataset - - id: customer_id type: attribute - - id: amount_of_top_customers + - id: percent_revenue_from_top_10_percent_customers type: metric - - id: customer_id type: attribute @@ -451,15 +99,15 @@ interactions: type: metric - - id: customer_id type: attribute - - id: customers - type: dataset + - id: amount_of_active_customers + type: metric - - id: customer_id type: attribute - - id: percent_revenue_from_top_10_percent_customers - type: metric + - id: customers + type: dataset - - id: customer_id type: attribute - - id: amount_of_active_customers + - id: amount_of_top_customers type: metric - - id: customer_id type: attribute @@ -525,14 +173,14 @@ interactions: type: attribute - id: date type: dataset - - - id: date.year - type: attribute - - id: product_revenue_comparison-over_previous_period - type: visualizationObject - - id: date.year type: attribute - id: date type: dataset + - - id: date.year + type: attribute + - id: product_revenue_comparison-over_previous_period + type: visualizationObject - - id: order_id type: attribute - id: order_lines @@ -553,10 +201,6 @@ interactions: type: attribute - id: order_lines type: dataset - - - id: product_id - type: attribute - - id: products - type: dataset - - id: product_id type: attribute - id: percent_revenue_from_top_10_percent_products @@ -565,6 +209,10 @@ interactions: type: attribute - id: percent_revenue_from_top_10_products type: metric + - - id: product_id + type: attribute + - id: products + type: dataset - - id: product_id type: attribute - id: percent_revenue_per_product @@ -573,14 +221,14 @@ interactions: type: attribute - id: products type: dataset - - - id: products.category - type: attribute - - id: products - type: dataset - - id: products.category type: attribute - id: percent_revenue_in_category type: metric + - - id: products.category + type: attribute + - id: products + type: dataset - - id: region type: attribute - id: customers @@ -599,11 +247,11 @@ interactions: type: analyticalDashboard - - id: campaigns type: dataset - - id: campaign_channels + - id: order_lines type: dataset - - id: campaigns type: dataset - - id: order_lines + - id: campaign_channels type: dataset - - id: customers type: dataset @@ -611,11 +259,15 @@ interactions: type: dataset - - id: date type: dataset - - id: order_lines + - id: customers_trend + type: visualizationObject + - - id: date type: dataset + - id: product_and_category + type: analyticalDashboard - - id: date type: dataset - - id: revenue_by_category_trend + - id: revenue_trend type: visualizationObject - - id: date type: dataset @@ -623,19 +275,15 @@ interactions: type: visualizationObject - - id: date type: dataset - - id: product_and_category - type: analyticalDashboard - - - id: date - type: dataset - - id: customers_trend + - id: revenue_by_category_trend type: visualizationObject - - id: date type: dataset - - id: percentage_of_customers_by_region - type: visualizationObject + - id: order_lines + type: dataset - - id: date type: dataset - - id: revenue_trend + - id: percentage_of_customers_by_region type: visualizationObject - - id: products type: dataset @@ -669,21 +317,21 @@ interactions: type: fact - id: revenue_and_quantity_by_product_and_category type: visualizationObject - - - id: spend - type: fact - - id: campaign_channels - type: dataset - - id: spend type: fact - id: campaign_spend type: metric + - - id: spend + type: fact + - id: campaign_channels + type: dataset - - id: campaign_name_filter type: filterContext - - id: campaign + - id: dashboard_plugin type: analyticalDashboard - - id: campaign_name_filter type: filterContext - - id: dashboard_plugin + - id: campaign type: analyticalDashboard - - id: region_filter type: filterContext @@ -693,30 +341,30 @@ interactions: type: label - id: campaign_channel_id type: attribute - - - id: campaign_channels.category - type: label - - id: campaign_spend - type: visualizationObject - - id: campaign_channels.category type: label - id: campaign_channels.category type: attribute + - - id: campaign_channels.category + type: label + - id: campaign_spend + type: visualizationObject - - id: campaign_id type: label - id: campaign_id type: attribute - - id: campaign_name type: label - - id: campaign_name - type: attribute + - id: campaign_spend + type: visualizationObject - - id: campaign_name type: label - id: campaign_name_filter type: filterContext - - id: campaign_name type: label - - id: campaign_spend - type: visualizationObject + - id: campaign_name + type: attribute - - id: campaign_name type: label - id: revenue_per_usd_vs_spend_by_campaign @@ -779,11 +427,7 @@ interactions: type: visualizationObject - - id: date.month type: label - - id: percentage_of_customers_by_region - type: visualizationObject - - - id: date.month - type: label - - id: revenue_by_category_trend + - id: revenue_trend type: visualizationObject - - id: date.month type: label @@ -791,7 +435,11 @@ interactions: type: attribute - - id: date.month type: label - - id: revenue_trend + - id: percentage_of_customers_by_region + type: visualizationObject + - - id: date.month + type: label + - id: revenue_by_category_trend type: visualizationObject - - id: date.monthOfYear type: label @@ -829,14 +477,14 @@ interactions: type: label - id: order_line_id type: attribute - - - id: order_status - type: label - - id: amount_of_valid_orders - type: metric - - id: order_status type: label - id: order_status type: attribute + - - id: order_status + type: label + - id: amount_of_valid_orders + type: metric - - id: order_status type: label - id: revenue @@ -847,100 +495,100 @@ interactions: type: attribute - - id: product_name type: label - - id: product_categories_pie_chart - type: visualizationObject + - id: product_name + type: attribute - - id: product_name type: label - - id: product_saleability + - id: top_10_products type: visualizationObject - - id: product_name type: label - - id: revenue_by_product + - id: product_breakdown type: visualizationObject - - id: product_name type: label - - id: percent_revenue_per_product_by_customer_and_category + - id: product_revenue_comparison-over_previous_period type: visualizationObject - - id: product_name type: label - - id: product_breakdown + - id: product_saleability type: visualizationObject - - id: product_name type: label - - id: product_name - type: attribute + - id: revenue_by_product + type: visualizationObject - - id: product_name type: label - - id: product_revenue_comparison-over_previous_period + - id: revenue_and_quantity_by_product_and_category type: visualizationObject - - id: product_name type: label - - id: top_10_products + - id: product_categories_pie_chart type: visualizationObject - - id: product_name type: label - - id: revenue_and_quantity_by_product_and_category + - id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - - id: products.category type: label - - id: product_categories_pie_chart + - id: top_10_products type: visualizationObject - - - id: products.category - type: label - - id: revenue-home - type: metric - - id: products.category type: label - id: revenue-clothing type: metric - - id: products.category type: label - - id: revenue-outdoor - type: metric + - id: product_breakdown + type: visualizationObject - - id: products.category type: label - - id: percent_revenue_per_product_by_customer_and_category + - id: product_revenue_comparison-over_previous_period type: visualizationObject - - id: products.category type: label - id: revenue-electronic type: metric + - - id: products.category + type: label + - id: revenue_by_category_trend + type: visualizationObject - - id: products.category type: label - id: products.category type: attribute - - id: products.category type: label - - id: product_breakdown - type: visualizationObject + - id: revenue-home + type: metric - - id: products.category type: label - - id: revenue_by_category_trend + - id: revenue_and_quantity_by_product_and_category type: visualizationObject - - id: products.category type: label - - id: product_revenue_comparison-over_previous_period - type: visualizationObject + - id: revenue-outdoor + type: metric - - id: products.category type: label - - id: top_10_products + - id: product_categories_pie_chart type: visualizationObject - - id: products.category type: label - - id: revenue_and_quantity_by_product_and_category + - id: percent_revenue_per_product_by_customer_and_category type: visualizationObject - - id: region type: label - id: region_filter type: filterContext - - - id: region - type: label - - id: region - type: attribute - - id: region type: label - id: percentage_of_customers_by_region type: visualizationObject + - - id: region + type: label + - id: region + type: attribute - - id: state type: label - id: state @@ -949,14 +597,14 @@ interactions: type: label - id: top_10_customers type: visualizationObject - - - id: type - type: label - - id: type - type: attribute - - id: type type: label - id: campaign_spend type: visualizationObject + - - id: type + type: label + - id: type + type: attribute - - id: amount_of_active_customers type: metric - id: customers_trend @@ -981,14 +629,14 @@ interactions: type: metric - id: revenue_trend type: visualizationObject - - - id: campaign_spend - type: metric - - id: revenue_per_dollar_spent - type: metric - - id: campaign_spend type: metric - id: campaign_spend type: visualizationObject + - - id: campaign_spend + type: metric + - id: revenue_per_dollar_spent + type: metric - - id: campaign_spend type: metric - id: revenue_per_usd_vs_spend_by_campaign @@ -1007,108 +655,108 @@ interactions: type: visualizationObject - - id: revenue type: metric - - id: total_revenue + - id: percent_revenue_from_top_10_percent_customers type: metric - - id: revenue type: metric - - id: percent_revenue + - id: revenue_per_customer type: metric - - id: revenue type: metric - - id: product_categories_pie_chart - type: visualizationObject + - id: percent_revenue_from_top_10_percent_products + type: metric - - id: revenue type: metric - - id: percent_revenue_per_product + - id: percent_revenue_from_top_10_products type: metric - - id: revenue type: metric - - id: revenue_by_product + - id: product_breakdown type: visualizationObject - - id: revenue type: metric - - id: revenue-clothing - type: metric - - - id: revenue - type: metric - - id: revenue_top_10_percent + - id: percent_revenue_in_category type: metric - - id: revenue type: metric - - id: percent_revenue_per_product_by_customer_and_category + - id: product_saleability type: visualizationObject - - id: revenue type: metric - - id: percent_revenue_from_top_10_percent_products + - id: revenue-home type: metric - - id: revenue type: metric - - id: amount_of_top_customers + - id: revenue_by_product + type: visualizationObject + - - id: revenue + type: metric + - id: revenue_per_dollar_spent type: metric - - id: revenue type: metric - - id: revenue_by_category_trend + - id: revenue_and_quantity_by_product_and_category type: visualizationObject - - id: revenue type: metric - - id: percent_revenue_from_top_10_percent_customers + - id: revenue-outdoor type: metric - - id: revenue type: metric - - id: product_revenue_comparison-over_previous_period + - id: product_categories_pie_chart type: visualizationObject - - id: revenue type: metric - - id: revenue_and_quantity_by_product_and_category - type: visualizationObject - - - id: revenue + - id: amount_of_top_customers type: metric - - id: revenue_per_dollar_spent + - - id: revenue type: metric + - id: percent_revenue_per_product_by_customer_and_category + type: visualizationObject - - id: revenue type: metric - - id: percent_revenue_from_top_10_products + - id: revenue_top_10_percent type: metric - - id: revenue type: metric - - id: percent_revenue_in_category + - id: revenue-clothing type: metric - - id: revenue type: metric - - id: product_saleability + - id: revenue_trend type: visualizationObject - - id: revenue type: metric - - id: revenue-home + - id: percent_revenue type: metric - - id: revenue type: metric - - id: percent_revenue_from_top_10_customers + - id: revenue_top_10 type: metric - - id: revenue type: metric - - id: revenue-outdoor - type: metric + - id: product_revenue_comparison-over_previous_period + type: visualizationObject - - id: revenue type: metric - id: revenue-electronic type: metric - - id: revenue type: metric - - id: product_breakdown - type: visualizationObject - - - id: revenue + - id: total_revenue type: metric - - id: revenue_per_customer + - - id: revenue type: metric + - id: revenue_by_category_trend + type: visualizationObject - - id: revenue type: metric - - id: revenue_top_10 + - id: percent_revenue_per_product type: metric - - id: revenue type: metric - - id: revenue_trend - type: visualizationObject + - id: percent_revenue_from_top_10_customers + type: metric - - id: revenue_per_customer type: metric - id: customers_trend @@ -1119,20 +767,20 @@ interactions: type: visualizationObject - - id: revenue_top_10 type: metric - - id: percent_revenue_from_top_10_products - type: metric - - - id: revenue_top_10 - type: metric - - id: top_10_customers + - id: top_10_products type: visualizationObject - - id: revenue_top_10 type: metric - - id: top_10_products - type: visualizationObject + - id: percent_revenue_from_top_10_products + type: metric - - id: revenue_top_10 type: metric - id: percent_revenue_from_top_10_customers type: metric + - - id: revenue_top_10 + type: metric + - id: top_10_customers + type: visualizationObject - - id: revenue_top_10_percent type: metric - id: percent_revenue_from_top_10_percent_customers @@ -1189,3 +837,355 @@ interactions: type: visualizationObject - id: product_and_category type: analyticalDashboard + nodes: + - id: campaign + title: Campaign + type: analyticalDashboard + - id: dashboard_plugin + title: Dashboard plugin + type: analyticalDashboard + - id: product_and_category + title: Product & Category + type: analyticalDashboard + - id: campaign_channel_id + title: Campaign channel id + type: attribute + - id: campaign_channels.category + title: Category + type: attribute + - id: campaign_id + title: Campaign id + type: attribute + - id: campaign_name + title: Campaign name + type: attribute + - id: customer_id + title: Customer id + type: attribute + - id: customer_name + title: Customer name + type: attribute + - id: date.day + title: Date - Date + type: attribute + - id: date.dayOfMonth + title: Date - Day of Month + type: attribute + - id: date.dayOfWeek + title: Date - Day of Week + type: attribute + - id: date.dayOfYear + title: Date - Day of Year + type: attribute + - id: date.hour + title: Date - Hour + type: attribute + - id: date.hourOfDay + title: Date - Hour of Day + type: attribute + - id: date.minute + title: Date - Minute + type: attribute + - id: date.minuteOfHour + title: Date - Minute of Hour + type: attribute + - id: date.month + title: Date - Month/Year + type: attribute + - id: date.monthOfYear + title: Date - Month of Year + type: attribute + - id: date.quarter + title: Date - Quarter/Year + type: attribute + - id: date.quarterOfYear + title: Date - Quarter of Year + type: attribute + - id: date.week + title: Date - Week/Year + type: attribute + - id: date.weekOfYear + title: Date - Week of Year + type: attribute + - id: date.year + title: Date - Year + type: attribute + - id: order_id + title: Order id + type: attribute + - id: order_line_id + title: Order line id + type: attribute + - id: order_status + title: Order status + type: attribute + - id: product_id + title: Product id + type: attribute + - id: product_name + title: Product name + type: attribute + - id: products.category + title: Category + type: attribute + - id: region + title: Region + type: attribute + - id: state + title: State + type: attribute + - id: type + title: Type + type: attribute + - id: dashboard_plugin_1 + title: dashboard_plugin_1 + type: dashboardPlugin + - id: dashboard_plugin_2 + title: dashboard_plugin_2 + type: dashboardPlugin + - id: campaign_channels + title: Campaign channels + type: dataset + - id: campaigns + title: Campaigns + type: dataset + - id: customers + title: Customers + type: dataset + - id: date + title: Date + type: dataset + - id: order_lines + title: Order lines + type: dataset + - id: products + title: Products + type: dataset + - id: budget + title: Budget + type: fact + - id: price + title: Price + type: fact + - id: quantity + title: Quantity + type: fact + - id: spend + title: Spend + type: fact + - id: campaign_name_filter + title: filterContext + type: filterContext + - id: region_filter + title: filterContext + type: filterContext + - id: campaign_channel_id + title: Campaign channel id + type: label + - id: campaign_channels.category + title: Category + type: label + - id: campaign_id + title: Campaign id + type: label + - id: campaign_name + title: Campaign name + type: label + - id: customer_id + title: Customer id + type: label + - id: customer_name + title: Customer name + type: label + - id: date.day + title: Date - Date + type: label + - id: date.dayOfMonth + title: Date - Day of Month + type: label + - id: date.dayOfWeek + title: Date - Day of Week + type: label + - id: date.dayOfYear + title: Date - Day of Year + type: label + - id: date.hour + title: Date - Hour + type: label + - id: date.hourOfDay + title: Date - Hour of Day + type: label + - id: date.minute + title: Date - Minute + type: label + - id: date.minuteOfHour + title: Date - Minute of Hour + type: label + - id: date.month + title: Date - Month/Year + type: label + - id: date.monthOfYear + title: Date - Month of Year + type: label + - id: date.quarter + title: Date - Quarter/Year + type: label + - id: date.quarterOfYear + title: Date - Quarter of Year + type: label + - id: date.week + title: Date - Week/Year + type: label + - id: date.weekOfYear + title: Date - Week of Year + type: label + - id: date.year + title: Date - Year + type: label + - id: geo__state__location + title: Location + type: label + - id: order_id + title: Order id + type: label + - id: order_line_id + title: Order line id + type: label + - id: order_status + title: Order status + type: label + - id: product_id + title: Product id + type: label + - id: product_name + title: Product name + type: label + - id: products.category + title: Category + type: label + - id: region + title: Region + type: label + - id: state + title: State + type: label + - id: type + title: Type + type: label + - id: amount_of_active_customers + title: '# of Active Customers' + type: metric + - id: amount_of_orders + title: '# of Orders' + type: metric + - id: amount_of_top_customers + title: '# of Top Customers' + type: metric + - id: amount_of_valid_orders + title: '# of Valid Orders' + type: metric + - id: campaign_spend + title: Campaign Spend + type: metric + - id: order_amount + title: Order Amount + type: metric + - id: percent_revenue + title: '% Revenue' + type: metric + - id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + type: metric + - id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + type: metric + - id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + type: metric + - id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + type: metric + - id: percent_revenue_in_category + title: '% Revenue in Category' + type: metric + - id: percent_revenue_per_product + title: '% Revenue per Product' + type: metric + - id: revenue + title: Revenue + type: metric + - id: revenue-clothing + title: Revenue (Clothing) + type: metric + - id: revenue-electronic + title: Revenue (Electronic) + type: metric + - id: revenue-home + title: Revenue (Home) + type: metric + - id: revenue-outdoor + title: Revenue (Outdoor) + type: metric + - id: revenue_per_customer + title: Revenue per Customer + type: metric + - id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + type: metric + - id: revenue_top_10 + title: Revenue / Top 10 + type: metric + - id: revenue_top_10_percent + title: Revenue / Top 10% + type: metric + - id: total_revenue + title: Total Revenue + type: metric + - id: total_revenue-no_filters + title: Total Revenue (No Filters) + type: metric + - id: campaign_spend + title: Campaign Spend + type: visualizationObject + - id: customers_trend + title: Customers Trend + type: visualizationObject + - id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + type: visualizationObject + - id: percentage_of_customers_by_region + title: Percentage of Customers by Region + type: visualizationObject + - id: product_breakdown + title: Product Breakdown + type: visualizationObject + - id: product_categories_pie_chart + title: Product Categories Pie Chart + type: visualizationObject + - id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + type: visualizationObject + - id: product_saleability + title: Product Saleability + type: visualizationObject + - id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + type: visualizationObject + - id: revenue_by_category_trend + title: Revenue by Category Trend + type: visualizationObject + - id: revenue_by_product + title: Revenue by Product + type: visualizationObject + - id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + type: visualizationObject + - id: revenue_trend + title: Revenue Trend + type: visualizationObject + - id: top_10_customers + title: Top 10 Customers + type: visualizationObject + - id: top_10_products + title: Top 10 Products + type: visualizationObject diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml index e8ac3ab6f..35bcc1bf5 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_get_dependent_entities_graph_from_entry_points.yaml @@ -77,15 +77,15 @@ interactions: body: string: graph: - nodes: - - id: campaign_channel_id - type: attribute - title: Campaign channel id - - id: campaign_channels - type: dataset - title: Campaign channels edges: - - id: campaign_channel_id type: attribute - id: campaign_channels type: dataset + nodes: + - id: campaign_channel_id + title: Campaign channel id + type: attribute + - id: campaign_channels + title: Campaign channels + type: dataset diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml index 6992f6682..75cf45ac6 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_modify_ds_and_put_declarative_ldm.yaml @@ -75,7 +75,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: 2b1a486533180887 + traceId: 3e34dfa9522e45fb - request: method: POST uri: http://localhost:3000/api/v1/entities/workspaces @@ -230,47 +230,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -278,131 +281,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -428,55 +431,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -493,8 +488,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: GET uri: http://localhost:3000/api/v1/entities/dataSources?page=0&size=500 @@ -1402,47 +1402,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -1450,131 +1453,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -1600,55 +1603,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -1665,8 +1660,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml index 98b4e8223..4f2f8021d 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_analytics_model.yaml @@ -75,7 +75,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: da2db2fb1c374801 + traceId: 4a9b9bb8262db2b0 - request: method: POST uri: http://localhost:3000/api/v1/entities/workspaces @@ -230,47 +230,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -278,131 +281,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -428,55 +431,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -493,8 +488,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaces/demo_testing/logicalModel @@ -900,10 +900,7 @@ interactions: string: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -944,9 +941,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -978,10 +976,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -1125,11 +1122,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -1147,10 +1157,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -1163,146 +1173,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -1360,9 +1371,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -1432,9 +1443,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -1507,9 +1518,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -1562,9 +1573,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -1615,9 +1626,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -1664,9 +1675,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -1735,9 +1746,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -1788,9 +1799,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1883,9 +1894,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1935,9 +1946,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1970,9 +1981,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -2022,9 +2033,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -2086,9 +2097,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -2139,9 +2150,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -2192,19 +2203,8 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -2345,7 +2345,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -3789,10 +3789,7 @@ interactions: string: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -3833,9 +3830,10 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -3867,10 +3865,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -4014,11 +4011,24 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -4036,10 +4046,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d negativeSelection: true version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: attributeElements: @@ -4052,146 +4062,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af negativeSelection: true version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -4249,9 +4260,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -4321,9 +4332,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -4396,9 +4407,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -4451,9 +4462,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -4504,9 +4515,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -4553,9 +4564,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -4624,9 +4635,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -4677,9 +4688,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -4772,9 +4783,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -4824,9 +4835,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -4859,9 +4870,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -4911,9 +4922,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -4975,9 +4986,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -5028,9 +5039,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -5081,19 +5092,8 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml index e0919e92a..cc592cf3a 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_load_and_put_declarative_ldm.yaml @@ -75,7 +75,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: 0b251001b8116a59 + traceId: 8b143441e54ced7d - request: method: POST uri: http://localhost:3000/api/v1/entities/workspaces @@ -230,47 +230,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -278,131 +281,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -428,55 +431,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -493,8 +488,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -635,7 +635,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -1043,47 +1043,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -1091,131 +1094,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -1241,55 +1244,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -1306,8 +1301,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml index 5d8fbba12..bb5fc95e3 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_analytics_model.yaml @@ -75,7 +75,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: cad2a25488d5a60e + traceId: 1310faad657193b2 - request: method: POST uri: http://localhost:3000/api/v1/entities/workspaces @@ -230,47 +230,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -278,131 +281,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -428,55 +431,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -493,8 +488,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaces/test_put_declarative_analytics_model/logicalModel @@ -900,10 +900,10 @@ interactions: string: analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaces/test_put_declarative_analytics_model/analyticsModel @@ -1048,10 +1048,10 @@ interactions: string: analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml index fa3958f03..daeafdce3 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_put_declarative_ldm.yaml @@ -75,7 +75,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: 9c4d14d6ff7b1303 + traceId: bca336df26e68192 - request: method: POST uri: http://localhost:3000/api/v1/entities/workspaces @@ -230,47 +230,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -278,131 +281,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -428,55 +431,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -493,8 +488,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaces/test_put_declarative_ldm/logicalModel @@ -900,47 +900,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -948,131 +951,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -1098,55 +1101,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -1163,8 +1158,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml index dffdc0854..5b4446d23 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_analytics_model.yaml @@ -73,10 +73,7 @@ interactions: string: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -117,9 +114,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -151,10 +149,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -298,11 +295,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -320,10 +330,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -336,146 +346,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -533,9 +544,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -605,9 +616,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -680,9 +691,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -735,9 +746,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -788,9 +799,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -837,9 +848,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -908,9 +919,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -961,9 +972,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1056,9 +1067,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1108,9 +1119,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1143,9 +1154,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1195,9 +1206,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1259,9 +1270,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1312,9 +1323,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1365,19 +1376,8 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -1518,7 +1518,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -1592,10 +1592,7 @@ interactions: string: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -1636,9 +1633,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -1670,10 +1668,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -1817,11 +1814,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -1839,10 +1849,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -1855,146 +1865,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -2052,9 +2063,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -2124,9 +2135,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -2199,9 +2210,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -2254,9 +2265,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -2307,9 +2318,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -2356,9 +2367,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -2427,9 +2438,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -2480,9 +2491,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -2575,9 +2586,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -2627,9 +2638,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -2662,9 +2673,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -2714,9 +2725,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -2778,9 +2789,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -2831,9 +2842,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -2884,19 +2895,8 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -3037,6 +3037,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml index bc551b4d1..61ef22023 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/demo_store_declarative_ldm.yaml @@ -73,47 +73,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -121,131 +124,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -271,55 +274,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -336,8 +331,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -478,7 +478,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -552,47 +552,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -600,131 +603,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -750,55 +753,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -815,8 +810,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -957,6 +957,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/workspace_content/ldm_store_load.yaml b/gooddata-sdk/tests/catalog/fixtures/workspace_content/ldm_store_load.yaml index cfba829c2..56736057f 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspace_content/ldm_store_load.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspace_content/ldm_store_load.yaml @@ -73,47 +73,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -121,131 +124,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -271,55 +274,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -336,8 +331,13 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date - request: method: GET uri: http://localhost:3000/api/v1/layout/workspaces/demo/logicalModel @@ -409,47 +409,50 @@ interactions: string: ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -457,131 +460,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -607,55 +610,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -672,5 +667,10 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml index 6fe5f1711..5d2c85aeb 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_create_workspace.yaml @@ -189,7 +189,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: e9a022c8fbe6e760 + traceId: 83a475fd9c1b3830 - request: method: POST uri: http://localhost:3000/api/v1/entities/workspaces diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml index 9607a7add..fbb09a2af 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_declarative_workspaces.yaml @@ -26,7 +26,7 @@ interactions: Connection: - keep-alive Content-Length: - - '33785' + - '33878' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -71,283 +71,51 @@ interactions: - 1 ; mode=block body: string: + workspaceDataFilters: + - columnName: wdf__region + id: wdf__region + title: Customer region + workspace: + id: demo + type: workspace + workspaceDataFilterSettings: + - filterValues: + - West + id: region_west + title: Region West + workspace: + id: demo_west + type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state + workspace: + id: demo_west + type: workspace + workspaceDataFilterSettings: + - filterValues: + - California + id: region_west_california + title: Region West California + workspace: + id: demo_west_california + type: workspace workspaces: - - id: demo - name: Demo + - customApplicationSettings: [] + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + id: demo model: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -388,9 +156,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -422,10 +191,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -570,11 +338,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -592,10 +373,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -608,146 +389,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -805,9 +587,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -877,9 +659,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -952,9 +734,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -1007,9 +789,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -1060,9 +842,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -1109,9 +891,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -1180,9 +962,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -1233,9 +1015,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1328,9 +1110,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1380,9 +1162,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1415,9 +1197,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1467,9 +1249,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1531,9 +1313,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1584,9 +1366,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1637,219 +1419,54 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' - permissions: - - name: ANALYZE - assignee: - id: demo2 - type: user - - name: VIEW - assignee: - id: demoGroup - type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: - id: demo2 - type: user - - name: ANALYZE - assignee: - id: demoGroup - type: userGroup - settings: [] - - id: demo_west - name: Demo West - model: - ldm: - datasets: [] - dateInstances: [] - analytics: - analyticalDashboards: [] - filterContexts: [] - metrics: [] - visualizationObjects: [] - dashboardPlugins: [] - parent: - id: demo - type: workspace - permissions: [] - hierarchyPermissions: [] - settings: [] - - id: demo_west_california - name: Demo West California - model: - ldm: - datasets: [] - dateInstances: [] - analytics: - analyticalDashboards: [] - filterContexts: [] - metrics: [] - visualizationObjects: [] - dashboardPlugins: [] - parent: - id: demo_west - type: workspace - permissions: [] - hierarchyPermissions: [] - settings: [] - workspaceDataFilters: - - id: wdf__region - title: Customer region - columnName: wdf__region - workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: - - West - workspace: - id: demo_west - type: workspace - workspace: - id: demo - type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state - workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: - - California - workspace: - id: demo_west_california - type: workspace - workspace: - id: demo_west - type: workspace - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/workspaces - body: null - headers: - Accept: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '33785' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: - workspaces: - - id: demo - name: Demo - model: + id: top_10_products + title: Top 10 Products ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] - tags: - - Campaign channels sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels + title: Category + - description: Type + id: type + labels: [] sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -1857,131 +1474,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -2007,55 +1624,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -2072,103 +1681,265 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date + name: Demo + permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW + settings: [] + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west + model: analytics: - analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: - filterContextRef: - identifier: - id: campaign_name_filter - type: filterContext - layout: - type: IDashboardLayout - sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: - xl: - gridWidth: 6 - widget: - type: insight - title: Campaign Spend - description: '' - ignoreDashboardFilters: [] - insight: - identifier: - id: campaign_spend - type: visualizationObject - drills: [] - properties: {} - - type: IDashboardLayoutItem - size: - xl: - gridWidth: 6 - widget: - type: insight - title: Revenue per $ vs Spend by Campaign - description: '' - ignoreDashboardFilters: [] - insight: - identifier: - id: revenue_per_usd_vs_spend_by_campaign - type: visualizationObject - drills: [] - properties: {} - version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: - filterContextRef: - identifier: - id: campaign_name_filter - type: filterContext - layout: - sections: - - items: - - size: - xl: - gridWidth: 12 - type: IDashboardLayoutItem - widget: - description: '' - drills: [] - ignoreDashboardFilters: [] - insight: - identifier: - id: top_10_products - type: visualizationObject - properties: {} - title: DHO simple - type: insight - type: IDashboardLayoutSection - type: IDashboardLayout - plugins: - - plugin: - identifier: - id: dashboard_plugin_1 - type: dashboardPlugin - version: '2' - version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: - filterContextRef: - identifier: - id: region_filter - type: filterContext - layout: - type: IDashboardLayout - sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + analyticalDashboards: [] + dashboardPlugins: [] + filterContexts: [] + metrics: [] + visualizationObjects: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West + parent: + id: demo + type: workspace + permissions: [] + settings: [] + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west_california + model: + analytics: + analyticalDashboards: [] + dashboardPlugins: [] + filterContexts: [] + metrics: [] + visualizationObjects: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West California + parent: + id: demo_west + type: workspace + permissions: [] + settings: [] + - request: + method: GET + uri: http://localhost:3000/api/v1/layout/workspaces + body: null + headers: + Accept: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '33878' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + workspaceDataFilters: + - columnName: wdf__region + id: wdf__region + title: Customer region + workspace: + id: demo + type: workspace + workspaceDataFilterSettings: + - filterValues: + - West + id: region_west + title: Region West + workspace: + id: demo_west + type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state + workspace: + id: demo_west + type: workspace + workspaceDataFilterSettings: + - filterValues: + - California + id: region_west_california + title: Region West California + workspace: + id: demo_west_california + type: workspace + workspaces: + - customApplicationSettings: [] + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + id: demo + model: + analytics: + analyticalDashboards: + - content: + filterContextRef: + identifier: + id: campaign_name_filter + type: filterContext + layout: + type: IDashboardLayout + sections: + - type: IDashboardLayoutSection + items: + - type: IDashboardLayoutItem + size: + xl: + gridWidth: 6 + widget: + type: insight + title: Campaign Spend + description: '' + ignoreDashboardFilters: [] + insight: + identifier: + id: campaign_spend + type: visualizationObject + drills: [] + properties: {} + - type: IDashboardLayoutItem + size: + xl: + gridWidth: 6 + widget: + type: insight + title: Revenue per $ vs Spend by Campaign + description: '' + ignoreDashboardFilters: [] + insight: + identifier: + id: revenue_per_usd_vs_spend_by_campaign + type: visualizationObject + drills: [] + properties: {} + version: '2' + description: '' + id: campaign + title: Campaign + - content: + filterContextRef: + identifier: + id: campaign_name_filter + type: filterContext + layout: + sections: + - items: + - size: + xl: + gridWidth: 12 + type: IDashboardLayoutItem + widget: + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: top_10_products + type: visualizationObject + properties: {} + title: DHO simple + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout + plugins: + - plugin: + identifier: + id: dashboard_plugin_1 + type: dashboardPlugin + version: '2' + version: '2' + id: dashboard_plugin + title: Dashboard plugin + - content: + filterContextRef: + identifier: + id: region_filter + type: filterContext + layout: + type: IDashboardLayout + sections: + - type: IDashboardLayoutSection + items: + - type: IDashboardLayoutItem + size: xl: gridWidth: 6 widget: @@ -2302,11 +2073,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -2324,10 +2108,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -2340,146 +2124,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -2537,9 +2322,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -2609,9 +2394,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -2684,9 +2469,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -2739,9 +2524,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -2792,9 +2577,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -2841,9 +2626,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -2912,9 +2697,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -2965,9 +2750,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -3060,9 +2845,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -3112,9 +2897,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -3147,9 +2932,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -3199,9 +2984,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -3263,9 +3048,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -3316,9 +3101,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -3369,100 +3154,321 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products + ldm: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date + name: Demo permissions: - - name: ANALYZE - assignee: - id: demo2 - type: user - - name: VIEW - assignee: - id: demoGroup - type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: ANALYZE - assignee: + name: ANALYZE + - assignee: id: demoGroup type: userGroup + name: VIEW settings: [] - - id: demo_west - name: Demo West + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - - id: demo_west_california - name: Demo West California + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west_california model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - workspaceDataFilters: - - id: wdf__region - title: Customer region - columnName: wdf__region - workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: - - West - workspace: - id: demo_west - type: workspace - workspace: - id: demo - type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state - workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: - - California - workspace: - id: demo_west_california - type: workspace - workspace: - id: demo_west - type: workspace diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml index 0fe77fa9e..10ec0c837 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_delete_workspace.yaml @@ -553,7 +553,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: 09902a2df0617f43 + traceId: 16412fc7edd54b4a - request: method: POST uri: http://localhost:3000/api/v1/entities/workspaces diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml index e97e74e98..788b7c17c 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace.yaml @@ -71,279 +71,9 @@ interactions: - 1 ; mode=block body: string: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -384,9 +114,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -418,10 +149,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -565,11 +295,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -587,10 +330,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -603,146 +346,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -800,9 +544,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -872,9 +616,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -947,9 +691,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -1002,9 +746,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -1055,9 +799,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -1104,9 +848,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -1175,9 +919,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -1228,9 +972,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1323,9 +1067,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1375,9 +1119,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1410,9 +1154,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1462,9 +1206,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1526,9 +1270,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1579,9 +1323,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1632,131 +1376,54 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/workspaces/demo - body: null - headers: - Accept: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '32180' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: + id: top_10_products + title: Top 10 Products ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -1764,131 +1431,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + id: campaigns + type: dataSource + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -1914,55 +1581,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -1979,14 +1638,85 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date + - request: + method: GET + uri: http://localhost:3000/api/v1/layout/workspaces/demo + body: null + headers: + Accept: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '32180' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -2027,9 +1757,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -2061,10 +1792,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -2208,11 +1938,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -2230,10 +1973,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -2246,146 +1989,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -2443,9 +2187,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -2515,9 +2259,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -2590,9 +2334,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -2645,9 +2389,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -2698,9 +2442,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -2747,9 +2491,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -2818,9 +2562,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -2871,9 +2615,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -2966,9 +2710,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -3018,9 +2762,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -3053,9 +2797,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -3105,9 +2849,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -3169,9 +2913,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -3222,9 +2966,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -3275,16 +3019,272 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products + ldm: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml index 6a8175885..909de7ef1 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspace_data_filters.yaml @@ -72,34 +72,34 @@ interactions: body: string: workspaceDataFilters: - - id: wdf__region + - columnName: wdf__region + id: wdf__region title: Customer region - columnName: wdf__region + workspace: + id: demo + type: workspace workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: + - filterValues: - West + id: region_west + title: Region West workspace: id: demo_west type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state workspace: - id: demo + id: demo_west type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: + - filterValues: - California + id: region_west_california + title: Region West California workspace: id: demo_west_california type: workspace - workspace: - id: demo_west - type: workspace - request: method: GET uri: http://localhost:3000/api/v1/layout/workspaceDataFilters @@ -170,31 +170,31 @@ interactions: body: string: workspaceDataFilters: - - id: wdf__region + - columnName: wdf__region + id: wdf__region title: Customer region - columnName: wdf__region + workspace: + id: demo + type: workspace workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: + - filterValues: - West + id: region_west + title: Region West workspace: id: demo_west type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state workspace: - id: demo + id: demo_west type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: + - filterValues: - California + id: region_west_california + title: Region West California workspace: id: demo_west_california type: workspace - workspace: - id: demo_west - type: workspace diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml index 206891e8d..01a0fc0c3 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces.yaml @@ -26,7 +26,7 @@ interactions: Connection: - keep-alive Content-Length: - - '33785' + - '33878' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -71,283 +71,51 @@ interactions: - 1 ; mode=block body: string: + workspaceDataFilters: + - columnName: wdf__region + id: wdf__region + title: Customer region + workspace: + id: demo + type: workspace + workspaceDataFilterSettings: + - filterValues: + - West + id: region_west + title: Region West + workspace: + id: demo_west + type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state + workspace: + id: demo_west + type: workspace + workspaceDataFilterSettings: + - filterValues: + - California + id: region_west_california + title: Region West California + workspace: + id: demo_west_california + type: workspace workspaces: - - id: demo - name: Demo + - customApplicationSettings: [] + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + id: demo model: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -388,9 +156,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -422,10 +191,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -570,11 +338,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -592,10 +373,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -608,146 +389,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -805,9 +587,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -877,9 +659,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -952,9 +734,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -1007,9 +789,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -1060,9 +842,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -1109,9 +891,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -1180,9 +962,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -1233,9 +1015,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1328,9 +1110,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1380,9 +1162,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1415,9 +1197,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1467,9 +1249,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1531,9 +1313,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1584,9 +1366,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1637,100 +1419,321 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products + ldm: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date + name: Demo permissions: - - name: ANALYZE - assignee: + - assignee: id: demo2 type: user - - name: VIEW - assignee: - id: demoGroup - type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: - id: demo2 - type: user - - name: ANALYZE - assignee: + name: ANALYZE + - assignee: id: demoGroup type: userGroup + name: VIEW settings: [] - - id: demo_west - name: Demo West + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - - id: demo_west_california - name: Demo West California + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west_california model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - workspaceDataFilters: - - id: wdf__region - title: Customer region - columnName: wdf__region - workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: - - West - workspace: - id: demo_west - type: workspace - workspace: - id: demo - type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state - workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: - - California - workspace: - id: demo_west_california - type: workspace - workspace: - id: demo_west - type: workspace diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml index 206891e8d..01a0fc0c3 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_get_declarative_workspaces_snake_case.yaml @@ -26,7 +26,7 @@ interactions: Connection: - keep-alive Content-Length: - - '33785' + - '33878' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -71,283 +71,51 @@ interactions: - 1 ; mode=block body: string: + workspaceDataFilters: + - columnName: wdf__region + id: wdf__region + title: Customer region + workspace: + id: demo + type: workspace + workspaceDataFilterSettings: + - filterValues: + - West + id: region_west + title: Region West + workspace: + id: demo_west + type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state + workspace: + id: demo_west + type: workspace + workspaceDataFilterSettings: + - filterValues: + - California + id: region_west_california + title: Region West California + workspace: + id: demo_west_california + type: workspace workspaces: - - id: demo - name: Demo + - customApplicationSettings: [] + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + id: demo model: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -388,9 +156,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -422,10 +191,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -570,11 +338,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -592,10 +373,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -608,146 +389,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -805,9 +587,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -877,9 +659,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -952,9 +734,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -1007,9 +789,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -1060,9 +842,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -1109,9 +891,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -1180,9 +962,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -1233,9 +1015,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1328,9 +1110,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1380,9 +1162,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1415,9 +1197,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1467,9 +1249,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1531,9 +1313,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1584,9 +1366,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1637,100 +1419,321 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products + ldm: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date + name: Demo permissions: - - name: ANALYZE - assignee: + - assignee: id: demo2 type: user - - name: VIEW - assignee: - id: demoGroup - type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: - id: demo2 - type: user - - name: ANALYZE - assignee: + name: ANALYZE + - assignee: id: demoGroup type: userGroup + name: VIEW settings: [] - - id: demo_west - name: Demo West + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - - id: demo_west_california - name: Demo West California + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west_california model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - workspaceDataFilters: - - id: wdf__region - title: Customer region - columnName: wdf__region - workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: - - West - workspace: - id: demo_west - type: workspace - workspace: - id: demo - type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state - workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: - - California - workspace: - id: demo_west_california - type: workspace - workspace: - id: demo_west - type: workspace diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml index 3a0d3d663..c92d21658 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace.yaml @@ -71,279 +71,9 @@ interactions: - 1 ; mode=block body: string: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -384,9 +114,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -418,10 +149,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -565,11 +295,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -587,10 +330,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -603,146 +346,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: - format: $#,##0 + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: + format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -800,9 +544,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -872,9 +616,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -947,9 +691,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -1002,9 +746,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -1055,9 +799,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -1104,9 +848,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -1175,9 +919,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -1228,9 +972,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1323,9 +1067,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1375,9 +1119,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1410,9 +1154,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1462,9 +1206,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1526,9 +1270,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1579,9 +1323,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1632,193 +1376,304 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' - - request: - method: PUT - uri: http://localhost:3000/api/v1/layout/workspaces/demo - body: {} - headers: - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/workspaces/demo - body: null - headers: - Accept: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '163' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: + id: top_10_products + title: Top 10 Products ldm: - datasets: [] - dateInstances: [] - analytics: - analyticalDashboards: [] - filterContexts: [] - metrics: [] - visualizationObjects: [] - dashboardPlugins: [] - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/organization - body: null - headers: - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '0' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date + - request: + method: PUT + uri: http://localhost:3000/api/v1/layout/workspaces/demo + body: {} + headers: + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; @@ -1826,13 +1681,13 @@ interactions: blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json Date: *id001 Expires: - '0' GoodData-Deployment: - aio - Location: - - /api/v1/entities/admin/organizations/default Permission-Policy: - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment @@ -1859,7 +1714,152 @@ interactions: string: '' - request: method: GET - uri: http://localhost:3000/api/v1/entities/admin/organizations/default + uri: http://localhost:3000/api/v1/layout/workspaces/demo + body: null + headers: + Accept: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '163' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + analytics: + analyticalDashboards: [] + dashboardPlugins: [] + filterContexts: [] + metrics: [] + visualizationObjects: [] + ldm: + datasets: [] + dateInstances: [] + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/organization + body: null + headers: + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 302 + message: Found + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Location: + - /api/v1/entities/admin/organizations/default + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/admin/organizations/default body: null headers: X-GDC-VALIDATE-RELATIONS: @@ -1930,7 +1930,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -3463,455 +3463,185 @@ interactions: filters: [] item: identifier: - id: revenue_top_10 - type: metric - localIdentifier: 77dc71bbac92412bac5f94284a5919df - title: Revenue / Top 10 - localIdentifier: measures - - items: - - attribute: - displayForm: - identifier: - id: product_name - type: label - localIdentifier: 781952e728204dcf923142910cc22ae2 - localIdentifier: view - - items: - - attribute: - displayForm: - identifier: - id: products.category - type: label - localIdentifier: fe513cef1c6244a5ac21c5f49c56b108 - localIdentifier: stack - filters: - - negativeAttributeFilter: - displayForm: - identifier: - id: product_name - type: label - notIn: - values: [] - - negativeAttributeFilter: - displayForm: - identifier: - id: products.category - type: label - notIn: - values: [] - properties: - controls: - legend: - position: bottom - version: '2' - visualizationUrl: local:bar - id: top_10_products - title: Top 10 Products - headers: - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/workspaces/demo - body: null - headers: - Accept: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '32180' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date + id: revenue_top_10 + type: metric + localIdentifier: 77dc71bbac92412bac5f94284a5919df + title: Revenue / Top 10 + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 781952e728204dcf923142910cc22ae2 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: fe513cef1c6244a5ac21c5f49c56b108 + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:bar + id: top_10_products + title: Top 10 Products + headers: + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/layout/workspaces/demo + body: null + headers: + Accept: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '32180' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -3952,9 +3682,10 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -3986,10 +3717,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -4133,11 +3863,24 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -4155,10 +3898,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d negativeSelection: true version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: attributeElements: @@ -4171,146 +3914,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af negativeSelection: true version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -4368,9 +4112,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -4440,9 +4184,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -4515,9 +4259,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -4570,9 +4314,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -4623,9 +4367,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -4672,9 +4416,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -4743,9 +4487,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -4796,9 +4540,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -4891,9 +4635,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -4943,9 +4687,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -4978,9 +4722,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -5030,9 +4774,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -5094,9 +4838,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -5147,9 +4891,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -5200,19 +4944,275 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products + ldm: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaces/demo diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml index 030a04b21..e8f54dc8b 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspace_data_filters.yaml @@ -72,34 +72,34 @@ interactions: body: string: workspaceDataFilters: - - id: wdf__region + - columnName: wdf__region + id: wdf__region title: Customer region - columnName: wdf__region + workspace: + id: demo + type: workspace workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: + - filterValues: - West + id: region_west + title: Region West workspace: id: demo_west type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state workspace: - id: demo + id: demo_west type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: + - filterValues: - California + id: region_west_california + title: Region West California workspace: id: demo_west_california type: workspace - workspace: - id: demo_west - type: workspace - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaceDataFilters @@ -378,7 +378,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -547,34 +547,34 @@ interactions: body: string: workspaceDataFilters: - - id: wdf__region + - columnName: wdf__region + id: wdf__region title: Customer region - columnName: wdf__region + workspace: + id: demo + type: workspace workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: + - filterValues: - West + id: region_west + title: Region West workspace: id: demo_west type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state workspace: - id: demo + id: demo_west type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: + - filterValues: - California + id: region_west_california + title: Region West California workspace: id: demo_west_california type: workspace - workspace: - id: demo_west - type: workspace - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaceDataFilters diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml index 2c18b0e85..dedd5419c 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_load_and_put_declarative_workspaces.yaml @@ -140,8 +140,8 @@ interactions: - 1 ; mode=block body: string: - workspaces: [] workspaceDataFilters: [] + workspaces: [] - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -282,7 +282,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -1915,6 +1915,7 @@ interactions: type: userGroup name: ANALYZE settings: [] + customApplicationSettings: [] - id: demo_west name: Demo West model: @@ -1933,6 +1934,7 @@ interactions: permissions: [] hierarchyPermissions: [] settings: [] + customApplicationSettings: [] - id: demo_west_california name: Demo West California model: @@ -1951,6 +1953,7 @@ interactions: permissions: [] hierarchyPermissions: [] settings: [] + customApplicationSettings: [] headers: Content-Type: - application/json @@ -2039,7 +2042,7 @@ interactions: Connection: - keep-alive Content-Length: - - '33785' + - '33878' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -2083,283 +2086,51 @@ interactions: - 1 ; mode=block body: string: + workspaceDataFilters: + - columnName: wdf__region + id: wdf__region + title: Customer region + workspace: + id: demo + type: workspace + workspaceDataFilterSettings: + - filterValues: + - West + id: region_west + title: Region West + workspace: + id: demo_west + type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state + workspace: + id: demo_west + type: workspace + workspaceDataFilterSettings: + - filterValues: + - California + id: region_west_california + title: Region West California + workspace: + id: demo_west_california + type: workspace workspaces: - - id: demo - name: Demo + - customApplicationSettings: [] + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + id: demo model: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -2400,9 +2171,10 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -2434,10 +2206,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -2582,11 +2353,24 @@ interactions: type: IDashboardLayoutSection type: IDashboardLayout version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -2604,10 +2388,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d negativeSelection: true version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: attributeElements: @@ -2620,146 +2404,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af negativeSelection: true version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -2817,9 +2602,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -2889,9 +2674,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -2964,9 +2749,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -3019,9 +2804,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -3072,9 +2857,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -3121,9 +2906,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -3192,9 +2977,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -3245,9 +3030,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -3340,9 +3125,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -3392,9 +3177,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -3427,9 +3212,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -3479,9 +3264,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -3543,9 +3328,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -3596,9 +3381,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -3649,103 +3434,324 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products + ldm: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date + name: Demo permissions: - - name: ANALYZE - assignee: + - assignee: id: demo2 type: user - - name: VIEW - assignee: - id: demoGroup - type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: - id: demo2 - type: user - - name: ANALYZE - assignee: + name: ANALYZE + - assignee: id: demoGroup type: userGroup + name: VIEW settings: [] - - id: demo_west - name: Demo West + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - - id: demo_west_california - name: Demo West California + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west_california model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - workspaceDataFilters: - - id: wdf__region - title: Customer region - columnName: wdf__region - workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: - - West - workspace: - id: demo_west - type: workspace - workspace: - id: demo - type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state - workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: - - California - workspace: - id: demo_west_california - type: workspace - workspace: - id: demo_west - type: workspace - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaces @@ -5376,6 +5382,7 @@ interactions: type: userGroup name: ANALYZE settings: [] + customApplicationSettings: [] - id: demo_west name: Demo West model: @@ -5394,6 +5401,7 @@ interactions: permissions: [] hierarchyPermissions: [] settings: [] + customApplicationSettings: [] - id: demo_west_california name: Demo West California model: @@ -5412,6 +5420,7 @@ interactions: permissions: [] hierarchyPermissions: [] settings: [] + customApplicationSettings: [] headers: Content-Type: - application/json diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml index a36d7f9f6..7a14c8591 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace.yaml @@ -75,7 +75,7 @@ interactions: to access it. status: 404 title: Not Found - traceId: fedf38747e24dec0 + traceId: d632055b45f7ca6c - request: method: POST uri: http://localhost:3000/api/v1/entities/workspaces @@ -228,279 +228,9 @@ interactions: - 1 ; mode=block body: string: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -541,9 +271,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -575,10 +306,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -722,11 +452,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -744,10 +487,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -760,146 +503,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: - format: $#,##0 + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: + format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -957,9 +701,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -1029,9 +773,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -1104,9 +848,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -1159,9 +903,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -1212,9 +956,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -1261,9 +1005,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -1332,9 +1076,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -1385,9 +1129,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1480,9 +1224,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1532,9 +1276,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1567,9 +1311,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1619,9 +1363,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1683,9 +1427,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1736,9 +1480,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1789,161 +1533,285 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' - - request: - method: PUT - uri: http://localhost:3000/api/v1/layout/workspaces/demo_testing - body: - ldm: - datasets: - - grain: - - id: campaign_channel_id - type: attribute - id: campaign_channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - title: Campaign channels - description: Campaign channels - attributes: - - id: campaign_channel_id - labels: [] - sourceColumn: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - tags: - - Campaign channels - - id: campaign_channels.category - labels: [] - sourceColumn: category - title: Category - description: Category - tags: - - Campaign channels - - id: type - labels: [] - sourceColumn: type - title: Type - description: Type - tags: - - Campaign channels - facts: - - id: budget - sourceColumn: budget - title: Budget - description: Budget - tags: - - Campaign channels - - id: spend - sourceColumn: spend - title: Spend - description: Spend - tags: - - Campaign channels - dataSourceTableId: - dataSourceId: demo-test-ds + id: top_10_products + title: Top 10 Products + ldm: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute id: campaign_channels - type: dataSource - tags: - - Campaign channels - - grain: - - id: campaign_id - type: attribute - id: campaigns - references: [] - title: Campaigns - description: Campaigns - attributes: - - id: campaign_id - labels: [] - sourceColumn: campaign_id - title: Campaign id - description: Campaign id - tags: - - Campaigns - - id: campaign_name - labels: [] - sourceColumn: campaign_name - title: Campaign name - description: Campaign name - tags: - - Campaigns - facts: [] - dataSourceTableId: - dataSourceId: demo-test-ds + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute id: campaigns - type: dataSource - tags: - - Campaigns - - grain: - - id: customer_id - type: attribute - id: customers - references: [] - title: Customers - description: Customers - attributes: - - id: customer_id - labels: [] - sourceColumn: customer_id - title: Customer id - description: Customer id - tags: - - Customers - - id: customer_name - labels: [] - sourceColumn: customer_name - title: Customer name - description: Customer name - tags: - - Customers - - id: region - labels: [] - sourceColumn: region - title: Region - description: Region - tags: - - Customers - - id: state - labels: - - id: geo__state__location - sourceColumn: geo__state__location - title: Location - description: Location - tags: - - Customers - sourceColumn: state - title: State - description: State - tags: - - Customers - facts: [] - dataSourceTableId: - dataSourceId: demo-test-ds + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute id: customers - type: dataSource - tags: - - Customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date + - request: + method: PUT + uri: http://localhost:3000/api/v1/layout/workspaces/demo_testing + body: + ldm: + datasets: - grain: - - id: order_line_id + - id: campaign_channel_id type: attribute - id: order_lines + id: campaign_channels references: - identifier: id: campaigns @@ -1951,61 +1819,193 @@ interactions: multivalue: false sourceColumns: - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - title: Order lines - description: Order lines + title: Campaign channels + description: Campaign channels attributes: - - id: order_id + - id: campaign_channel_id labels: [] - sourceColumn: order_id - title: Order id - description: Order id + sourceColumn: campaign_channel_id + title: Campaign channel id + description: Campaign channel id tags: - - Order lines - - id: order_line_id + - Campaign channels + - id: campaign_channels.category labels: [] - sourceColumn: order_line_id - title: Order line id - description: Order line id + sourceColumn: category + title: Category + description: Category tags: - - Order lines - - id: order_status + - Campaign channels + - id: type labels: [] - sourceColumn: order_status - title: Order status - description: Order status + sourceColumn: type + title: Type + description: Type tags: - - Order lines + - Campaign channels facts: - - id: price - sourceColumn: price - title: Price - description: Price - tags: - - Order lines - - id: quantity - sourceColumn: quantity - title: Quantity - description: Quantity + - id: budget + sourceColumn: budget + title: Budget + description: Budget tags: - - Order lines + - Campaign channels + - id: spend + sourceColumn: spend + title: Spend + description: Spend + tags: + - Campaign channels + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + tags: + - Campaign channels + - grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + title: Campaigns + description: Campaigns + attributes: + - id: campaign_id + labels: [] + sourceColumn: campaign_id + title: Campaign id + description: Campaign id + tags: + - Campaigns + - id: campaign_name + labels: [] + sourceColumn: campaign_name + title: Campaign name + description: Campaign name + tags: + - Campaigns + facts: [] + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + tags: + - Campaigns + - grain: + - id: customer_id + type: attribute + id: customers + references: [] + title: Customers + description: Customers + attributes: + - id: customer_id + labels: [] + sourceColumn: customer_id + title: Customer id + description: Customer id + tags: + - Customers + - id: customer_name + labels: [] + sourceColumn: customer_name + title: Customer name + description: Customer name + tags: + - Customers + - id: region + labels: [] + sourceColumn: region + title: Region + description: Region + tags: + - Customers + - id: state + labels: + - id: geo__state__location + sourceColumn: geo__state__location + title: Location + description: Location + tags: + - Customers + sourceColumn: state + title: State + description: State + tags: + - Customers + facts: [] + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + tags: + - Customers + - grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + title: Order lines + description: Order lines + attributes: + - id: order_id + labels: [] + sourceColumn: order_id + title: Order id + description: Order id + tags: + - Order lines + - id: order_line_id + labels: [] + sourceColumn: order_line_id + title: Order line id + description: Order line id + tags: + - Order lines + - id: order_status + labels: [] + sourceColumn: order_status + title: Order status + description: Order status + tags: + - Order lines + facts: + - id: price + sourceColumn: price + title: Price + description: Price + tags: + - Order lines + - id: quantity + sourceColumn: quantity + title: Quantity + description: Quantity + tags: + - Order lines dataSourceTableId: dataSourceId: demo-test-ds id: order_lines @@ -3332,455 +3332,185 @@ interactions: filters: [] item: identifier: - id: revenue_top_10 - type: metric - localIdentifier: 77dc71bbac92412bac5f94284a5919df - title: Revenue / Top 10 - localIdentifier: measures - - items: - - attribute: - displayForm: - identifier: - id: product_name - type: label - localIdentifier: 781952e728204dcf923142910cc22ae2 - localIdentifier: view - - items: - - attribute: - displayForm: - identifier: - id: products.category - type: label - localIdentifier: fe513cef1c6244a5ac21c5f49c56b108 - localIdentifier: stack - filters: - - negativeAttributeFilter: - displayForm: - identifier: - id: product_name - type: label - notIn: - values: [] - - negativeAttributeFilter: - displayForm: - identifier: - id: products.category - type: label - notIn: - values: [] - properties: - controls: - legend: - position: bottom - version: '2' - visualizationUrl: local:bar - id: top_10_products - title: Top 10 Products - headers: - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/workspaces/demo - body: null - headers: - Accept: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '32180' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date + id: revenue_top_10 + type: metric + localIdentifier: 77dc71bbac92412bac5f94284a5919df + title: Revenue / Top 10 + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 781952e728204dcf923142910cc22ae2 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: fe513cef1c6244a5ac21c5f49c56b108 + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:bar + id: top_10_products + title: Top 10 Products + headers: + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/layout/workspaces/demo + body: null + headers: + Accept: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '32180' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -3821,9 +3551,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -3855,10 +3586,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -4002,11 +3732,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -4024,10 +3767,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -4040,146 +3783,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -4237,9 +3981,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -4309,9 +4053,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -4384,9 +4128,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -4439,9 +4183,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -4492,9 +4236,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -4541,9 +4285,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -4612,9 +4356,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -4665,9 +4409,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -4760,9 +4504,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -4812,9 +4556,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -4847,9 +4591,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -4899,9 +4643,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -4963,9 +4707,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -5016,9 +4760,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -5069,19 +4813,275 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products + ldm: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date - request: method: GET uri: http://localhost:3000/api/v1/entities/workspaces?include=workspaces&page=0&size=500 diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace_data_filters.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace_data_filters.yaml index 32e8c3315..0e47d41fb 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace_data_filters.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspace_data_filters.yaml @@ -72,34 +72,34 @@ interactions: body: string: workspaceDataFilters: - - id: wdf__region + - columnName: wdf__region + id: wdf__region title: Customer region - columnName: wdf__region + workspace: + id: demo + type: workspace workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: + - filterValues: - West + id: region_west + title: Region West workspace: id: demo_west type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state workspace: - id: demo + id: demo_west type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: + - filterValues: - California + id: region_west_california + title: Region West California workspace: id: demo_west_california type: workspace - workspace: - id: demo_west - type: workspace - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaceDataFilters @@ -404,34 +404,34 @@ interactions: body: string: workspaceDataFilters: - - id: wdf__region + - columnName: wdf__region + id: wdf__region title: Customer region - columnName: wdf__region + workspace: + id: demo + type: workspace workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: + - filterValues: - West + id: region_west + title: Region West workspace: id: demo_west type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state workspace: - id: demo + id: demo_west type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: + - filterValues: - California + id: region_west_california + title: Region West California workspace: id: demo_west_california type: workspace - workspace: - id: demo_west - type: workspace - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaceDataFilters diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspaces.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspaces.yaml index 94b318b9c..e9db4f3db 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspaces.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_put_declarative_workspaces.yaml @@ -26,7 +26,7 @@ interactions: Connection: - keep-alive Content-Length: - - '33785' + - '33878' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -71,283 +71,51 @@ interactions: - 1 ; mode=block body: string: + workspaceDataFilters: + - columnName: wdf__region + id: wdf__region + title: Customer region + workspace: + id: demo + type: workspace + workspaceDataFilterSettings: + - filterValues: + - West + id: region_west + title: Region West + workspace: + id: demo_west + type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state + workspace: + id: demo_west + type: workspace + workspaceDataFilterSettings: + - filterValues: + - California + id: region_west_california + title: Region West California + workspace: + id: demo_west_california + type: workspace workspaces: - - id: demo - name: Demo + - customApplicationSettings: [] + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + id: demo model: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -388,9 +156,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -422,10 +191,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -570,11 +338,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -592,10 +373,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -608,146 +389,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -805,9 +587,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -877,9 +659,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -952,9 +734,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -1007,9 +789,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -1060,9 +842,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -1109,9 +891,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -1180,9 +962,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -1233,9 +1015,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1328,9 +1110,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1380,9 +1162,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1415,9 +1197,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1467,9 +1249,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1531,9 +1313,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1584,9 +1366,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1637,185 +1419,406 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' - permissions: - - name: ANALYZE - assignee: - id: demo2 - type: user - - name: VIEW - assignee: - id: demoGroup - type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: - id: demo2 - type: user - - name: ANALYZE - assignee: - id: demoGroup - type: userGroup - settings: [] - - id: demo_west - name: Demo West - model: - ldm: - datasets: [] - dateInstances: [] - analytics: - analyticalDashboards: [] - filterContexts: [] - metrics: [] - visualizationObjects: [] - dashboardPlugins: [] - parent: - id: demo - type: workspace - permissions: [] - hierarchyPermissions: [] - settings: [] - - id: demo_west_california - name: Demo West California - model: + id: top_10_products + title: Top 10 Products ldm: - datasets: [] - dateInstances: [] - analytics: - analyticalDashboards: [] - filterContexts: [] - metrics: [] - visualizationObjects: [] - dashboardPlugins: [] - parent: - id: demo_west - type: workspace - permissions: [] - hierarchyPermissions: [] - settings: [] - workspaceDataFilters: - - id: wdf__region - title: Customer region - columnName: wdf__region - workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: - - West - workspace: - id: demo_west - type: workspace - workspace: - id: demo - type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state - workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: - - California - workspace: - id: demo_west_california - type: workspace - workspace: - id: demo_west - type: workspace - - request: - method: PUT - uri: http://localhost:3000/api/v1/layout/workspaces - body: - workspaceDataFilters: [] - workspaces: [] - headers: - Content-Type: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/workspaces - body: null - headers: - Accept: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date + name: Demo + permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW + settings: [] + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west + model: + analytics: + analyticalDashboards: [] + dashboardPlugins: [] + filterContexts: [] + metrics: [] + visualizationObjects: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West + parent: + id: demo + type: workspace + permissions: [] + settings: [] + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west_california + model: + analytics: + analyticalDashboards: [] + dashboardPlugins: [] + filterContexts: [] + metrics: [] + visualizationObjects: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West California + parent: + id: demo_west + type: workspace + permissions: [] + settings: [] + - request: + method: PUT + uri: http://localhost:3000/api/v1/layout/workspaces + body: + workspaceDataFilters: [] + workspaces: [] + headers: + Content-Type: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 204 + message: No Content + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/layout/workspaces + body: null + headers: + Accept: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: code: 200 message: OK headers: @@ -1872,8 +1875,8 @@ interactions: - 1 ; mode=block body: string: - workspaces: [] workspaceDataFilters: [] + workspaces: [] - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaces @@ -3504,6 +3507,7 @@ interactions: type: userGroup name: ANALYZE settings: [] + customApplicationSettings: [] - id: demo_west name: Demo West model: @@ -3522,6 +3526,7 @@ interactions: permissions: [] hierarchyPermissions: [] settings: [] + customApplicationSettings: [] - id: demo_west_california name: Demo West California model: @@ -3540,6 +3545,7 @@ interactions: permissions: [] hierarchyPermissions: [] settings: [] + customApplicationSettings: [] headers: Content-Type: - application/json @@ -3549,75 +3555,8 @@ interactions: - XMLHttpRequest response: status: - code: 204 - message: No Content - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/workspaces - body: null - headers: - Accept: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK + code: 204 + message: No Content headers: Access-Control-Allow-Credentials: - 'true' @@ -3627,8 +3566,6 @@ interactions: - no-cache, no-store, max-age=0, must-revalidate Connection: - keep-alive - Content-Length: - - '33785' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -3645,310 +3582,147 @@ interactions: - application/json Date: *id001 Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: - workspaces: - - id: demo - name: Demo - model: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/layout/workspaces + body: null + headers: + Accept: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '33878' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + workspaceDataFilters: + - columnName: wdf__region + id: wdf__region + title: Customer region + workspace: + id: demo + type: workspace + workspaceDataFilterSettings: + - filterValues: + - West + id: region_west + title: Region West + workspace: + id: demo_west + type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state + workspace: + id: demo_west + type: workspace + workspaceDataFilterSettings: + - filterValues: + - California + id: region_west_california + title: Region West California + workspace: + id: demo_west_california + type: workspace + workspaces: + - customApplicationSettings: [] + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + id: demo + model: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -3989,9 +3763,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -4023,10 +3798,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -4171,11 +3945,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -4193,10 +3980,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -4209,146 +3996,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -4406,9 +4194,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -4478,9 +4266,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -4553,9 +4341,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -4608,9 +4396,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -4661,9 +4449,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -4710,9 +4498,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -4781,9 +4569,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -4834,9 +4622,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -4929,9 +4717,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -4981,9 +4769,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -5016,9 +4804,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -5068,9 +4856,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -5132,9 +4920,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -5185,9 +4973,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -5238,103 +5026,324 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products + ldm: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date + name: Demo permissions: - - name: ANALYZE - assignee: - id: demo2 - type: user - - name: VIEW - assignee: - id: demoGroup - type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: ANALYZE - assignee: + name: ANALYZE + - assignee: id: demoGroup type: userGroup + name: VIEW settings: [] - - id: demo_west - name: Demo West + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - - id: demo_west_california - name: Demo West California + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west_california model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - workspaceDataFilters: - - id: wdf__region - title: Customer region - columnName: wdf__region - workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: - - West - workspace: - id: demo_west - type: workspace - workspace: - id: demo - type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state - workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: - - California - workspace: - id: demo_west_california - type: workspace - workspace: - id: demo_west - type: workspace - request: method: PUT uri: http://localhost:3000/api/v1/layout/workspaces @@ -6965,6 +6974,7 @@ interactions: type: userGroup name: ANALYZE settings: [] + customApplicationSettings: [] - id: demo_west name: Demo West model: @@ -6983,6 +6993,7 @@ interactions: permissions: [] hierarchyPermissions: [] settings: [] + customApplicationSettings: [] - id: demo_west_california name: Demo West California model: @@ -7001,6 +7012,7 @@ interactions: permissions: [] hierarchyPermissions: [] settings: [] + customApplicationSettings: [] headers: Content-Type: - application/json diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace.yaml index fb3de6724..4a30ecb96 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace.yaml @@ -71,279 +71,9 @@ interactions: - 1 ; mode=block body: string: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -384,9 +114,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -418,10 +149,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -565,11 +295,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -587,10 +330,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -603,146 +346,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: - format: $#,##0 + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: + format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -800,9 +544,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -872,9 +616,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -947,9 +691,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -1002,9 +746,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -1055,9 +799,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -1104,9 +848,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -1175,9 +919,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -1228,9 +972,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1323,9 +1067,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1375,9 +1119,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1410,9 +1154,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1462,9 +1206,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1526,9 +1270,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1579,9 +1323,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1632,274 +1376,54 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/organization - body: null - headers: - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 302 - message: Found - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '0' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Location: - - /api/v1/entities/admin/organizations/default - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: '' - - request: - method: GET - uri: http://localhost:3000/api/v1/entities/admin/organizations/default - body: null - headers: - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '255' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/vnd.gooddata.api+json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: - data: - id: default - type: organization - attributes: - name: Default Organization - hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e - links: - self: http://localhost:3000/api/v1/entities/admin/organizations/default - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/workspaces/demo - body: null - headers: - Accept: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '32180' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: + id: top_10_products + title: Top 10 Products ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] + sourceColumn: campaign_channel_id tags: - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Category + - description: Type + id: type labels: [] + sourceColumn: type tags: - Campaign channels - sourceColumn: type + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -1907,131 +1431,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -2057,55 +1581,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -2122,14 +1638,228 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/organization + body: null + headers: + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 302 + message: Found + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '0' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Location: + - /api/v1/entities/admin/organizations/default + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: '' + - request: + method: GET + uri: http://localhost:3000/api/v1/entities/admin/organizations/default + body: null + headers: + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '255' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/vnd.gooddata.api+json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + data: + id: default + type: organization + attributes: + name: Default Organization + hostname: localhost + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 + links: + self: http://localhost:3000/api/v1/entities/admin/organizations/default + - request: + method: GET + uri: http://localhost:3000/api/v1/layout/workspaces/demo + body: null + headers: + Accept: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '32180' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -2170,9 +1900,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -2204,10 +1935,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -2351,11 +2081,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -2373,10 +2116,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -2389,146 +2132,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -2586,9 +2330,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -2658,9 +2402,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -2733,9 +2477,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -2788,9 +2532,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -2841,9 +2585,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -2890,9 +2634,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -2961,9 +2705,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -3014,9 +2758,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -3109,9 +2853,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -3161,9 +2905,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -3196,9 +2940,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -3248,9 +2992,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -3312,9 +3056,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -3365,9 +3109,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -3418,19 +3162,275 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products + ldm: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -3571,6 +3571,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace_data_filters.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace_data_filters.yaml index 87a0b15ee..fb0cf655d 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace_data_filters.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspace_data_filters.yaml @@ -72,34 +72,34 @@ interactions: body: string: workspaceDataFilters: - - id: wdf__region + - columnName: wdf__region + id: wdf__region title: Customer region - columnName: wdf__region + workspace: + id: demo + type: workspace workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: + - filterValues: - West + id: region_west + title: Region West workspace: id: demo_west type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state workspace: - id: demo + id: demo_west type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: + - filterValues: - California + id: region_west_california + title: Region West California workspace: id: demo_west_california type: workspace - workspace: - id: demo_west - type: workspace - request: method: GET uri: http://localhost:3000/api/v1/layout/workspaceDataFilters @@ -170,34 +170,34 @@ interactions: body: string: workspaceDataFilters: - - id: wdf__region + - columnName: wdf__region + id: wdf__region title: Customer region - columnName: wdf__region + workspace: + id: demo + type: workspace workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: + - filterValues: - West + id: region_west + title: Region West workspace: id: demo_west type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state workspace: - id: demo + id: demo_west type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: + - filterValues: - California + id: region_west_california + title: Region West California workspace: id: demo_west_california type: workspace - workspace: - id: demo_west - type: workspace - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -338,7 +338,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -481,6 +481,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspaces.yaml b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspaces.yaml index ffe9e0efd..4a06ebe49 100644 --- a/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspaces.yaml +++ b/gooddata-sdk/tests/catalog/fixtures/workspaces/demo_store_declarative_workspaces.yaml @@ -26,7 +26,7 @@ interactions: Connection: - keep-alive Content-Length: - - '33785' + - '33878' Content-Security-Policy: - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com @@ -71,283 +71,51 @@ interactions: - 1 ; mode=block body: string: + workspaceDataFilters: + - columnName: wdf__region + id: wdf__region + title: Customer region + workspace: + id: demo + type: workspace + workspaceDataFilterSettings: + - filterValues: + - West + id: region_west + title: Region West + workspace: + id: demo_west + type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state + workspace: + id: demo_west + type: workspace + workspaceDataFilterSettings: + - filterValues: + - California + id: region_west_california + title: Region West California + workspace: + id: demo_west_california + type: workspace workspaces: - - id: demo - name: Demo + - customApplicationSettings: [] + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + id: demo model: - ldm: - datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id - labels: [] - tags: - - Campaign channels - sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] - tags: - - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type - labels: [] - tags: - - Campaign channels - sourceColumn: type - facts: - - id: budget - title: Budget - description: Budget - sourceColumn: budget - tags: - - Campaign channels - - id: spend - title: Spend - description: Spend - sourceColumn: spend - tags: - - Campaign channels - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id - labels: [] - tags: - - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name - labels: [] - tags: - - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] - dataSourceTableId: - id: campaigns - dataSourceId: demo-test-ds - type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers - grain: - - id: customer_id - type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id - labels: [] - tags: - - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name - labels: [] - tags: - - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region - labels: [] - tags: - - Customers - sourceColumn: region - - id: state - title: State - description: State - labels: - - id: geo__state__location - title: Location - description: Location - sourceColumn: geo__state__location - tags: - - Customers - tags: - - Customers - sourceColumn: state - facts: [] - references: [] - dataSourceTableId: - id: customers - dataSourceId: demo-test-ds - type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines - grain: - - id: order_line_id - type: attribute - attributes: - - id: order_id - title: Order id - description: Order id - labels: [] - tags: - - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id - labels: [] - tags: - - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status - labels: [] - tags: - - Order lines - sourceColumn: order_status - facts: - - id: price - title: Price - description: Price - sourceColumn: price - tags: - - Order lines - - id: quantity - title: Quantity - description: Quantity - sourceColumn: quantity - tags: - - Order lines - references: - - identifier: - id: campaigns - type: dataset - multivalue: false - sourceColumns: - - campaign_id - - identifier: - id: customers - type: dataset - multivalue: false - sourceColumns: - - customer_id - - identifier: - id: date - type: dataset - multivalue: false - sourceColumns: - - date - - identifier: - id: products - type: dataset - multivalue: false - sourceColumns: - - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource - tags: - - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id - labels: [] - tags: - - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name - labels: [] - tags: - - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category - labels: [] - tags: - - Products - sourceColumn: category - facts: [] - references: [] - dataSourceTableId: - id: products - dataSourceId: demo-test-ds - type: dataSource - tags: - - Products - dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' - granularities: - - MINUTE - - HOUR - - DAY - - WEEK - - MONTH - - QUARTER - - YEAR - - MINUTE_OF_HOUR - - HOUR_OF_DAY - - DAY_OF_WEEK - - DAY_OF_MONTH - - DAY_OF_YEAR - - WEEK_OF_YEAR - - MONTH_OF_YEAR - - QUARTER_OF_YEAR - tags: - - Date analytics: analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: + - content: filterContextRef: identifier: id: campaign_name_filter @@ -388,9 +156,10 @@ interactions: drills: [] properties: {} version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: + description: '' + id: campaign + title: Campaign + - content: filterContextRef: identifier: id: campaign_name_filter @@ -422,10 +191,9 @@ interactions: type: dashboardPlugin version: '2' version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: + id: dashboard_plugin + title: Dashboard plugin + - content: filterContextRef: identifier: id: region_filter @@ -570,11 +338,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -592,10 +373,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -608,146 +389,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -805,9 +587,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -877,9 +659,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -952,9 +734,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -1007,9 +789,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -1060,9 +842,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -1109,9 +891,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -1180,9 +962,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -1233,9 +1015,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -1328,9 +1110,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -1380,9 +1162,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -1415,9 +1197,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -1467,9 +1249,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -1531,9 +1313,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -1584,9 +1366,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -1637,219 +1419,54 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' - permissions: - - name: ANALYZE - assignee: - id: demo2 - type: user - - name: VIEW - assignee: - id: demoGroup - type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: - id: demo2 - type: user - - name: ANALYZE - assignee: - id: demoGroup - type: userGroup - settings: [] - - id: demo_west - name: Demo West - model: - ldm: - datasets: [] - dateInstances: [] - analytics: - analyticalDashboards: [] - filterContexts: [] - metrics: [] - visualizationObjects: [] - dashboardPlugins: [] - parent: - id: demo - type: workspace - permissions: [] - hierarchyPermissions: [] - settings: [] - - id: demo_west_california - name: Demo West California - model: - ldm: - datasets: [] - dateInstances: [] - analytics: - analyticalDashboards: [] - filterContexts: [] - metrics: [] - visualizationObjects: [] - dashboardPlugins: [] - parent: - id: demo_west - type: workspace - permissions: [] - hierarchyPermissions: [] - settings: [] - workspaceDataFilters: - - id: wdf__region - title: Customer region - columnName: wdf__region - workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: - - West - workspace: - id: demo_west - type: workspace - workspace: - id: demo - type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state - workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: - - California - workspace: - id: demo_west_california - type: workspace - workspace: - id: demo_west - type: workspace - - request: - method: GET - uri: http://localhost:3000/api/v1/layout/workspaces - body: null - headers: - Accept: - - application/json - X-GDC-VALIDATE-RELATIONS: - - 'true' - X-Requested-With: - - XMLHttpRequest - response: - status: - code: 200 - message: OK - headers: - Access-Control-Allow-Credentials: - - 'true' - Access-Control-Expose-Headers: - - Content-Disposition, Content-Length, Content-Range, Set-Cookie - Cache-Control: - - no-cache, no-store, max-age=0, must-revalidate - Connection: - - keep-alive - Content-Length: - - '33785' - Content-Security-Policy: - - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' - ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com - code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src - ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net - privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' - fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' - data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; - frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src - blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io - *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; - media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' - Content-Type: - - application/json - Date: *id001 - Expires: - - '0' - GoodData-Deployment: - - aio - Permission-Policy: - - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera - 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment - 'none'; - Pragma: - - no-cache - Referrer-Policy: - - no-referrer - Server: - - nginx - Set-Cookie: - - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 - GMT; HttpOnly; SameSite=Lax - Vary: - - Origin - - Access-Control-Request-Method - - Access-Control-Request-Headers - X-Content-Type-Options: - - nosniff - X-GDC-TRACE-ID: *id001 - X-XSS-Protection: - - 1 ; mode=block - body: - string: - workspaces: - - id: demo - name: Demo - model: + id: top_10_products + title: Top 10 Products ldm: datasets: - - id: campaign_channels - title: Campaign channels - description: Campaign channels - grain: - - id: campaign_channel_id - type: attribute - attributes: - - id: campaign_channel_id - title: Campaign channel id - description: Campaign channel id + - attributes: + - description: Campaign channel id + id: campaign_channel_id labels: [] - tags: - - Campaign channels sourceColumn: campaign_channel_id - - id: campaign_channels.category - title: Category - description: Category - labels: [] tags: - Campaign channels - sourceColumn: category - - id: type - title: Type - description: Type + title: Campaign channel id + - description: Category + id: campaign_channels.category labels: [] + sourceColumn: category tags: - Campaign channels + title: Category + - description: Type + id: type + labels: [] sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels facts: - - id: budget - title: Budget - description: Budget + - description: Budget + id: budget sourceColumn: budget tags: - Campaign channels - - id: spend - title: Spend - description: Spend + title: Budget + - description: Spend + id: spend sourceColumn: spend tags: - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels references: - identifier: id: campaigns @@ -1857,131 +1474,131 @@ interactions: multivalue: false sourceColumns: - campaign_id - dataSourceTableId: - id: campaign_channels - dataSourceId: demo-test-ds - type: dataSource tags: - Campaign channels - - id: campaigns - title: Campaigns - description: Campaigns - grain: - - id: campaign_id - type: attribute - attributes: - - id: campaign_id - title: Campaign id - description: Campaign id + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id labels: [] + sourceColumn: campaign_id tags: - Campaigns - sourceColumn: campaign_id - - id: campaign_name - title: Campaign name - description: Campaign name + title: Campaign id + - description: Campaign name + id: campaign_name labels: [] + sourceColumn: campaign_name tags: - Campaigns - sourceColumn: campaign_name - facts: [] - references: [] + title: Campaign name dataSourceTableId: - id: campaigns dataSourceId: demo-test-ds + id: campaigns type: dataSource - tags: - - Campaigns - - id: customers - title: Customers - description: Customers + description: Campaigns + facts: [] grain: - - id: customer_id + - id: campaign_id type: attribute - attributes: - - id: customer_id - title: Customer id - description: Customer id + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id labels: [] + sourceColumn: customer_id tags: - Customers - sourceColumn: customer_id - - id: customer_name - title: Customer name - description: Customer name + title: Customer id + - description: Customer name + id: customer_name labels: [] + sourceColumn: customer_name tags: - Customers - sourceColumn: customer_name - - id: region - title: Region - description: Region + title: Customer name + - description: Region + id: region labels: [] + sourceColumn: region tags: - Customers - sourceColumn: region - - id: state - title: State - description: State + title: Region + - description: State + id: state labels: - - id: geo__state__location - title: Location - description: Location + - description: Location + id: geo__state__location sourceColumn: geo__state__location tags: - Customers + title: Location + sourceColumn: state tags: - Customers - sourceColumn: state - facts: [] - references: [] + title: State dataSourceTableId: - id: customers dataSourceId: demo-test-ds + id: customers type: dataSource - tags: - - Customers - - id: order_lines - title: Order lines - description: Order lines + description: Customers + facts: [] grain: - - id: order_line_id + - id: customer_id type: attribute - attributes: - - id: order_id - title: Order id - description: Order id + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id labels: [] + sourceColumn: order_id tags: - Order lines - sourceColumn: order_id - - id: order_line_id - title: Order line id - description: Order line id + title: Order id + - description: Order line id + id: order_line_id labels: [] + sourceColumn: order_line_id tags: - Order lines - sourceColumn: order_line_id - - id: order_status - title: Order status - description: Order status + title: Order line id + - description: Order status + id: order_status labels: [] + sourceColumn: order_status tags: - Order lines - sourceColumn: order_status + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines facts: - - id: price - title: Price - description: Price + - description: Price + id: price sourceColumn: price tags: - Order lines - - id: quantity - title: Quantity - description: Quantity + title: Price + - description: Quantity + id: quantity sourceColumn: quantity tags: - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines references: - identifier: id: campaigns @@ -2007,55 +1624,47 @@ interactions: multivalue: false sourceColumns: - product_id - dataSourceTableId: - id: order_lines - dataSourceId: demo-test-ds - type: dataSource tags: - Order lines - - id: products - title: Products - description: Products - grain: - - id: product_id - type: attribute - attributes: - - id: product_id - title: Product id - description: Product id + title: Order lines + - attributes: + - description: Product id + id: product_id labels: [] + sourceColumn: product_id tags: - Products - sourceColumn: product_id - - id: product_name - title: Product name - description: Product name + title: Product id + - description: Product name + id: product_name labels: [] + sourceColumn: product_name tags: - Products - sourceColumn: product_name - - id: products.category - title: Category - description: Category + title: Product name + - description: Category + id: products.category labels: [] + sourceColumn: category tags: - Products - sourceColumn: category - facts: [] - references: [] + title: Category dataSourceTableId: - id: products dataSourceId: demo-test-ds + id: products type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] tags: - Products + title: Products dateInstances: - - id: date - title: Date - description: '' - granularitiesFormatting: - titleBase: '' - titlePattern: '%titleBase - %granularityTitle' + - description: '' granularities: - MINUTE - HOUR @@ -2072,103 +1681,265 @@ interactions: - WEEK_OF_YEAR - MONTH_OF_YEAR - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date tags: - Date + title: Date + name: Demo + permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW + settings: [] + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west + model: analytics: - analyticalDashboards: - - id: campaign - title: Campaign - description: '' - content: - filterContextRef: - identifier: - id: campaign_name_filter - type: filterContext - layout: - type: IDashboardLayout - sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: - xl: - gridWidth: 6 - widget: - type: insight - title: Campaign Spend - description: '' - ignoreDashboardFilters: [] - insight: - identifier: - id: campaign_spend - type: visualizationObject - drills: [] - properties: {} - - type: IDashboardLayoutItem - size: - xl: - gridWidth: 6 - widget: - type: insight - title: Revenue per $ vs Spend by Campaign - description: '' - ignoreDashboardFilters: [] - insight: - identifier: - id: revenue_per_usd_vs_spend_by_campaign - type: visualizationObject - drills: [] - properties: {} - version: '2' - - id: dashboard_plugin - title: Dashboard plugin - content: - filterContextRef: - identifier: - id: campaign_name_filter - type: filterContext - layout: - sections: - - items: - - size: - xl: - gridWidth: 12 - type: IDashboardLayoutItem - widget: - description: '' - drills: [] - ignoreDashboardFilters: [] - insight: - identifier: - id: top_10_products - type: visualizationObject - properties: {} - title: DHO simple - type: insight - type: IDashboardLayoutSection - type: IDashboardLayout - plugins: - - plugin: - identifier: - id: dashboard_plugin_1 - type: dashboardPlugin - version: '2' - version: '2' - - id: product_and_category - title: Product & Category - description: '' - content: - filterContextRef: - identifier: - id: region_filter - type: filterContext - layout: - type: IDashboardLayout - sections: - - type: IDashboardLayoutSection - items: - - type: IDashboardLayoutItem - size: + analyticalDashboards: [] + dashboardPlugins: [] + filterContexts: [] + metrics: [] + visualizationObjects: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West + parent: + id: demo + type: workspace + permissions: [] + settings: [] + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west_california + model: + analytics: + analyticalDashboards: [] + dashboardPlugins: [] + filterContexts: [] + metrics: [] + visualizationObjects: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West California + parent: + id: demo_west + type: workspace + permissions: [] + settings: [] + - request: + method: GET + uri: http://localhost:3000/api/v1/layout/workspaces + body: null + headers: + Accept: + - application/json + X-GDC-VALIDATE-RELATIONS: + - 'true' + X-Requested-With: + - XMLHttpRequest + response: + status: + code: 200 + message: OK + headers: + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Expose-Headers: + - Content-Disposition, Content-Length, Content-Range, Set-Cookie + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Connection: + - keep-alive + Content-Length: + - '33878' + Content-Security-Policy: + - 'default-src ''self'' *.wistia.com *.wistia.net; script-src ''self'' ''unsafe-inline'' + ''unsafe-eval'' *.wistia.com *.wistia.net src.litix.io matomo.anywhere.gooddata.com + code.jquery.com unpkg.com cdn.jsdelivr.net cdnjs.cloudflare.com; img-src + ''self'' data: blob: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net + privacy-policy.truste.com www.gooddata.com; style-src ''self'' ''unsafe-inline'' + fonts.googleapis.com cdn.jsdelivr.net fast.fonts.net; font-src ''self'' + data: fonts.gstatic.com *.alicdn.com *.wistia.com cdn.jsdelivr.net info.gooddata.com; + frame-src ''self''; object-src ''none''; worker-src ''self'' blob:; child-src + blob:; connect-src ''self'' *.tiles.mapbox.com *.mapbox.com *.litix.io + *.wistia.com embedwistia-a.akamaihd.net matomo.anywhere.gooddata.com; + media-src ''self'' blob: data: *.wistia.com *.wistia.net embedwistia-a.akamaihd.net' + Content-Type: + - application/json + Date: *id001 + Expires: + - '0' + GoodData-Deployment: + - aio + Permission-Policy: + - geolocation 'none'; midi 'none'; sync-xhr 'none'; microphone 'none'; camera + 'none'; magnetometer 'none'; gyroscope 'none'; fullscreen 'none'; payment + 'none'; + Pragma: + - no-cache + Referrer-Policy: + - no-referrer + Server: + - nginx + Set-Cookie: + - SPRING_REDIRECT_URI=; Path=/; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 + GMT; HttpOnly; SameSite=Lax + Vary: + - Origin + - Access-Control-Request-Method + - Access-Control-Request-Headers + X-Content-Type-Options: + - nosniff + X-GDC-TRACE-ID: *id001 + X-XSS-Protection: + - 1 ; mode=block + body: + string: + workspaceDataFilters: + - columnName: wdf__region + id: wdf__region + title: Customer region + workspace: + id: demo + type: workspace + workspaceDataFilterSettings: + - filterValues: + - West + id: region_west + title: Region West + workspace: + id: demo_west + type: workspace + - columnName: wdf__state + id: wdf__state + title: Customer state + workspace: + id: demo_west + type: workspace + workspaceDataFilterSettings: + - filterValues: + - California + id: region_west_california + title: Region West California + workspace: + id: demo_west_california + type: workspace + workspaces: + - customApplicationSettings: [] + hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE + id: demo + model: + analytics: + analyticalDashboards: + - content: + filterContextRef: + identifier: + id: campaign_name_filter + type: filterContext + layout: + type: IDashboardLayout + sections: + - type: IDashboardLayoutSection + items: + - type: IDashboardLayoutItem + size: + xl: + gridWidth: 6 + widget: + type: insight + title: Campaign Spend + description: '' + ignoreDashboardFilters: [] + insight: + identifier: + id: campaign_spend + type: visualizationObject + drills: [] + properties: {} + - type: IDashboardLayoutItem + size: + xl: + gridWidth: 6 + widget: + type: insight + title: Revenue per $ vs Spend by Campaign + description: '' + ignoreDashboardFilters: [] + insight: + identifier: + id: revenue_per_usd_vs_spend_by_campaign + type: visualizationObject + drills: [] + properties: {} + version: '2' + description: '' + id: campaign + title: Campaign + - content: + filterContextRef: + identifier: + id: campaign_name_filter + type: filterContext + layout: + sections: + - items: + - size: + xl: + gridWidth: 12 + type: IDashboardLayoutItem + widget: + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: top_10_products + type: visualizationObject + properties: {} + title: DHO simple + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout + plugins: + - plugin: + identifier: + id: dashboard_plugin_1 + type: dashboardPlugin + version: '2' + version: '2' + id: dashboard_plugin + title: Dashboard plugin + - content: + filterContextRef: + identifier: + id: region_filter + type: filterContext + layout: + type: IDashboardLayout + sections: + - type: IDashboardLayoutSection + items: + - type: IDashboardLayoutItem + size: xl: gridWidth: 6 widget: @@ -2302,11 +2073,24 @@ interactions: drills: [] properties: {} version: '2' - filterContexts: - - id: campaign_name_filter - title: filterContext description: '' - content: + id: product_and_category + title: Product & Category + dashboardPlugins: + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_1 + id: dashboard_plugin_1 + title: dashboard_plugin_1 + - content: + url: https://www.example.com + version: '2' + description: Testing record dashboard_plugin_2 + id: dashboard_plugin_2 + title: dashboard_plugin_2 + filterContexts: + - content: filters: - dateFilter: from: '0' @@ -2324,10 +2108,10 @@ interactions: localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d filterElementsBy: [] version: '2' - - id: region_filter - title: filterContext description: '' - content: + id: campaign_name_filter + title: filterContext + - content: filters: - attributeFilter: displayForm: @@ -2340,146 +2124,147 @@ interactions: localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af filterElementsBy: [] version: '2' + description: '' + id: region_filter + title: filterContext metrics: - - id: amount_of_active_customers - title: '# of Active Customers' - content: + - content: format: '#,##0' maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) - - id: amount_of_orders - title: '# of Orders' - content: + id: amount_of_active_customers + title: '# of Active Customers' + - content: format: '#,##0' maql: SELECT COUNT({attribute/order_id}) - - id: amount_of_top_customers - title: '# of Top Customers' - content: + id: amount_of_orders + title: '# of Orders' + - content: format: '#,##0' maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} BY {attribute/customer_id}) > 10000 ' - - id: amount_of_valid_orders - title: '# of Valid Orders' - description: '' - content: + id: amount_of_top_customers + title: '# of Top Customers' + - content: format: '#,##0.00' maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: campaign_spend - title: Campaign Spend - content: + description: '' + id: amount_of_valid_orders + title: '# of Valid Orders' + - content: format: $#,##0 maql: SELECT SUM({fact/spend}) - - id: order_amount - title: Order Amount - content: + id: campaign_spend + title: Campaign Spend + - content: format: $#,##0 maql: SELECT SUM({fact/price}*{fact/quantity}) - - id: percent_revenue - title: '% Revenue' - content: + id: order_amount + title: Order Amount + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / {metric/total_revenue} - - id: percent_revenue_from_top_10_customers - title: '% Revenue from Top 10 Customers' - content: + id: percent_revenue + title: '% Revenue' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_customers - title: '% Revenue from Top 10% Customers' - content: + id: percent_revenue_from_top_10_customers + title: '% Revenue from Top 10 Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/customer_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_percent_products - title: '% Revenue from Top 10% Products' - content: + id: percent_revenue_from_top_10_percent_customers + title: '% Revenue from Top 10% Customers' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10_percent}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_from_top_10_products - title: '% Revenue from Top 10 Products' - content: + id: percent_revenue_from_top_10_percent_products + title: '% Revenue from Top 10% Products' + - content: format: '#,##0.0%' maql: "SELECT\n (SELECT {metric/revenue} WHERE (SELECT {metric/revenue_top_10}\ \ BY {attribute/product_id}) > 0)\n /\n {metric/revenue}" - - id: percent_revenue_in_category - title: '% Revenue in Category' - content: + id: percent_revenue_from_top_10_products + title: '% Revenue from Top 10 Products' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, ALL OTHER) - - id: percent_revenue_per_product - title: '% Revenue per Product' - content: + id: percent_revenue_in_category + title: '% Revenue in Category' + - content: format: '#,##0.0%' maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) - - id: revenue - title: Revenue - description: '' - content: + id: percent_revenue_per_product + title: '% Revenue per Product' + - content: format: $#,##0 maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", "Canceled")) - - id: revenue-clothing - title: Revenue (Clothing) - content: + description: '' + id: revenue + title: Revenue + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") - - id: revenue-electronic - title: Revenue (Electronic) - content: + id: revenue-clothing + title: Revenue (Clothing) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") - - id: revenue-home - title: Revenue (Home) - content: + id: revenue-electronic + title: Revenue (Electronic) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") - - id: revenue-outdoor - title: Revenue (Outdoor) - content: + id: revenue-home + title: Revenue (Home) + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") - - id: revenue_per_customer - title: Revenue per Customer - content: + id: revenue-outdoor + title: Revenue (Outdoor) + - content: format: $#,##0.0 maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) - - id: revenue_per_dollar_spent - title: Revenue per Dollar Spent - content: + id: revenue_per_customer + title: Revenue per Customer + - content: format: $#,##0.0 maql: SELECT {metric/revenue} / {metric/campaign_spend} - - id: revenue_top_10 - title: Revenue / Top 10 - content: + id: revenue_per_dollar_spent + title: Revenue per Dollar Spent + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) - - id: revenue_top_10_percent - title: Revenue / Top 10% - content: + id: revenue_top_10 + title: Revenue / Top 10 + - content: format: $#,##0 maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) - - id: total_revenue - title: Total Revenue - content: + id: revenue_top_10_percent + title: Revenue / Top 10% + - content: format: $#,##0 maql: SELECT {metric/revenue} BY ALL OTHER - - id: total_revenue-no_filters - title: Total Revenue (No Filters) - content: + id: total_revenue + title: Total Revenue + - content: format: $#,##0 maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER + id: total_revenue-no_filters + title: Total Revenue (No Filters) visualizationObjects: - - id: campaign_spend - title: Campaign Spend - content: + - content: buckets: - items: - measure: @@ -2537,9 +2322,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: customers_trend - title: Customers Trend - content: + id: campaign_spend + title: Campaign Spend + - content: buckets: - items: - measure: @@ -2609,9 +2394,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: percent_revenue_per_product_by_customer_and_category - title: '% Revenue per Product by Customer and Category' - content: + id: customers_trend + title: Customers Trend + - content: buckets: - items: - measure: @@ -2684,9 +2469,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: percentage_of_customers_by_region - title: Percentage of Customers by Region - content: + id: percent_revenue_per_product_by_customer_and_category + title: '% Revenue per Product by Customer and Category' + - content: buckets: - items: - measure: @@ -2739,9 +2524,9 @@ interactions: stackMeasuresToPercent: true version: '2' visualizationUrl: local:area - - id: product_breakdown - title: Product Breakdown - content: + id: percentage_of_customers_by_region + title: Percentage of Customers by Region + - content: buckets: - items: - measure: @@ -2792,9 +2577,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:treemap - - id: product_categories_pie_chart - title: Product Categories Pie Chart - content: + id: product_breakdown + title: Product Breakdown + - content: buckets: - items: - measure: @@ -2841,9 +2626,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:donut - - id: product_revenue_comparison-over_previous_period - title: Product Revenue Comparison (over previous period) - content: + id: product_categories_pie_chart + title: Product Categories Pie Chart + - content: buckets: - items: - measure: @@ -2912,9 +2697,9 @@ interactions: visible: false version: '2' visualizationUrl: local:column - - id: product_saleability - title: Product Saleability - content: + id: product_revenue_comparison-over_previous_period + title: Product Revenue Comparison (over previous period) + - content: buckets: - items: - measure: @@ -2965,9 +2750,9 @@ interactions: enabled: true version: '2' visualizationUrl: local:scatter - - id: revenue_and_quantity_by_product_and_category - title: Revenue and Quantity by Product and Category - content: + id: product_saleability + title: Product Saleability + - content: buckets: - items: - measure: @@ -3060,9 +2845,9 @@ interactions: direction: asc version: '2' visualizationUrl: local:table - - id: revenue_by_category_trend - title: Revenue by Category Trend - content: + id: revenue_and_quantity_by_product_and_category + title: Revenue and Quantity by Product and Category + - content: buckets: - items: - measure: @@ -3112,9 +2897,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:line - - id: revenue_by_product - title: Revenue by Product - content: + id: revenue_by_category_trend + title: Revenue by Category Trend + - content: buckets: - items: - measure: @@ -3147,9 +2932,9 @@ interactions: properties: {} version: '2' visualizationUrl: local:bar - - id: revenue_per_usd_vs_spend_by_campaign - title: Revenue per $ vs Spend by Campaign - content: + id: revenue_by_product + title: Revenue by Product + - content: buckets: - items: - measure: @@ -3199,9 +2984,9 @@ interactions: min: '0' version: '2' visualizationUrl: local:scatter - - id: revenue_trend - title: Revenue Trend - content: + id: revenue_per_usd_vs_spend_by_campaign + title: Revenue per $ vs Spend by Campaign + - content: buckets: - items: - measure: @@ -3263,9 +3048,9 @@ interactions: rotation: auto version: '2' visualizationUrl: local:combo2 - - id: top_10_customers - title: Top 10 Customers - content: + id: revenue_trend + title: Revenue Trend + - content: buckets: - items: - measure: @@ -3316,9 +3101,9 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - - id: top_10_products - title: Top 10 Products - content: + id: top_10_customers + title: Top 10 Customers + - content: buckets: - items: - measure: @@ -3369,103 +3154,324 @@ interactions: position: bottom version: '2' visualizationUrl: local:bar - dashboardPlugins: - - id: dashboard_plugin_1 - title: dashboard_plugin_1 - description: Testing record dashboard_plugin_1 - content: - url: https://www.example.com - version: '2' - - id: dashboard_plugin_2 - title: dashboard_plugin_2 - description: Testing record dashboard_plugin_2 - content: - url: https://www.example.com - version: '2' + id: top_10_products + title: Top 10 Products + ldm: + datasets: + - attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + tags: + - Campaign channels + title: Type + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + type: dataSource + description: Campaign channels + facts: + - description: Budget + id: budget + sourceColumn: budget + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + tags: + - Campaign channels + title: Spend + grain: + - id: campaign_channel_id + type: attribute + id: campaign_channels + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + tags: + - Campaign channels + title: Campaign channels + - attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + tags: + - Campaigns + title: Campaign name + dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + type: dataSource + description: Campaigns + facts: [] + grain: + - id: campaign_id + type: attribute + id: campaigns + references: [] + tags: + - Campaigns + title: Campaigns + - attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + tags: + - Customers + title: Location + sourceColumn: state + tags: + - Customers + title: State + dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + type: dataSource + description: Customers + facts: [] + grain: + - id: customer_id + type: attribute + id: customers + references: [] + tags: + - Customers + title: Customers + - attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + tags: + - Order lines + title: Order status + dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + type: dataSource + description: Order lines + facts: + - description: Price + id: price + sourceColumn: price + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + tags: + - Order lines + title: Quantity + grain: + - id: order_line_id + type: attribute + id: order_lines + references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sourceColumns: + - campaign_id + - identifier: + id: customers + type: dataset + multivalue: false + sourceColumns: + - customer_id + - identifier: + id: date + type: dataset + multivalue: false + sourceColumns: + - date + - identifier: + id: products + type: dataset + multivalue: false + sourceColumns: + - product_id + tags: + - Order lines + title: Order lines + - attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + tags: + - Products + title: Category + dataSourceTableId: + dataSourceId: demo-test-ds + id: products + type: dataSource + description: Products + facts: [] + grain: + - id: product_id + type: attribute + id: products + references: [] + tags: + - Products + title: Products + dateInstances: + - description: '' + granularities: + - MINUTE + - HOUR + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR + - MINUTE_OF_HOUR + - HOUR_OF_DAY + - DAY_OF_WEEK + - DAY_OF_MONTH + - DAY_OF_YEAR + - WEEK_OF_YEAR + - MONTH_OF_YEAR + - QUARTER_OF_YEAR + granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' + id: date + tags: + - Date + title: Date + name: Demo permissions: - - name: ANALYZE - assignee: - id: demo2 - type: user - - name: VIEW - assignee: - id: demoGroup - type: userGroup - hierarchyPermissions: - - name: MANAGE - assignee: + - assignee: id: demo2 type: user - - name: ANALYZE - assignee: + name: ANALYZE + - assignee: id: demoGroup type: userGroup + name: VIEW settings: [] - - id: demo_west - name: Demo West + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West parent: id: demo type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - - id: demo_west_california - name: Demo West California + - customApplicationSettings: [] + hierarchyPermissions: [] + id: demo_west_california model: - ldm: - datasets: [] - dateInstances: [] analytics: analyticalDashboards: [] + dashboardPlugins: [] filterContexts: [] metrics: [] visualizationObjects: [] - dashboardPlugins: [] + ldm: + datasets: [] + dateInstances: [] + name: Demo West California parent: id: demo_west type: workspace permissions: [] - hierarchyPermissions: [] settings: [] - workspaceDataFilters: - - id: wdf__region - title: Customer region - columnName: wdf__region - workspaceDataFilterSettings: - - id: region_west - title: Region West - filterValues: - - West - workspace: - id: demo_west - type: workspace - workspace: - id: demo - type: workspace - - id: wdf__state - title: Customer state - columnName: wdf__state - workspaceDataFilterSettings: - - id: region_west_california - title: Region West California - filterValues: - - California - workspace: - id: demo_west_california - type: workspace - workspace: - id: demo_west - type: workspace - request: method: GET uri: http://localhost:3000/api/v1/entities/organization @@ -3606,7 +3612,7 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default - request: @@ -3749,6 +3755,6 @@ interactions: attributes: name: Default Organization hostname: localhost - oauthClientId: 51664fa8-2ca3-4c21-b7b2-f8e794eded0e + oauthClientId: 6d3ab384-9250-4c1e-956f-954018d69291 links: self: http://localhost:3000/api/v1/entities/admin/organizations/default diff --git a/gooddata-sdk/tests/catalog/load/gooddata_layouts/default/data_sources/demo-bigquery-ds/demo-bigquery-ds.yaml b/gooddata-sdk/tests/catalog/load/gooddata_layouts/default/data_sources/demo-bigquery-ds/demo-bigquery-ds.yaml index e949dfc64..9910a4098 100644 --- a/gooddata-sdk/tests/catalog/load/gooddata_layouts/default/data_sources/demo-bigquery-ds/demo-bigquery-ds.yaml +++ b/gooddata-sdk/tests/catalog/load/gooddata_layouts/default/data_sources/demo-bigquery-ds/demo-bigquery-ds.yaml @@ -4,4 +4,9 @@ id: demo-bigquery-ds name: demo-bigquery-ds schema: demo type: BIGQUERY -url: jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=test;OAuthType=0 +parameters: + - name: "projectId" + value: "projectId-value-override" +decodedParameters: + - name: "clientEmail" + value: "fake email" diff --git a/gooddata-sdk/tests/catalog/test_catalog_data_source.py b/gooddata-sdk/tests/catalog/test_catalog_data_source.py index 1fd8fc32c..d9680c4d8 100644 --- a/gooddata-sdk/tests/catalog/test_catalog_data_source.py +++ b/gooddata-sdk/tests/catalog/test_catalog_data_source.py @@ -12,7 +12,6 @@ from gooddata_sdk import ( BasicCredentials, - BigQueryAttributes, CatalogDataSource, CatalogDataSourceBigQuery, CatalogDataSourcePostgres, @@ -220,18 +219,16 @@ def test_catalog_create_data_source_snowflake_spec(test_config): @gd_vcr.use_cassette(str(_fixtures_dir / "bigquery.yaml")) def test_catalog_create_data_source_bigquery_spec(test_config): sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) - with mock.patch("builtins.open", mock.mock_open(read_data=b"bigquery_service_account_json")): + with mock.patch("builtins.open", mock.mock_open(read_data=test_config["bigquery_token_file"].encode("utf-8"))): _create_delete_ds( sdk=sdk, data_source=CatalogDataSourceBigQuery( id="test", name="Test", - db_specific_attributes=BigQueryAttributes(project_id="gdc-us-dev"), schema="demo", credentials=TokenCredentialsFromFile(file_path=Path("credentials") / "bigquery_service_account.json"), enable_caching=True, cache_path=["cache_schema"], - url_params=[("param", "value")], ), ) @@ -343,7 +340,7 @@ def test_load_and_put_declarative_data_sources(test_config): expected_json_path = _current_dir / "expected" / "declarative_data_sources.json" try: sdk.catalog_data_source.put_declarative_data_sources(CatalogDeclarativeDataSources(data_sources=[])) - TokenCredentialsFromFile.token_from_file = MagicMock(return_value="c2VjcmV0X3Rva2Vu") + TokenCredentialsFromFile.token_from_file = MagicMock(return_value=test_config["bigquery_token"]) sdk.catalog_data_source.load_and_put_declarative_data_sources(load_folder, credentials_path) data_sources_o = sdk.catalog_data_source.get_declarative_data_sources() assert len(data_sources_o.data_sources) == 3 @@ -362,6 +359,8 @@ def test_load_and_put_declarative_data_sources(test_config): 5, 5, ] + assert len(data_sources_o.data_sources[0].parameters) == 1 + assert len(data_sources_o.data_sources[0].decoded_parameters) == 3 finally: with open(expected_json_path) as f: data = json.load(f) diff --git a/gooddata-sdk/tests/gd_test_config.yaml b/gooddata-sdk/tests/gd_test_config.yaml index 13e22b273..1ab730fe8 100644 --- a/gooddata-sdk/tests/gd_test_config.yaml +++ b/gooddata-sdk/tests/gd_test_config.yaml @@ -15,3 +15,5 @@ test_new_user: "newUser" test_new_user_group: "newUserGroup" demo_user: "demo" admin_user_group: "adminGroup" +bigquery_token: "eyJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsICJwcm9qZWN0X2lkIjogIlBST0pFQ1RfSUQiLCAicHJpdmF0ZV9rZXlfaWQiOiAiS0VZX0lEIiwgInByaXZhdGVfa2V5IjogIi0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxuUFJJVkFURV9LRVlcbi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS1cbiIsICJjbGllbnRfZW1haWwiOiAiU0VSVklDRV9BQ0NPVU5UX0VNQUlMIiwgImNsaWVudF9pZCI6ICJDTElFTlRfSUQiLCAiYXV0aF91cmkiOiAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGgiLCAidG9rZW5fdXJpIjogImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsICJhdXRoX3Byb3ZpZGVyX3g1MDlfY2VydF91cmwiOiAiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL2NlcnRzIiwgImNsaWVudF94NTA5X2NlcnRfdXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL3JvYm90L3YxL21ldGFkYXRhL3g1MDkvU0VSVklDRV9BQ0NPVU5UX0VNQUlMIn0=" +bigquery_token_file: '{"type": "service_account", "project_id": "PROJECT_ID", "private_key_id": "KEY_ID", "private_key": "-----BEGIN PRIVATE KEY-----\\nPRIVATE_KEY\\n-----END PRIVATE KEY-----\\n", "client_email": "SERVICE_ACCOUNT_EMAIL", "client_id": "CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL"}' diff --git a/gooddata-sdk/tests/table/fixtures/table_with_attribute_and_metric.yaml b/gooddata-sdk/tests/table/fixtures/table_with_attribute_and_metric.yaml index c493d443e..3a7816238 100644 --- a/gooddata-sdk/tests/table/fixtures/table_with_attribute_and_metric.yaml +++ b/gooddata-sdk/tests/table/fixtures/table_with_attribute_and_metric.yaml @@ -124,10 +124,10 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: 04b5fcf8a2991d4a2f69273dbcee13ba6aec8e07 + executionResult: ed4b7fadf7864b58032017c757bfcdbdda4ceb2c - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/04b5fcf8a2991d4a2f69273dbcee13ba6aec8e07?offset=0%2C0&limit=512%2C256 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/ed4b7fadf7864b58032017c757bfcdbdda4ceb2c?offset=0%2C0&limit=512%2C256 body: null headers: Accept: diff --git a/gooddata-sdk/tests/table/fixtures/table_with_attribute_metric_and_filter.yaml b/gooddata-sdk/tests/table/fixtures/table_with_attribute_metric_and_filter.yaml index 3d68c4d96..3c0a01e73 100644 --- a/gooddata-sdk/tests/table/fixtures/table_with_attribute_metric_and_filter.yaml +++ b/gooddata-sdk/tests/table/fixtures/table_with_attribute_metric_and_filter.yaml @@ -131,10 +131,10 @@ interactions: name: Order Amount localIdentifier: dim_1 links: - executionResult: dbdbc5cd01fdb6c5a56fc9566267dd6f739c5850 + executionResult: cc9ea5fd0e1f7d5fd72a9cdc2636e4fb9f824d12 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/dbdbc5cd01fdb6c5a56fc9566267dd6f739c5850?offset=0%2C0&limit=512%2C256 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/cc9ea5fd0e1f7d5fd72a9cdc2636e4fb9f824d12?offset=0%2C0&limit=512%2C256 body: null headers: Accept: diff --git a/gooddata-sdk/tests/table/fixtures/table_with_just_attribute.yaml b/gooddata-sdk/tests/table/fixtures/table_with_just_attribute.yaml index e83b9f373..6b54a5735 100644 --- a/gooddata-sdk/tests/table/fixtures/table_with_just_attribute.yaml +++ b/gooddata-sdk/tests/table/fixtures/table_with_just_attribute.yaml @@ -106,10 +106,10 @@ interactions: type: label localIdentifier: dim_0 links: - executionResult: e25d15c8f61ebcad2851c1d55870ca3cdf1e7bf6 + executionResult: 63f2020a4068eeb60cbb45c3e4cf944d8076a137 - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/e25d15c8f61ebcad2851c1d55870ca3cdf1e7bf6?offset=0&limit=512 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/63f2020a4068eeb60cbb45c3e4cf944d8076a137?offset=0&limit=512 body: null headers: Accept: diff --git a/gooddata-sdk/tests/table/fixtures/table_with_just_metric.yaml b/gooddata-sdk/tests/table/fixtures/table_with_just_metric.yaml index 355207e10..07fc3a702 100644 --- a/gooddata-sdk/tests/table/fixtures/table_with_just_metric.yaml +++ b/gooddata-sdk/tests/table/fixtures/table_with_just_metric.yaml @@ -100,10 +100,10 @@ interactions: name: Order Amount localIdentifier: dim_0 links: - executionResult: 438368ded32717c907f9460c102ec413751685d4 + executionResult: ac04188046749fc5ebdea59046d6a9f90814e59b - request: method: GET - uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/438368ded32717c907f9460c102ec413751685d4?offset=0&limit=256 + uri: http://localhost:3000/api/v1/actions/workspaces/demo/execution/afm/execute/result/ac04188046749fc5ebdea59046d6a9f90814e59b?offset=0&limit=256 body: null headers: Accept: