From ffeb6ec33c10e77449d2ef3546751d0403aa3ac4 Mon Sep 17 00:00:00 2001 From: Adam Fiedler Date: Tue, 27 Jan 2026 16:56:23 +0100 Subject: [PATCH 1/3] feat: add new fields regarding NULL values jira: CQ-1959 risk: low --- .../action_model/requests/ldm_request.py | 1 + .../physical_model/column.py | 2 + .../logical_model/dataset/dataset.py | 10 + .../catalog/expected/declarative_ldm.json | 7 - .../declarative_workspaces_snake_case.json | 7 - .../demo_testing/ldm/datasets/customers.yaml | 4 - .../refresh/declarative_workspaces.json | 3005 +++++++++++++++++ .../tests/catalog/test_catalog_data_source.py | 29 +- .../tests/catalog/test_catalog_workspace.py | 3 +- packages/gooddata-sdk/tests/catalog/utils.py | 2 +- .../src/tests_support/compare_utils.py | 4 +- 11 files changed, 3046 insertions(+), 28 deletions(-) create mode 100644 packages/gooddata-sdk/tests/catalog/refresh/declarative_workspaces.json diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/action_model/requests/ldm_request.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/action_model/requests/ldm_request.py index 320e87971..67053621d 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/action_model/requests/ldm_request.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/action_model/requests/ldm_request.py @@ -51,6 +51,7 @@ class CatalogGenerateLdmRequest(Base): wdf_prefix: Optional[str] = None pdm: Optional[CatalogPdmLdmRequest] = None workspace_id: Optional[str] = None + translation_prefix: Optional[str] = None @staticmethod def client_class() -> type[GenerateLdmRequest]: diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py index 95344c1a8..45ccb6a15 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py @@ -16,6 +16,8 @@ class CatalogDeclarativeColumn(Base): is_primary_key: Optional[bool] = None referenced_table_id: Optional[str] = None referenced_table_column: Optional[str] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeColumn]: diff --git a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py index 54f382206..be37191c2 100644 --- a/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py +++ b/packages/gooddata-sdk/src/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py @@ -82,6 +82,8 @@ class CatalogDeclarativeAttribute(Base): tags: Optional[list[str]] = None is_hidden: Optional[bool] = None locale: Optional[str] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeAttribute]: @@ -97,6 +99,8 @@ class CatalogDeclarativeFact(Base): description: Optional[str] = None tags: Optional[list[str]] = None is_hidden: Optional[bool] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeFact]: @@ -121,6 +125,8 @@ class CatalogDeclarativeAggregatedFact(Base): source_column_data_type: Optional[str] = None description: Optional[str] = None tags: Optional[list[str]] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeAggregatedFact]: @@ -171,6 +177,8 @@ class CatalogDeclarativeLabel(Base): locale: Optional[str] = None translations: Optional[list[CatalogDeclarativeLabelTranslation]] = None geo_area_config: Optional[CatalogGeoAreaConfig] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeLabel]: @@ -203,6 +211,8 @@ class CatalogDeclarativeReference(Base): source_columns: Optional[list[str]] = None source_column_data_types: Optional[list[str]] = None sources: Optional[list[CatalogDeclarativeReferenceSource]] = None + is_nullable: Optional[bool] = None + null_value: Optional[str] = None @staticmethod def client_class() -> type[DeclarativeReference]: diff --git a/packages/gooddata-sdk/tests/catalog/expected/declarative_ldm.json b/packages/gooddata-sdk/tests/catalog/expected/declarative_ldm.json index 77b438639..74a50f800 100644 --- a/packages/gooddata-sdk/tests/catalog/expected/declarative_ldm.json +++ b/packages/gooddata-sdk/tests/catalog/expected/declarative_ldm.json @@ -247,19 +247,12 @@ { "description": "Location", "id": "geo__state__location", - "locale": "en-US", "sourceColumn": "geo__state__location", "sourceColumnDataType": "STRING", "tags": [ "Customers" ], "title": "Location", - "translations": [ - { - "locale": "cs-CZ", - "sourceColumn": "geo__state__location_cz" - } - ], "valueType": "GEO" } ], diff --git a/packages/gooddata-sdk/tests/catalog/expected/declarative_workspaces_snake_case.json b/packages/gooddata-sdk/tests/catalog/expected/declarative_workspaces_snake_case.json index 2b1a6441d..cec7be645 100644 --- a/packages/gooddata-sdk/tests/catalog/expected/declarative_workspaces_snake_case.json +++ b/packages/gooddata-sdk/tests/catalog/expected/declarative_workspaces_snake_case.json @@ -261,13 +261,6 @@ "source_column": "geo__state__location", "source_column_data_type": "STRING", "description": "Location", - "locale": "en-US", - "translations": [ - { - "locale": "cs-CZ", - "source_column": "geo__state__location_cz" - } - ], "tags": [ "Customers" ], diff --git a/packages/gooddata-sdk/tests/catalog/load/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/customers.yaml b/packages/gooddata-sdk/tests/catalog/load/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/customers.yaml index f45eb9c36..72f273e29 100644 --- a/packages/gooddata-sdk/tests/catalog/load/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/customers.yaml +++ b/packages/gooddata-sdk/tests/catalog/load/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/customers.yaml @@ -32,10 +32,6 @@ attributes: id: geo__state__location sourceColumn: geo__state__location sourceColumnDataType: STRING - locale: en-US - translations: - - locale: cs-CZ - sourceColumn: geo__state__location_cz tags: - Customers title: Location diff --git a/packages/gooddata-sdk/tests/catalog/refresh/declarative_workspaces.json b/packages/gooddata-sdk/tests/catalog/refresh/declarative_workspaces.json new file mode 100644 index 000000000..584bb589c --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/refresh/declarative_workspaces.json @@ -0,0 +1,3005 @@ +{ + "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": [ + { + "automations": [], + "customApplicationSettings": [], + "filterViews": [], + "hierarchyPermissions": [ + { + "assignee": { + "id": "demo2", + "type": "user" + }, + "name": "MANAGE" + }, + { + "assignee": { + "id": "demoGroup", + "type": "userGroup" + }, + "name": "ANALYZE" + } + ], + "id": "demo", + "model": { + "analytics": { + "analyticalDashboardExtensions": [], + "analyticalDashboards": [ + { + "content": { + "filterContextRef": { + "identifier": { + "id": "campaign_name_filter", + "type": "filterContext" + } + }, + "layout": { + "type": "IDashboardLayout", + "sections": [ + { + "type": "IDashboardLayoutSection", + "header": { + "title": "Spend breakdown and Revenue", + "description": "The first insight shows a breakdown of spend by category and campaign. The second shows revenue per $ spend, for each campaign, to demonstrate, how campaigns are successful." + }, + "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", + "permissions": [ + { + "assigneeRule": { + "type": "allWorkspaceUsers" + }, + "name": "VIEW" + } + ], + "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": { + "type": "insight", + "title": "Top 10 Products", + "description": "", + "ignoreDashboardFilters": [], + "dateDataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "insight": { + "identifier": { + "id": "top_10_products", + "type": "visualizationObject" + } + }, + "drills": [], + "properties": { + + } + } + }, + { + "type": "IDashboardLayoutItem", + "size": { + "xl": { + "gridWidth": 6 + } + }, + "widget": { + "type": "insight", + "title": "Revenue Trend", + "description": "", + "ignoreDashboardFilters": [], + "dateDataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "insight": { + "identifier": { + "id": "revenue_trend", + "type": "visualizationObject" + } + }, + "drills": [], + "properties": { + + } + } + }, + { + "type": "IDashboardLayoutItem", + "size": { + "xl": { + "gridWidth": 6 + } + }, + "widget": { + "type": "insight", + "title": "Customers Trend", + "description": "", + "ignoreDashboardFilters": [], + "dateDataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "insight": { + "identifier": { + "id": "customers_trend", + "type": "visualizationObject" + } + }, + "drills": [], + "properties": { + + } + } + }, + { + "type": "IDashboardLayoutItem", + "size": { + "xl": { + "gridWidth": 6 + } + }, + "widget": { + "type": "insight", + "title": "Product Categories Pie Chart", + "description": "", + "ignoreDashboardFilters": [], + "dateDataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "insight": { + "identifier": { + "id": "product_categories_pie_chart", + "type": "visualizationObject" + } + }, + "drills": [], + "properties": { + + } + } + }, + { + "type": "IDashboardLayoutItem", + "size": { + "xl": { + "gridWidth": 6 + } + }, + "widget": { + "type": "insight", + "title": "Product Breakdown", + "description": "", + "ignoreDashboardFilters": [], + "dateDataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "insight": { + "identifier": { + "id": "product_breakdown", + "type": "visualizationObject" + } + }, + "drills": [], + "properties": { + + } + } + }, + { + "type": "IDashboardLayoutItem", + "size": { + "xl": { + "gridWidth": 6 + } + }, + "widget": { + "type": "insight", + "title": "Product Saleability", + "description": "", + "ignoreDashboardFilters": [], + "dateDataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "insight": { + "identifier": { + "id": "product_saleability", + "type": "visualizationObject" + } + }, + "drills": [], + "properties": { + + } + } + }, + { + "type": "IDashboardLayoutItem", + "size": { + "xl": { + "gridWidth": 12 + } + }, + "widget": { + "type": "insight", + "title": "% Revenue per Product by Customer and Category", + "description": "", + "ignoreDashboardFilters": [], + "dateDataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "insight": { + "identifier": { + "id": "percent_revenue_per_product_by_customer_and_category", + "type": "visualizationObject" + } + }, + "drills": [], + "properties": { + + } + } + } + ] + } + ] + }, + "version": "2" + }, + "description": "", + "id": "product_and_category", + "title": "Product & Category" + } + ], + "attributeHierarchies": [], + "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" + } + ], + "exportDefinitions": [], + "filterContexts": [ + { + "content": { + "filters": [ + { + "dateFilter": { + "from": "0", + "to": "0", + "granularity": "GDC.time.month", + "type": "relative" + } + }, + { + "attributeFilter": { + "displayForm": { + "identifier": { + "id": "campaign_name", + "type": "label" + } + }, + "negativeSelection": true, + "attributeElements": { + "uris": [] + }, + "localIdentifier": "14b0807447ef4bc28f43e4fc5c337d1d", + "filterElementsBy": [] + } + } + ], + "version": "2" + }, + "description": "", + "id": "campaign_name_filter", + "title": "filterContext" + }, + { + "content": { + "filters": [ + { + "attributeFilter": { + "displayForm": { + "identifier": { + "id": "region", + "type": "label" + } + }, + "negativeSelection": true, + "attributeElements": { + "uris": [] + }, + "localIdentifier": "2d5ef8df82444f6ba27b45f0990ee6af", + "filterElementsBy": [] + } + } + ], + "version": "2" + }, + "description": "", + "id": "region_filter", + "title": "filterContext" + } + ], + "metrics": [ + { + "content": { + "format": "#,##0", + "maql": "SELECT COUNT({attribute/customer_id},{attribute/order_line_id})" + }, + "id": "amount_of_active_customers", + "title": "# of Active Customers" + }, + { + "content": { + "format": "#,##0", + "maql": "SELECT COUNT({attribute/order_id})" + }, + "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}) \u003E 10000 " + }, + "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\"))" + }, + "description": "", + "id": "amount_of_valid_orders", + "title": "# of Valid Orders" + }, + { + "content": { + "format": "$#,##0", + "maql": "SELECT SUM({fact/spend})" + }, + "id": "campaign_spend", + "title": "Campaign Spend" + }, + { + "content": { + "format": "$#,##0", + "maql": "SELECT SUM({fact/price}*{fact/quantity})" + }, + "id": "order_amount", + "title": "Order Amount" + }, + { + "content": { + "format": "#,##0.0%", + "maql": "SELECT {metric/revenue} / {metric/total_revenue}" + }, + "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}) \u003E 0)\n /\n {metric/revenue}" + }, + "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}) \u003E 0)\n /\n {metric/revenue}" + }, + "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}) \u003E 0)\n /\n {metric/revenue}" + }, + "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}) \u003E 0)\n /\n {metric/revenue}" + }, + "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_in_category", + "title": "% Revenue in Category" + }, + { + "content": { + "format": "#,##0.0%", + "maql": "SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id})" + }, + "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\"))" + }, + "description": "", + "id": "revenue", + "title": "Revenue" + }, + { + "content": { + "format": "$#,##0", + "maql": "SELECT {metric/revenue} WHERE {label/products.category} IN (\"Clothing\")" + }, + "id": "revenue-clothing", + "title": "Revenue (Clothing)" + }, + { + "content": { + "format": "$#,##0", + "maql": "SELECT {metric/revenue} WHERE {label/products.category} IN ( \"Electronics\")" + }, + "id": "revenue-electronic", + "title": "Revenue (Electronic)" + }, + { + "content": { + "format": "$#,##0", + "maql": "SELECT {metric/revenue} WHERE {label/products.category} IN (\"Home\")" + }, + "id": "revenue-home", + "title": "Revenue (Home)" + }, + { + "content": { + "format": "$#,##0", + "maql": "SELECT {metric/revenue} WHERE {label/products.category} IN (\"Outdoor\")" + }, + "id": "revenue-outdoor", + "title": "Revenue (Outdoor)" + }, + { + "content": { + "format": "$#,##0.0", + "maql": "SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id})" + }, + "id": "revenue_per_customer", + "title": "Revenue per Customer" + }, + { + "content": { + "format": "$#,##0.0", + "maql": "SELECT {metric/revenue} / {metric/campaign_spend}" + }, + "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", + "title": "Revenue / Top 10" + }, + { + "content": { + "format": "$#,##0", + "maql": "SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue})" + }, + "id": "revenue_top_10_percent", + "title": "Revenue / Top 10%" + }, + { + "content": { + "format": "$#,##0", + "maql": "SELECT {metric/revenue} BY ALL OTHER" + }, + "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": [ + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "campaign_spend", + "type": "metric" + } + } + } + }, + "localIdentifier": "d319bcb2d8c04442a684e3b3cd063381", + "title": "Campaign Spend" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "campaign_channels.category", + "type": "label" + } + }, + "localIdentifier": "291c085e7df8420db84117ca49f59c49" + } + } + ], + "localIdentifier": "view" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "campaign_name", + "type": "label" + } + }, + "localIdentifier": "d9dd143d647d4d148405a60ec2cf59bc" + } + } + ], + "localIdentifier": "segment" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "type", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "campaign_channels.category", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "campaign_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + } + ], + "properties": { + "controls": { + "legend": { + "position": "bottom" + } + } + }, + "version": "2", + "visualizationUrl": "local:treemap" + }, + "id": "campaign_spend", + "title": "Campaign Spend" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "alias": "Active Customers", + "definition": { + "measureDefinition": { + "computeRatio": false, + "filters": [], + "item": { + "identifier": { + "id": "amount_of_active_customers", + "type": "metric" + } + } + } + }, + "localIdentifier": "2ba0b87b59ca41a4b1530e81a5c1d081", + "title": "# of Active Customers" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "revenue_per_customer", + "type": "metric" + } + } + } + }, + "localIdentifier": "ec0606894b9f4897b7beaf1550608928", + "title": "Revenue per Customer" + } + } + ], + "localIdentifier": "secondary_measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "date.month", + "type": "label" + } + }, + "localIdentifier": "0de7d7f08af7480aa636857a26be72b6" + } + } + ], + "localIdentifier": "view" + } + ], + "filters": [ + { + "relativeDateFilter": { + "dataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "from": -11, + "granularity": "GDC.time.month", + "to": 0 + } + } + ], + "properties": { + "controls": { + "colorMapping": [ + { + "color": { + "type": "guid", + "value": "20" + }, + "id": "2ba0b87b59ca41a4b1530e81a5c1d081" + }, + { + "color": { + "type": "guid", + "value": "4" + }, + "id": "ec0606894b9f4897b7beaf1550608928" + } + ], + "dualAxis": true, + "legend": { + "position": "bottom" + }, + "primaryChartType": "column", + "secondaryChartType": "line", + "secondary_yaxis": { + "measures": [ + "ec0606894b9f4897b7beaf1550608928" + ] + }, + "xaxis": { + "name": { + "visible": false + }, + "rotation": "auto" + } + } + }, + "version": "2", + "visualizationUrl": "local:combo2" + }, + "id": "customers_trend", + "title": "Customers Trend" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "percent_revenue_per_product", + "type": "metric" + } + } + } + }, + "localIdentifier": "08d8346c1ce7438994b251991c0fbf65", + "title": "% Revenue per Product" + } + }, + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "revenue", + "type": "metric" + } + } + } + }, + "localIdentifier": "b2350c06688b4da9b3833ebcce65527f", + "title": "Revenue" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "customer_name", + "type": "label" + } + }, + "localIdentifier": "7a4045fd00ac44579f52406df679435f" + } + }, + { + "attribute": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "localIdentifier": "6a003ffd14994237ba64c4a02c488429" + } + }, + { + "attribute": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "localIdentifier": "75ea396d0c8b48098e31dccf8b5801d3" + } + } + ], + "localIdentifier": "attribute" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "customer_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + } + ], + "properties": { + + }, + "sorts": [ + { + "attributeSortItem": { + "attributeIdentifier": "7a4045fd00ac44579f52406df679435f", + "direction": "asc" + } + } + ], + "version": "2", + "visualizationUrl": "local:table" + }, + "id": "percent_revenue_per_product_by_customer_and_category", + "title": "% Revenue per Product by Customer and Category" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "amount_of_active_customers", + "type": "metric" + } + } + } + }, + "localIdentifier": "1a14cdc1293c46e89a2e25d3e741d235", + "title": "# of Active Customers" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "date.month", + "type": "label" + } + }, + "localIdentifier": "c1feca1864244ec2ace7a9b9d7fda231" + } + } + ], + "localIdentifier": "view" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "region", + "type": "label" + } + }, + "localIdentifier": "530cddbd7ca04d039e73462d81ed44d5" + } + } + ], + "localIdentifier": "stack" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "region", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "relativeDateFilter": { + "dataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "from": -11, + "granularity": "GDC.time.month", + "to": 0 + } + } + ], + "properties": { + "controls": { + "legend": { + "position": "bottom" + }, + "stackMeasuresToPercent": true + } + }, + "version": "2", + "visualizationUrl": "local:area" + }, + "id": "percentage_of_customers_by_region", + "title": "Percentage of Customers by Region" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "revenue", + "type": "metric" + } + } + } + }, + "localIdentifier": "590d332ef686468b8878ae41b23341c6", + "title": "Revenue" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "localIdentifier": "b166c71091864312a14c7ae8ff886ffe" + } + } + ], + "localIdentifier": "view" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "localIdentifier": "e920a50e0bbb49788df0aac53634c1cd" + } + } + ], + "localIdentifier": "segment" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + } + ], + "properties": { + "controls": { + "legend": { + "position": "bottom" + } + } + }, + "version": "2", + "visualizationUrl": "local:treemap" + }, + "id": "product_breakdown", + "title": "Product Breakdown" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "computeRatio": true, + "filters": [], + "item": { + "identifier": { + "id": "revenue", + "type": "metric" + } + } + } + }, + "localIdentifier": "162b857af49d45769bc12604a5c192b9", + "title": "% Revenue", + "format": "#,##0.00%" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "localIdentifier": "fe513cef1c6244a5ac21c5f49c56b108" + } + } + ], + "localIdentifier": "view" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + } + ], + "properties": { + "controls": { + "dataLabels": { + "visible": "auto" + }, + "legend": { + "position": "bottom" + } + } + }, + "version": "2", + "visualizationUrl": "local:donut" + }, + "id": "product_categories_pie_chart", + "title": "Product Categories Pie Chart" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "alias": "Previous Period", + "definition": { + "popMeasureDefinition": { + "measureIdentifier": "c82e025fa2db4afea9a600a424591dbe", + "popAttribute": { + "identifier": { + "id": "date.year", + "type": "attribute" + } + } + } + }, + "localIdentifier": "c82e025fa2db4afea9a600a424591dbe_pop" + } + }, + { + "measure": { + "alias": "This Period", + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "revenue", + "type": "metric" + } + } + } + }, + "localIdentifier": "c82e025fa2db4afea9a600a424591dbe", + "title": "Revenue" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "localIdentifier": "c804ef5ba7944a5a9f360c86a9e95e9a" + } + } + ], + "localIdentifier": "view" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "relativeDateFilter": { + "dataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "from": -11, + "granularity": "GDC.time.month", + "to": 0 + } + }, + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + } + ], + "properties": { + "controls": { + "legend": { + "position": "bottom" + }, + "stackMeasures": false, + "xaxis": { + "name": { + "visible": false + } + }, + "yaxis": { + "name": { + "visible": false + } + } + } + }, + "version": "2", + "visualizationUrl": "local:column" + }, + "id": "product_revenue_comparison-over_previous_period", + "title": "Product Revenue Comparison (over previous period)" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "alias": "Number of Orders", + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "amount_of_orders", + "type": "metric" + } + } + } + }, + "localIdentifier": "aeb5d51a162d4b59aba3bd6ddebcc780", + "title": "# of Orders" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "revenue", + "type": "metric" + } + } + } + }, + "localIdentifier": "94b3edd3a73c4a48a4d13bbe9442cc98", + "title": "Revenue" + } + } + ], + "localIdentifier": "secondary_measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "localIdentifier": "d2a991bdd123448eb2be73d79f1180c4" + } + } + ], + "localIdentifier": "attribute" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + } + ], + "properties": { + "controls": { + "dataLabels": { + "visible": "auto" + }, + "grid": { + "enabled": true + } + } + }, + "version": "2", + "visualizationUrl": "local:scatter" + }, + "id": "product_saleability", + "title": "Product Saleability" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "alias": "Items Sold", + "definition": { + "measureDefinition": { + "aggregation": "sum", + "filters": [], + "item": { + "identifier": { + "id": "quantity", + "type": "fact" + } + } + } + }, + "format": "#,##0.00", + "localIdentifier": "29486504dd0e4a36a18b0b2f792d3a46", + "title": "Sum of Quantity" + } + }, + { + "measure": { + "definition": { + "measureDefinition": { + "aggregation": "avg", + "filters": [], + "item": { + "identifier": { + "id": "price", + "type": "fact" + } + } + } + }, + "format": "#,##0.00", + "localIdentifier": "aa6391acccf1452f8011201aef9af492", + "title": "Avg Price" + } + }, + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "percent_revenue_in_category", + "type": "metric" + } + } + } + }, + "localIdentifier": "2cd39539d8da46c9883e63caa3ba7cc0", + "title": "% Revenue in Category" + } + }, + { + "measure": { + "alias": "Total Revenue", + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "revenue", + "type": "metric" + } + } + } + }, + "localIdentifier": "9a0f08331c094c7facf2a0b4f418de0a", + "title": "Revenue" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "localIdentifier": "06bc6b3b9949466494e4f594c11f1bff" + } + }, + { + "attribute": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "localIdentifier": "192668bfb6a74e9ab7b5d1ce7cb68ea3" + } + } + ], + "localIdentifier": "attribute" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "customer_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + } + ], + "properties": { + + }, + "sorts": [ + { + "attributeSortItem": { + "attributeIdentifier": "06bc6b3b9949466494e4f594c11f1bff", + "direction": "asc" + } + } + ], + "version": "2", + "visualizationUrl": "local:table" + }, + "id": "revenue_and_quantity_by_product_and_category", + "title": "Revenue and Quantity by Product and Category" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "revenue", + "type": "metric" + } + } + } + }, + "localIdentifier": "7df6c34387744d69b23ec92e1a5cf543", + "title": "Revenue" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "date.month", + "type": "label" + } + }, + "localIdentifier": "4bb4fc1986c546de9ad976e6ec23fed4" + } + } + ], + "localIdentifier": "trend" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "localIdentifier": "34bddcb1cd024902a82396216b0fa9d8" + } + } + ], + "localIdentifier": "segment" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "products.category", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "relativeDateFilter": { + "dataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "granularity": "GDC.time.year" + } + } + ], + "properties": { + "controls": { + "legend": { + "position": "bottom" + } + } + }, + "version": "2", + "visualizationUrl": "local:line" + }, + "id": "revenue_by_category_trend", + "title": "Revenue by Category Trend" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "revenue", + "type": "metric" + } + } + } + }, + "localIdentifier": "4ae3401bdbba4938afe983df4ba04e1c", + "title": "Revenue" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "localIdentifier": "1c8ba72dbfc84ddd913bf81dc355c427" + } + } + ], + "localIdentifier": "view" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "product_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + } + ], + "properties": { + + }, + "version": "2", + "visualizationUrl": "local:bar" + }, + "id": "revenue_by_product", + "title": "Revenue by Product" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "campaign_spend", + "type": "metric" + } + } + } + }, + "localIdentifier": "13a50d811e474ac6808d8da7f4673b35", + "title": "Campaign Spend" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "revenue_per_dollar_spent", + "type": "metric" + } + } + } + }, + "localIdentifier": "a0f15e82e6334280a44dbedc7d086e7c", + "title": "Revenue per Dollar Spent" + } + } + ], + "localIdentifier": "secondary_measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "campaign_name", + "type": "label" + } + }, + "localIdentifier": "1d9fa968bafb423eb29c938dfb1207ff" + } + } + ], + "localIdentifier": "attribute" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "campaign_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + } + ], + "properties": { + "controls": { + "xaxis": { + "min": "0" + }, + "yaxis": { + "min": "0" + } + } + }, + "version": "2", + "visualizationUrl": "local:scatter" + }, + "id": "revenue_per_usd_vs_spend_by_campaign", + "title": "Revenue per $ vs Spend by Campaign" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "computeRatio": false, + "filters": [], + "item": { + "identifier": { + "id": "revenue", + "type": "metric" + } + } + } + }, + "localIdentifier": "60c854969a9c4c278ab596d99c222e92", + "title": "Revenue" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "measure": { + "alias": "Number of Orders", + "definition": { + "measureDefinition": { + "computeRatio": false, + "filters": [], + "item": { + "identifier": { + "id": "amount_of_orders", + "type": "metric" + } + } + } + }, + "localIdentifier": "c2fa7ef48cc54af99f8c280eb451e051", + "title": "# of Orders" + } + } + ], + "localIdentifier": "secondary_measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "date.month", + "type": "label" + } + }, + "localIdentifier": "413ac374b65648fa96826ca01d47bdda" + } + } + ], + "localIdentifier": "view" + } + ], + "filters": [ + { + "relativeDateFilter": { + "dataSet": { + "identifier": { + "id": "date", + "type": "dataset" + } + }, + "from": -3, + "granularity": "GDC.time.quarter", + "to": 0 + } + } + ], + "properties": { + "controls": { + "dualAxis": true, + "legend": { + "position": "bottom" + }, + "primaryChartType": "column", + "secondaryChartType": "line", + "secondary_yaxis": { + "measures": [ + "c2fa7ef48cc54af99f8c280eb451e051" + ] + }, + "xaxis": { + "name": { + "visible": false + }, + "rotation": "auto" + } + } + }, + "version": "2", + "visualizationUrl": "local:combo2" + }, + "id": "revenue_trend", + "title": "Revenue Trend" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "filters": [], + "item": { + "identifier": { + "id": "revenue_top_10", + "type": "metric" + } + } + } + }, + "localIdentifier": "3f127ccfe57a40399e23f9ae2a4ad810", + "title": "Revenue / Top 10" + } + } + ], + "localIdentifier": "measures" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "customer_name", + "type": "label" + } + }, + "localIdentifier": "f4e39e24f11e4827a191c30d65c89d2c" + } + } + ], + "localIdentifier": "view" + }, + { + "items": [ + { + "attribute": { + "displayForm": { + "identifier": { + "id": "state", + "type": "label" + } + }, + "localIdentifier": "bbccd430176d428caed54c99afc9589e" + } + } + ], + "localIdentifier": "stack" + } + ], + "filters": [ + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "customer_name", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + }, + { + "negativeAttributeFilter": { + "displayForm": { + "identifier": { + "id": "state", + "type": "label" + } + }, + "notIn": { + "values": [] + } + } + } + ], + "properties": { + "controls": { + "legend": { + "position": "bottom" + } + } + }, + "version": "2", + "visualizationUrl": "local:bar" + }, + "id": "top_10_customers", + "title": "Top 10 Customers" + }, + { + "content": { + "buckets": [ + { + "items": [ + { + "measure": { + "definition": { + "measureDefinition": { + "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" + } + ] + }, + "ldm": { + "datasets": [ + { + "aggregatedFacts": [], + "attributes": [ + { + "description": "Campaign channel id", + "id": "campaign_channel_id", + "labels": [], + "sourceColumn": "campaign_channel_id", + "sourceColumnDataType": "STRING", + "tags": [ + "Campaign channels" + ], + "title": "Campaign channel id" + }, + { + "description": "Category", + "id": "campaign_channels.category", + "labels": [], + "sourceColumn": "category", + "sourceColumnDataType": "STRING", + "tags": [ + "Campaign channels" + ], + "title": "Category" + }, + { + "description": "Type", + "id": "type", + "labels": [], + "sourceColumn": "type", + "sourceColumnDataType": "STRING", + "tags": [ + "Campaign channels" + ], + "title": "Type" + } + ], + "dataSourceTableId": { + "dataSourceId": "demo-test-ds", + "id": "campaign_channels", + "path": [ + "demo", + "campaign_channels" + ], + "type": "dataSource" + }, + "description": "Campaign channels", + "facts": [ + { + "description": "Budget", + "id": "budget", + "sourceColumn": "budget", + "sourceColumnDataType": "NUMERIC", + "tags": [ + "Campaign channels" + ], + "title": "Budget" + }, + { + "description": "Spend", + "id": "spend", + "sourceColumn": "spend", + "sourceColumnDataType": "NUMERIC", + "tags": [ + "Campaign channels" + ], + "title": "Spend" + } + ], + "grain": [ + { + "id": "campaign_channel_id", + "type": "attribute" + } + ], + "id": "campaign_channels", + "references": [ + { + "identifier": { + "id": "campaigns", + "type": "dataset" + }, + "multivalue": false, + "sources": [ + { + "column": "campaign_id", + "dataType": "INT", + "target": { + "id": "campaign_id", + "type": "attribute" + } + } + ] + } + ], + "tags": [ + "Campaign channels" + ], + "title": "Campaign channels" + }, + { + "aggregatedFacts": [ + { + "description": "Budget Agg", + "id": "budget_agg", + "sourceColumn": "budget", + "sourceColumnDataType": "INT", + "sourceFactReference": { + "operation": "SUM", + "reference": { + "id": "budget", + "type": "fact" + } + }, + "tags": [ + "Campaign channels per category" + ] + } + ], + "attributes": [], + "description": "Campaign channels per categories", + "facts": [], + "grain": [], + "id": "campaign_channels_per_category", + "precedence": 1, + "references": [ + { + "identifier": { + "id": "campaign_channels", + "type": "dataset" + }, + "multivalue": false, + "sources": [ + { + "column": "campaign_channel_id", + "dataType": "STRING", + "target": { + "id": "campaign_channel_id", + "type": "attribute" + } + } + ] + } + ], + "sql": { + "dataSourceId": "demo-test-ds", + "statement": "SELECT category, SUM(budget) FROM campaign_channels GROUP BY category" + }, + "tags": [ + "Campaign channels per category" + ], + "title": "Campaign channels per category" + }, + { + "aggregatedFacts": [], + "attributes": [ + { + "description": "Campaign id", + "id": "campaign_id", + "labels": [], + "sourceColumn": "campaign_id", + "sourceColumnDataType": "INT", + "tags": [ + "Campaigns" + ], + "title": "Campaign id" + }, + { + "description": "Campaign name", + "id": "campaign_name", + "labels": [], + "sourceColumn": "campaign_name", + "sourceColumnDataType": "STRING", + "tags": [ + "Campaigns" + ], + "title": "Campaign name" + } + ], + "dataSourceTableId": { + "dataSourceId": "demo-test-ds", + "id": "campaigns", + "path": [ + "demo", + "campaigns" + ], + "type": "dataSource" + }, + "description": "Campaigns", + "facts": [], + "grain": [ + { + "id": "campaign_id", + "type": "attribute" + } + ], + "id": "campaigns", + "references": [], + "tags": [ + "Campaigns" + ], + "title": "Campaigns" + }, + { + "aggregatedFacts": [], + "attributes": [ + { + "description": "Customer id", + "id": "customer_id", + "labels": [], + "sourceColumn": "customer_id", + "sourceColumnDataType": "INT", + "tags": [ + "Customers" + ], + "title": "Customer id" + }, + { + "description": "Customer name", + "id": "customer_name", + "labels": [], + "sourceColumn": "customer_name", + "sourceColumnDataType": "STRING", + "tags": [ + "Customers" + ], + "title": "Customer name" + }, + { + "description": "Region", + "id": "region", + "labels": [], + "sourceColumn": "region", + "sourceColumnDataType": "STRING", + "tags": [ + "Customers" + ], + "title": "Region" + }, + { + "description": "State", + "id": "state", + "labels": [ + { + "description": "Location", + "id": "geo__state__location", + "sourceColumn": "geo__state__location", + "sourceColumnDataType": "STRING", + "tags": [ + "Customers" + ], + "title": "Location", + "valueType": "GEO" + } + ], + "sourceColumn": "state", + "sourceColumnDataType": "STRING", + "tags": [ + "Customers" + ], + "title": "State" + } + ], + "dataSourceTableId": { + "dataSourceId": "demo-test-ds", + "id": "customers", + "path": [ + "demo", + "customers" + ], + "type": "dataSource" + }, + "description": "Customers", + "facts": [], + "grain": [ + { + "id": "customer_id", + "type": "attribute" + } + ], + "id": "customers", + "references": [], + "tags": [ + "Customers" + ], + "title": "Customers" + }, + { + "aggregatedFacts": [], + "attributes": [ + { + "description": "Order id", + "id": "order_id", + "labels": [], + "sourceColumn": "order_id", + "sourceColumnDataType": "STRING", + "tags": [ + "Order lines" + ], + "title": "Order id" + }, + { + "description": "Order line id", + "id": "order_line_id", + "labels": [], + "sourceColumn": "order_line_id", + "sourceColumnDataType": "STRING", + "tags": [ + "Order lines" + ], + "title": "Order line id" + }, + { + "description": "Order status", + "id": "order_status", + "labels": [], + "sourceColumn": "order_status", + "sourceColumnDataType": "STRING", + "tags": [ + "Order lines" + ], + "title": "Order status" + } + ], + "dataSourceTableId": { + "dataSourceId": "demo-test-ds", + "id": "order_lines", + "path": [ + "demo", + "order_lines" + ], + "type": "dataSource" + }, + "description": "Order lines", + "facts": [ + { + "description": "Price", + "id": "price", + "sourceColumn": "price", + "sourceColumnDataType": "NUMERIC", + "tags": [ + "Order lines" + ], + "title": "Price" + }, + { + "description": "Quantity", + "id": "quantity", + "sourceColumn": "quantity", + "sourceColumnDataType": "NUMERIC", + "tags": [ + "Order lines" + ], + "title": "Quantity" + } + ], + "grain": [ + { + "id": "order_line_id", + "type": "attribute" + } + ], + "id": "order_lines", + "references": [ + { + "identifier": { + "id": "campaigns", + "type": "dataset" + }, + "multivalue": false, + "sources": [ + { + "column": "campaign_id", + "dataType": "INT", + "target": { + "id": "campaign_id", + "type": "attribute" + } + } + ] + }, + { + "identifier": { + "id": "customers", + "type": "dataset" + }, + "multivalue": false, + "sources": [ + { + "column": "customer_id", + "dataType": "INT", + "target": { + "id": "customer_id", + "type": "attribute" + } + } + ] + }, + { + "identifier": { + "id": "date", + "type": "dataset" + }, + "multivalue": false, + "sources": [ + { + "column": "date", + "dataType": "DATE", + "target": { + "id": "date", + "type": "date" + } + } + ] + }, + { + "identifier": { + "id": "products", + "type": "dataset" + }, + "multivalue": false, + "sources": [ + { + "column": "product_id", + "dataType": "INT", + "target": { + "id": "product_id", + "type": "attribute" + } + } + ] + } + ], + "tags": [ + "Order lines" + ], + "title": "Order lines", + "workspaceDataFilterColumns": [ + { + "dataType": "STRING", + "name": "wdf__region" + }, + { + "dataType": "STRING", + "name": "wdf__state" + } + ], + "workspaceDataFilterReferences": [ + { + "filterColumn": "wdf__region", + "filterColumnDataType": "STRING", + "filterId": { + "id": "wdf__region", + "type": "workspaceDataFilter" + } + } + ] + }, + { + "aggregatedFacts": [], + "attributes": [ + { + "description": "Product id", + "id": "product_id", + "labels": [], + "sourceColumn": "product_id", + "sourceColumnDataType": "INT", + "tags": [ + "Products" + ], + "title": "Product id" + }, + { + "description": "Product name", + "id": "product_name", + "labels": [], + "sourceColumn": "product_name", + "sourceColumnDataType": "STRING", + "tags": [ + "Products" + ], + "title": "Product name" + }, + { + "description": "Category", + "id": "products.category", + "labels": [], + "sourceColumn": "category", + "sourceColumnDataType": "STRING", + "tags": [ + "Products" + ], + "title": "Category" + } + ], + "dataSourceTableId": { + "dataSourceId": "demo-test-ds", + "id": "products", + "path": [ + "demo", + "products" + ], + "type": "dataSource" + }, + "description": "Products", + "facts": [], + "grain": [ + { + "id": "product_id", + "type": "attribute" + } + ], + "id": "products", + "references": [], + "tags": [ + "Products" + ], + "title": "Products" + } + ], + "dateInstances": [ + { + "description": "", + "granularities": [ + "DAY", + "WEEK", + "MONTH", + "QUARTER", + "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": [], + "userDataFilters": [] + }, + { + "automations": [], + "customApplicationSettings": [], + "filterViews": [], + "hierarchyPermissions": [], + "id": "demo_west", + "model": { + "analytics": { + "analyticalDashboardExtensions": [ + { + "id": "campaign", + "permissions": [ + { + "assigneeRule": { + "type": "allWorkspaceUsers" + }, + "name": "VIEW" + } + ] + } + ], + "analyticalDashboards": [], + "attributeHierarchies": [], + "dashboardPlugins": [], + "exportDefinitions": [], + "filterContexts": [], + "metrics": [], + "visualizationObjects": [] + }, + "ldm": { + "datasetExtensions": [ + { + "id": "order_lines", + "workspaceDataFilterReferences": [ + { + "filterColumn": "wdf__state", + "filterColumnDataType": "STRING", + "filterId": { + "id": "wdf__state", + "type": "workspaceDataFilter" + } + } + ] + } + ], + "datasets": [], + "dateInstances": [] + } + }, + "name": "Demo West", + "parent": { + "id": "demo", + "type": "workspace" + }, + "permissions": [], + "settings": [], + "userDataFilters": [] + }, + { + "automations": [], + "customApplicationSettings": [], + "filterViews": [], + "hierarchyPermissions": [], + "id": "demo_west_california", + "model": { + "analytics": { + "analyticalDashboardExtensions": [], + "analyticalDashboards": [], + "attributeHierarchies": [], + "dashboardPlugins": [], + "exportDefinitions": [], + "filterContexts": [], + "metrics": [], + "visualizationObjects": [] + }, + "ldm": { + "datasets": [], + "dateInstances": [] + } + }, + "name": "Demo West California", + "parent": { + "id": "demo_west", + "type": "workspace" + }, + "permissions": [], + "settings": [], + "userDataFilters": [] + } + ] +} diff --git a/packages/gooddata-sdk/tests/catalog/test_catalog_data_source.py b/packages/gooddata-sdk/tests/catalog/test_catalog_data_source.py index b08b696a9..2bf6415c2 100644 --- a/packages/gooddata-sdk/tests/catalog/test_catalog_data_source.py +++ b/packages/gooddata-sdk/tests/catalog/test_catalog_data_source.py @@ -44,6 +44,7 @@ ) from gooddata_sdk.catalog.data_source.entity_model.data_source import DatabaseAttributes from gooddata_sdk.catalog.entity import ClientSecretCredentialsFromFile +from tests_support.compare_utils import deep_eq from tests_support.file_utils import load_json from tests_support.vcrpy_utils import get_vcr @@ -78,7 +79,11 @@ def test_generate_logical_model(test_config: dict): sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) declarative_model = sdk.catalog_workspace_content.get_declarative_ldm(test_config["workspace"]) generate_ldm_request = CatalogGenerateLdmRequest( - separator="__", wdf_prefix="wdf", workspace_id=test_config["workspace"], pdm=pdm_ldm_request + separator="__", + wdf_prefix="wdf", + workspace_id=test_config["workspace"], + pdm=pdm_ldm_request, + translation_prefix="tr", ) generated_declarative_model = sdk.catalog_data_source.generate_logical_model( test_config["data_source"], generate_ldm_request @@ -93,7 +98,11 @@ def test_generate_logical_model(test_config: dict): """ # Filter out SQL-based datasets (those have sql property set, no data_source_table_id) table_based_datasets = [ds for ds in declarative_model.ldm.datasets if ds.sql is None] - assert table_based_datasets == generated_declarative_model.ldm.datasets + + for i, dataset in enumerate(table_based_datasets): + print(f"Dataset: {dataset.id}") + assert deep_eq(dataset, generated_declarative_model.ldm.datasets[i]) + assert len(declarative_model.ldm.date_instances) == len(generated_declarative_model.ldm.date_instances) @@ -102,7 +111,7 @@ def test_scan_pdm_and_generate_logical_model(test_config: dict): sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) declarative_model = sdk.catalog_workspace_content.get_declarative_ldm(test_config["workspace"]) generate_ldm_request = CatalogGenerateLdmRequest( - separator="__", wdf_prefix="wdf", workspace_id=test_config["workspace"] + separator="__", wdf_prefix="wdf", workspace_id=test_config["workspace"], translation_prefix="tr" ) generated_declarative_model, _ = sdk.catalog_data_source.scan_pdm_and_generate_logical_model( test_config["data_source"], generate_ldm_request @@ -117,7 +126,10 @@ def test_scan_pdm_and_generate_logical_model(test_config: dict): """ # Filter out SQL-based datasets (those have sql property set, no data_source_table_id) table_based_datasets = [ds for ds in declarative_model.ldm.datasets if ds.sql is None] - assert table_based_datasets == generated_declarative_model.ldm.datasets + for i, dataset in enumerate(table_based_datasets): + print(f"Dataset: {dataset.id}") + assert deep_eq(dataset, generated_declarative_model.ldm.datasets[i]) + assert len(declarative_model.ldm.date_instances) == len(generated_declarative_model.ldm.date_instances) @@ -182,7 +194,9 @@ def test_generate_logical_model_with_sql_datasets(test_config: dict): # and remove sort once fixed generated_declarative_model.ldm.datasets.sort(key=lambda dataset: dataset.id) expected_ldm.ldm.datasets.sort(key=lambda dataset: dataset.id) - assert expected_ldm.ldm.datasets == generated_declarative_model.ldm.datasets + for i, dataset in enumerate(expected_ldm.ldm.datasets): + print(f"Dataset: {dataset.id}") + assert deep_eq(dataset, generated_declarative_model.ldm.datasets[i]) assert len(expected_ldm.ldm.date_instances) == len(generated_declarative_model.ldm.date_instances) @@ -197,6 +211,7 @@ def test_scan_pdm_and_generate_logical_model_with_sql_datasets(test_config: dict pdm=CatalogPdmLdmRequest( sqls=build_pdm_sql_datasets(), ), + translation_prefix="tr", ) generated_declarative_model, scan_result = sdk.catalog_data_source.scan_pdm_and_generate_logical_model( test_config["data_source"], ldm_request @@ -208,7 +223,9 @@ def test_scan_pdm_and_generate_logical_model_with_sql_datasets(test_config: dict # and remove sort once fixed generated_declarative_model.ldm.datasets.sort(key=lambda dataset: dataset.id) expected_ldm.ldm.datasets.sort(key=lambda dataset: dataset.id) - assert expected_ldm.ldm.datasets == generated_declarative_model.ldm.datasets + for i, dataset in enumerate(expected_ldm.ldm.datasets): + print(f"Dataset {dataset.id}") + assert deep_eq(dataset, generated_declarative_model.ldm.datasets[i]) assert len(expected_ldm.ldm.date_instances) == len(generated_declarative_model.ldm.date_instances) diff --git a/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py b/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py index 394eecd29..8e5410e51 100644 --- a/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py +++ b/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py @@ -158,7 +158,8 @@ def test_get_declarative_workspaces_snake_case(test_config): @gd_vcr.use_cassette(str(_fixtures_dir / "demo_get_declarative_workspaces.yaml")) def test_get_declarative_workspaces(test_config): sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) - path = _current_dir / "expected" / "declarative_workspaces.json" + # We take it from 'refresh' here because in other expected we expect locale, but the default WS doesn't have it + path = _current_dir / "refresh" / "declarative_workspaces.json" workspaces_o = sdk.catalog_workspace.get_declarative_workspaces(exclude=["ACTIVITY_INFO"]) with open(path) as f: diff --git a/packages/gooddata-sdk/tests/catalog/utils.py b/packages/gooddata-sdk/tests/catalog/utils.py index a78620ba1..c97a1b6c5 100644 --- a/packages/gooddata-sdk/tests/catalog/utils.py +++ b/packages/gooddata-sdk/tests/catalog/utils.py @@ -10,5 +10,5 @@ def _refresh_workspaces(sdk: GoodDataSdk) -> None: layout_api = sdk.client.layout_api - with open(_current_dir / "expected" / "declarative_workspaces.json") as f: + with open(_current_dir / "refresh" / "declarative_workspaces.json") as f: layout_api.set_workspaces_layout(DeclarativeWorkspaces.from_dict(json.load(f))) diff --git a/packages/tests-support/src/tests_support/compare_utils.py b/packages/tests-support/src/tests_support/compare_utils.py index 7201c2e6f..4e2b559dc 100644 --- a/packages/tests-support/src/tests_support/compare_utils.py +++ b/packages/tests-support/src/tests_support/compare_utils.py @@ -4,9 +4,9 @@ from deepdiff import DeepDiff -def deep_eq(expected: any, actual: any) -> bool: +def deep_eq(expected: any, actual: any, exclude_regex_paths: list[str] | None = None) -> bool: if expected != actual: - print(DeepDiff(expected, actual)) + print(DeepDiff(expected, actual, exclude_regex_paths=exclude_regex_paths)) return False return True From af7d2750fc07be3de76fa3ceb0f08cd996873e94 Mon Sep 17 00:00:00 2001 From: Adam Fiedler Date: Tue, 10 Feb 2026 17:02:49 +0100 Subject: [PATCH 2/3] fix: last test except new ones risk: low --- .../data_sources_credentials.yaml | 6 + .../demo-bigquery-ds/demo-bigquery-ds.yaml | 11 ++ ...demo-test-ds-databricks-client-secret.yaml | 19 +++ .../demo-test-ds-databricks-token.yaml | 18 +++ .../demo-test-ds/demo-test-ds.yaml | 16 ++ .../demo-test-ds/pdm/campaign_channels.yaml | 27 ++++ .../demo-test-ds/pdm/campaigns.yaml | 13 ++ .../demo-test-ds/pdm/customers.yaml | 22 +++ .../demo-test-ds/pdm/order_lines.yaml | 46 ++++++ .../demo-test-ds/pdm/products.yaml | 16 ++ .../demo-vertica-ds/demo-vertica-ds.yaml | 6 + .../pdm/campaign_channels.yaml | 27 ++++ .../demo-vertica-ds/pdm/campaigns.yaml | 13 ++ .../demo-vertica-ds/pdm/customers.yaml | 22 +++ .../demo-vertica-ds/pdm/order_lines.yaml | 46 ++++++ .../demo-vertica-ds/pdm/products.yaml | 16 ++ .../default/user_groups/user_groups.yaml | 13 ++ .../gooddata_layouts/default/users/users.yaml | 18 +++ .../analytical_dashboards/campaign.yaml | 54 +++++++ .../dashboard_plugin.yaml | 35 +++++ .../product_and_category.yaml | 148 ++++++++++++++++++ .../dashboard_plugins/dashboard_plugin_1.yaml | 7 + .../dashboard_plugins/dashboard_plugin_2.yaml | 7 + .../filter_contexts/campaign_name_filter.yaml | 22 +++ .../filter_contexts/region_filter.yaml | 17 ++ .../metrics/amount_of_active_customers.yaml | 6 + .../metrics/amount_of_orders.yaml | 6 + .../metrics/amount_of_top_customers.yaml | 7 + .../metrics/amount_of_valid_orders.yaml | 8 + .../metrics/campaign_spend.yaml | 6 + .../analytics_model/metrics/order_amount.yaml | 6 + .../metrics/percent_revenue.yaml | 6 + ...percent_revenue_from_top_10_customers.yaml | 7 + ...revenue_from_top_10_percent_customers.yaml | 7 + ..._revenue_from_top_10_percent_products.yaml | 7 + .../percent_revenue_from_top_10_products.yaml | 7 + .../metrics/percent_revenue_in_category.yaml | 7 + .../metrics/percent_revenue_per_product.yaml | 6 + .../metrics/revenue-clothing.yaml | 6 + .../metrics/revenue-electronic.yaml | 6 + .../analytics_model/metrics/revenue-home.yaml | 6 + .../metrics/revenue-outdoor.yaml | 6 + .../demo/analytics_model/metrics/revenue.yaml | 8 + .../metrics/revenue_per_customer.yaml | 6 + .../metrics/revenue_per_dollar_spent.yaml | 6 + .../metrics/revenue_top_10.yaml | 6 + .../metrics/revenue_top_10_percent.yaml | 6 + .../metrics/total_revenue-no_filters.yaml | 6 + .../metrics/total_revenue.yaml | 6 + .../visualization_objects/campaign_spend.yaml | 61 ++++++++ .../customers_trend.yaml | 73 +++++++++ ..._per_product_by_customer_and_category.yaml | 76 +++++++++ .../percentage_of_customers_by_region.yaml | 56 +++++++ .../product_breakdown.yaml | 54 +++++++ .../product_categories_pie_chart.yaml | 50 ++++++ ...venue_comparison-over_previous_period.yaml | 72 +++++++++ .../product_saleability.yaml | 54 +++++++ ..._and_quantity_by_product_and_category.yaml | 96 ++++++++++++ .../revenue_by_category_trend.yaml | 53 +++++++ .../revenue_by_product.yaml | 36 +++++ .../revenue_per_usd_vs_spend_by_campaign.yaml | 53 +++++++ .../visualization_objects/revenue_trend.yaml | 65 ++++++++ .../top_10_customers.yaml | 54 +++++++ .../top_10_products.yaml | 54 +++++++ .../default/workspaces/demo/demo.yaml | 22 +++ .../demo/ldm/datasets/campaign_channels.yaml | 68 ++++++++ .../campaign_channels_per_category.yaml | 36 +++++ .../demo/ldm/datasets/campaigns.yaml | 36 +++++ .../demo/ldm/datasets/customers.yaml | 64 ++++++++ .../demo/ldm/datasets/order_lines.yaml | 109 +++++++++++++ .../demo/ldm/datasets/products.yaml | 44 ++++++ .../demo/ldm/date_instances/date.yaml | 15 ++ .../campaign.yaml | 6 + .../workspaces/demo_west/demo_west.yaml | 9 ++ .../ldm/dataset_extensions/order_lines.yaml | 8 + .../demo_west_california.yaml | 9 ++ .../workspaces_data_filters/wdf__region.yaml | 15 ++ .../workspaces_data_filters/wdf__state.yaml | 15 ++ .../analytical_dashboards/campaign.yaml | 54 +++++++ .../dashboard_plugin.yaml | 35 +++++ .../product_and_category.yaml | 148 ++++++++++++++++++ .../dashboard_plugins/dashboard_plugin_1.yaml | 7 + .../dashboard_plugins/dashboard_plugin_2.yaml | 7 + .../filter_contexts/campaign_name_filter.yaml | 22 +++ .../filter_contexts/region_filter.yaml | 17 ++ .../metrics/amount_of_active_customers.yaml | 6 + .../metrics/amount_of_orders.yaml | 6 + .../metrics/amount_of_top_customers.yaml | 7 + .../metrics/amount_of_valid_orders.yaml | 8 + .../metrics/campaign_spend.yaml | 6 + .../analytics_model/metrics/order_amount.yaml | 6 + .../metrics/percent_revenue.yaml | 6 + ...percent_revenue_from_top_10_customers.yaml | 7 + ...revenue_from_top_10_percent_customers.yaml | 7 + ..._revenue_from_top_10_percent_products.yaml | 7 + .../percent_revenue_from_top_10_products.yaml | 7 + .../metrics/percent_revenue_in_category.yaml | 7 + .../metrics/percent_revenue_per_product.yaml | 6 + .../metrics/revenue-clothing.yaml | 6 + .../metrics/revenue-electronic.yaml | 6 + .../analytics_model/metrics/revenue-home.yaml | 6 + .../metrics/revenue-outdoor.yaml | 6 + .../analytics_model/metrics/revenue.yaml | 8 + .../metrics/revenue_per_customer.yaml | 6 + .../metrics/revenue_per_dollar_spent.yaml | 6 + .../metrics/revenue_top_10.yaml | 6 + .../metrics/revenue_top_10_percent.yaml | 6 + .../metrics/total_revenue-no_filters.yaml | 6 + .../metrics/total_revenue.yaml | 6 + .../visualization_objects/campaign_spend.yaml | 61 ++++++++ .../customers_trend.yaml | 73 +++++++++ ..._per_product_by_customer_and_category.yaml | 76 +++++++++ .../percentage_of_customers_by_region.yaml | 56 +++++++ .../product_breakdown.yaml | 54 +++++++ .../product_categories_pie_chart.yaml | 50 ++++++ ...venue_comparison-over_previous_period.yaml | 72 +++++++++ .../product_saleability.yaml | 54 +++++++ ..._and_quantity_by_product_and_category.yaml | 96 ++++++++++++ .../revenue_by_category_trend.yaml | 53 +++++++ .../revenue_by_product.yaml | 36 +++++ .../revenue_per_usd_vs_spend_by_campaign.yaml | 53 +++++++ .../visualization_objects/revenue_trend.yaml | 65 ++++++++ .../top_10_customers.yaml | 54 +++++++ .../top_10_products.yaml | 54 +++++++ .../workspaces/demo_testing/demo_testing.yaml | 7 + .../ldm/datasets/campaign_channels.yaml | 68 ++++++++ .../campaign_channels_per_category.yaml | 36 +++++ .../demo_testing/ldm/datasets/campaigns.yaml | 36 +++++ .../demo_testing/ldm/datasets/customers.yaml | 60 +++++++ .../ldm/datasets/order_lines.yaml | 109 +++++++++++++ .../demo_testing/ldm/datasets/products.yaml | 44 ++++++ .../demo_testing/ldm/date_instances/date.yaml | 15 ++ .../tests/catalog/test_catalog_workspace.py | 3 +- 133 files changed, 3890 insertions(+), 1 deletion(-) create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/data_source_credentials/data_sources_credentials.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-bigquery-ds/demo-bigquery-ds.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds-databricks-client-secret/demo-test-ds-databricks-client-secret.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds-databricks-token/demo-test-ds-databricks-token.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/demo-test-ds.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/campaign_channels.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/campaigns.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/order_lines.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/products.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/demo-vertica-ds.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/campaign_channels.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/campaigns.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/order_lines.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/products.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/user_groups/user_groups.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/users/users.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/campaign.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/dashboard_plugin.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/product_and_category.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/dashboard_plugins/dashboard_plugin_1.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/dashboard_plugins/dashboard_plugin_2.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/filter_contexts/campaign_name_filter.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/filter_contexts/region_filter.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_active_customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_orders.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_top_customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_valid_orders.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/campaign_spend.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/order_amount.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_percent_customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_percent_products.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_products.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_in_category.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_per_product.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-clothing.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-electronic.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-home.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-outdoor.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_per_customer.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_per_dollar_spent.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_top_10.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_top_10_percent.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/total_revenue-no_filters.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/total_revenue.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/campaign_spend.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/customers_trend.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/percent_revenue_per_product_by_customer_and_category.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/percentage_of_customers_by_region.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_breakdown.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_categories_pie_chart.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_revenue_comparison-over_previous_period.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_saleability.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_and_quantity_by_product_and_category.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_by_category_trend.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_by_product.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_per_usd_vs_spend_by_campaign.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_trend.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/top_10_customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/top_10_products.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/demo.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaign_channels.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaign_channels_per_category.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaigns.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/order_lines.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/products.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/date_instances/date.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/analytics_model/analytical_dashboard_extensions/campaign.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/demo_west.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/ldm/dataset_extensions/order_lines.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west_california/demo_west_california.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces_data_filters/wdf__region.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces_data_filters/wdf__state.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/campaign.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/dashboard_plugin.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/product_and_category.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/dashboard_plugins/dashboard_plugin_1.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/dashboard_plugins/dashboard_plugin_2.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/filter_contexts/campaign_name_filter.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/filter_contexts/region_filter.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_active_customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_orders.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_top_customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_valid_orders.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/campaign_spend.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/order_amount.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_percent_customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_percent_products.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_products.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_in_category.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_per_product.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-clothing.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-electronic.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-home.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-outdoor.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_per_customer.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_per_dollar_spent.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_top_10.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_top_10_percent.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/total_revenue-no_filters.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/total_revenue.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/campaign_spend.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/customers_trend.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/percent_revenue_per_product_by_customer_and_category.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/percentage_of_customers_by_region.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_breakdown.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_categories_pie_chart.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_revenue_comparison-over_previous_period.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_saleability.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_and_quantity_by_product_and_category.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_by_category_trend.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_by_product.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_per_usd_vs_spend_by_campaign.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_trend.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/top_10_customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/top_10_products.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/demo_testing.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaign_channels.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaign_channels_per_category.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaigns.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/customers.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/order_lines.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/products.yaml create mode 100644 packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/date_instances/date.yaml diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/data_source_credentials/data_sources_credentials.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/data_source_credentials/data_sources_credentials.yaml new file mode 100644 index 000000000..1224f1d63 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/data_source_credentials/data_sources_credentials.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +data_sources: + demo-test-ds: "passw0rd" + demo-bigquery-ds: "~/home/secrets.json" + demo-test-ds-databricks-client-secret: "databricks-client-secret" + demo-test-ds-databricks-token: "databricks-token" diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-bigquery-ds/demo-bigquery-ds.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-bigquery-ds/demo-bigquery-ds.yaml new file mode 100644 index 000000000..53a422f95 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-bigquery-ds/demo-bigquery-ds.yaml @@ -0,0 +1,11 @@ +# (C) 2022 GoodData Corporation +id: demo-bigquery-ds +name: demo-bigquery-ds +schema: demo +type: BIGQUERY +parameters: + - name: "projectId" + value: "projectId-value-override" +decodedParameters: + - name: "clientEmail" + value: "fake email" diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds-databricks-client-secret/demo-test-ds-databricks-client-secret.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds-databricks-client-secret/demo-test-ds-databricks-client-secret.yaml new file mode 100644 index 000000000..3d86bb6fe --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds-databricks-client-secret/demo-test-ds-databricks-client-secret.yaml @@ -0,0 +1,19 @@ +# (C) 2024 GoodData Corporation +id: demo-test-ds-databricks-client-secret +name: demo-test-ds-databricks-client-secret +permissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: USE +schema: demo +type: DATABRICKS +url: jdbc:databricks://dbc-1234-abc.cloud.databricks.com:443;httpPath=/sql/1.0/warehouses/9876fdsa; +clientId: client-id +parameters: + - name: catalog + value: "demo" diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds-databricks-token/demo-test-ds-databricks-token.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds-databricks-token/demo-test-ds-databricks-token.yaml new file mode 100644 index 000000000..43482f094 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds-databricks-token/demo-test-ds-databricks-token.yaml @@ -0,0 +1,18 @@ +# (C) 2024 GoodData Corporation +id: demo-test-ds-databricks-token +name: demo-test-ds-databricks-token +permissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: USE +schema: demo +type: DATABRICKS +url: jdbc:databricks://dbc-1234-abc.cloud.databricks.com:443;httpPath=/sql/1.0/warehouses/9876fdsa; +parameters: + - name: catalog + value: "demo" diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/demo-test-ds.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/demo-test-ds.yaml new file mode 100644 index 000000000..7dd497e7f --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/demo-test-ds.yaml @@ -0,0 +1,16 @@ +# (C) 2022 GoodData Corporation +id: demo-test-ds +name: demo-test-ds +permissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: USE +schema: demo +type: POSTGRESQL +url: jdbc:postgresql://postgres:5432/tiger?sslmode=prefer +username: postgres diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/campaign_channels.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/campaign_channels.yaml new file mode 100644 index 000000000..3e609d6fc --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/campaign_channels.yaml @@ -0,0 +1,27 @@ +# (C) 2022 GoodData Corporation +columns: + - dataType: NUMERIC + isPrimaryKey: false + name: budget + - dataType: STRING + isPrimaryKey: true + name: campaign_channel_id + - dataType: INT + isPrimaryKey: false + name: campaign_id + referencedTableColumn: campaign_id + referencedTableId: campaigns + - dataType: STRING + isPrimaryKey: false + name: category + - dataType: NUMERIC + isPrimaryKey: false + name: spend + - dataType: STRING + isPrimaryKey: false + name: type +id: campaign_channels +path: + - demo + - campaign_channels +type: TABLE diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/campaigns.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/campaigns.yaml new file mode 100644 index 000000000..e41b7acb0 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/campaigns.yaml @@ -0,0 +1,13 @@ +# (C) 2022 GoodData Corporation +columns: + - dataType: INT + isPrimaryKey: true + name: campaign_id + - dataType: STRING + isPrimaryKey: false + name: campaign_name +id: campaigns +path: + - demo + - campaigns +type: TABLE diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/customers.yaml new file mode 100644 index 000000000..44ace2cb1 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/customers.yaml @@ -0,0 +1,22 @@ +# (C) 2022 GoodData Corporation +columns: + - dataType: INT + isPrimaryKey: true + name: customer_id + - dataType: STRING + isPrimaryKey: false + name: customer_name + - dataType: STRING + isPrimaryKey: false + name: geo__state__location + - dataType: STRING + isPrimaryKey: false + name: region + - dataType: STRING + isPrimaryKey: false + name: state +id: customers +path: + - demo + - customers +type: TABLE diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/order_lines.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/order_lines.yaml new file mode 100644 index 000000000..4d6309757 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/order_lines.yaml @@ -0,0 +1,46 @@ +# (C) 2022 GoodData Corporation +columns: + - dataType: INT + isPrimaryKey: false + name: campaign_id + referencedTableColumn: campaign_id + referencedTableId: campaigns + - dataType: INT + isPrimaryKey: false + name: customer_id + referencedTableColumn: customer_id + referencedTableId: customers + - dataType: DATE + isPrimaryKey: false + name: date + - dataType: STRING + isPrimaryKey: false + name: order_id + - dataType: STRING + isPrimaryKey: true + name: order_line_id + - dataType: STRING + isPrimaryKey: false + name: order_status + - dataType: NUMERIC + isPrimaryKey: false + name: price + - dataType: INT + isPrimaryKey: false + name: product_id + referencedTableColumn: product_id + referencedTableId: products + - dataType: NUMERIC + isPrimaryKey: false + name: quantity + - dataType: STRING + isPrimaryKey: false + name: wdf__region + - dataType: STRING + isPrimaryKey: false + name: wdf__state +id: order_lines +path: + - demo + - order_lines +type: TABLE diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/products.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/products.yaml new file mode 100644 index 000000000..dbbb66b62 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-test-ds/pdm/products.yaml @@ -0,0 +1,16 @@ +# (C) 2022 GoodData Corporation +columns: + - dataType: STRING + isPrimaryKey: false + name: category + - dataType: INT + isPrimaryKey: true + name: product_id + - dataType: STRING + isPrimaryKey: false + name: product_name +id: products +path: + - demo + - products +type: TABLE diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/demo-vertica-ds.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/demo-vertica-ds.yaml new file mode 100644 index 000000000..d584449cf --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/demo-vertica-ds.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +id: demo-vertica-ds +name: demo-vertica-ds +schema: demo +type: VERTICA +url: jdbc:vertica://localhost:5434/demo diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/campaign_channels.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/campaign_channels.yaml new file mode 100644 index 000000000..d295f0250 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/campaign_channels.yaml @@ -0,0 +1,27 @@ +# (C) 2022 GoodData Corporation +columns: +- dataType: NUMERIC + isPrimaryKey: false + name: budget +- dataType: STRING + isPrimaryKey: true + name: campaign_channel_id +- dataType: INT + isPrimaryKey: false + name: campaign_id + referencedTableColumn: campaign_id + referencedTableId: campaigns +- dataType: STRING + isPrimaryKey: false + name: category +- dataType: NUMERIC + isPrimaryKey: false + name: spend +- dataType: STRING + isPrimaryKey: false + name: type +id: campaign_channels +path: +- demo +- campaign_channels +type: TABLE diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/campaigns.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/campaigns.yaml new file mode 100644 index 000000000..9edfbdb8a --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/campaigns.yaml @@ -0,0 +1,13 @@ +# (C) 2022 GoodData Corporation +columns: +- dataType: INT + isPrimaryKey: true + name: campaign_id +- dataType: STRING + isPrimaryKey: false + name: campaign_name +id: campaigns +path: +- demo +- campaigns +type: TABLE diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/customers.yaml new file mode 100644 index 000000000..a23e2dafb --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/customers.yaml @@ -0,0 +1,22 @@ +# (C) 2022 GoodData Corporation +columns: +- dataType: INT + isPrimaryKey: true + name: customer_id +- dataType: STRING + isPrimaryKey: false + name: customer_name +- dataType: STRING + isPrimaryKey: false + name: geo__state__location +- dataType: STRING + isPrimaryKey: false + name: region +- dataType: STRING + isPrimaryKey: false + name: state +id: customers +path: +- demo +- customers +type: TABLE diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/order_lines.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/order_lines.yaml new file mode 100644 index 000000000..99ac21f35 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/order_lines.yaml @@ -0,0 +1,46 @@ +# (C) 2022 GoodData Corporation +columns: +- dataType: INT + isPrimaryKey: false + name: campaign_id + referencedTableColumn: campaign_id + referencedTableId: campaigns +- dataType: INT + isPrimaryKey: false + name: customer_id + referencedTableColumn: customer_id + referencedTableId: customers +- dataType: DATE + isPrimaryKey: false + name: date +- dataType: STRING + isPrimaryKey: false + name: order_id +- dataType: STRING + isPrimaryKey: true + name: order_line_id +- dataType: STRING + isPrimaryKey: false + name: order_status +- dataType: NUMERIC + isPrimaryKey: false + name: price +- dataType: INT + isPrimaryKey: false + name: product_id + referencedTableColumn: product_id + referencedTableId: products +- dataType: NUMERIC + isPrimaryKey: false + name: quantity +- dataType: STRING + isPrimaryKey: false + name: wdf__region +- dataType: STRING + isPrimaryKey: false + name: wdf__state +id: order_lines +path: +- demo +- order_lines +type: TABLE diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/products.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/products.yaml new file mode 100644 index 000000000..c8ec28fd7 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/data_sources/demo-vertica-ds/pdm/products.yaml @@ -0,0 +1,16 @@ +# (C) 2022 GoodData Corporation +columns: +- dataType: STRING + isPrimaryKey: false + name: category +- dataType: INT + isPrimaryKey: true + name: product_id +- dataType: STRING + isPrimaryKey: false + name: product_name +id: products +path: +- demo +- products +type: TABLE diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/user_groups/user_groups.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/user_groups/user_groups.yaml new file mode 100644 index 000000000..2a10f523f --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/user_groups/user_groups.yaml @@ -0,0 +1,13 @@ +# (C) 2022 GoodData Corporation +- id: adminGroup +- id: demoGroup + name: demo group +- id: adminQA1Group + parents: + - id: adminGroup + type: userGroup +- id: visitorsGroup + name: visitors + parents: + - id: demoGroup + type: userGroup diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/users/users.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/users/users.yaml new file mode 100644 index 000000000..72d8e933b --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/users/users.yaml @@ -0,0 +1,18 @@ +# (C) 2022 GoodData Corporation +- id: admin + settings: [] + userGroups: + - id: adminGroup + type: userGroup +- authId: CiRkZWE3MTU5Yi1kNTMwLTQ4NGYtYjgxNy0yNGEwYjBhYWRkNzYSBWxvY2Fs + id: demo + settings: [] + userGroups: + - id: adminGroup + type: userGroup +- authId: CiRmYmNhNDkwOS04YzYxLTRmMTYtODI3NC1iNzI0Njk1Y2FmNTESBWxvY2Fs + id: demo2 + settings: [] + userGroups: + - id: demoGroup + type: userGroup diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/campaign.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/campaign.yaml new file mode 100644 index 000000000..b469aaec1 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/campaign.yaml @@ -0,0 +1,54 @@ +# (C) 2025 GoodData Corporation +content: + filterContextRef: + identifier: + id: campaign_name_filter + type: filterContext + layout: + sections: + - header: + description: The first insight shows a breakdown of spend by category and + campaign. The second shows revenue per $ spend, for each campaign, to + demonstrate, how campaigns are successful. + title: Spend breakdown and Revenue + items: + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: campaign_spend + type: visualizationObject + properties: {} + title: Campaign Spend + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: revenue_per_usd_vs_spend_by_campaign + type: visualizationObject + properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout + version: '2' +description: '' +id: campaign +permissions: + - assigneeRule: + type: allWorkspaceUsers + name: VIEW +title: Campaign diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/dashboard_plugin.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/dashboard_plugin.yaml new file mode 100644 index 000000000..ebe374b58 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/dashboard_plugin.yaml @@ -0,0 +1,35 @@ +# (C) 2025 GoodData Corporation +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 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/product_and_category.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/product_and_category.yaml new file mode 100644 index 000000000..81d890fd9 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/analytical_dashboards/product_and_category.yaml @@ -0,0 +1,148 @@ +# (C) 2025 GoodData Corporation +content: + filterContextRef: + identifier: + id: region_filter + type: filterContext + layout: + sections: + - items: + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: top_10_products + type: visualizationObject + properties: {} + title: Top 10 Products + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: revenue_trend + type: visualizationObject + properties: {} + title: Revenue Trend + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: customers_trend + type: visualizationObject + properties: {} + title: Customers Trend + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: product_categories_pie_chart + type: visualizationObject + properties: {} + title: Product Categories Pie Chart + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: product_breakdown + type: visualizationObject + properties: {} + title: Product Breakdown + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: product_saleability + type: visualizationObject + properties: {} + title: Product Saleability + type: insight + - size: + xl: + gridWidth: 12 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: percent_revenue_per_product_by_customer_and_category + type: visualizationObject + properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout + version: '2' +description: '' +id: product_and_category +title: Product & Category diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/dashboard_plugins/dashboard_plugin_1.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/dashboard_plugins/dashboard_plugin_1.yaml new file mode 100644 index 000000000..8b07f1130 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/dashboard_plugins/dashboard_plugin_1.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +content: + url: https://www.example.com + version: '2' +description: Testing record dashboard_plugin_1 +id: dashboard_plugin_1 +title: dashboard_plugin_1 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/dashboard_plugins/dashboard_plugin_2.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/dashboard_plugins/dashboard_plugin_2.yaml new file mode 100644 index 000000000..144c58ba6 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/dashboard_plugins/dashboard_plugin_2.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +content: + url: https://www.example.com + version: '2' +description: Testing record dashboard_plugin_2 +id: dashboard_plugin_2 +title: dashboard_plugin_2 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/filter_contexts/campaign_name_filter.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/filter_contexts/campaign_name_filter.yaml new file mode 100644 index 000000000..181084c8d --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/filter_contexts/campaign_name_filter.yaml @@ -0,0 +1,22 @@ +# (C) 2022 GoodData Corporation +content: + filters: + - dateFilter: + from: '0' + granularity: GDC.time.month + to: '0' + type: relative + - attributeFilter: + attributeElements: + uris: [] + displayForm: + identifier: + id: campaign_name + type: label + filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true + version: '2' +description: '' +id: campaign_name_filter +title: filterContext diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/filter_contexts/region_filter.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/filter_contexts/region_filter.yaml new file mode 100644 index 000000000..0f52e0e6c --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/filter_contexts/region_filter.yaml @@ -0,0 +1,17 @@ +# (C) 2022 GoodData Corporation +content: + filters: + - attributeFilter: + attributeElements: + uris: [] + displayForm: + identifier: + id: region + type: label + filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true + version: '2' +description: '' +id: region_filter +title: filterContext diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_active_customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_active_customers.yaml new file mode 100644 index 000000000..00dee088c --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_active_customers.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0' + maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) +id: amount_of_active_customers +title: '# of Active Customers' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_orders.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_orders.yaml new file mode 100644 index 000000000..44728cdd6 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_orders.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0' + maql: SELECT COUNT({attribute/order_id}) +id: amount_of_orders +title: '# of Orders' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_top_customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_top_customers.yaml new file mode 100644 index 000000000..cbc241929 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_top_customers.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0' + maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} + BY {attribute/customer_id}) > 10000 ' +id: amount_of_top_customers +title: '# of Top Customers' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_valid_orders.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_valid_orders.yaml new file mode 100644 index 000000000..85cd4b401 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/amount_of_valid_orders.yaml @@ -0,0 +1,8 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0.00' + maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", + "Canceled")) +description: '' +id: amount_of_valid_orders +title: '# of Valid Orders' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/campaign_spend.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/campaign_spend.yaml new file mode 100644 index 000000000..51f3a69d7 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/campaign_spend.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT SUM({fact/spend}) +id: campaign_spend +title: Campaign Spend diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/order_amount.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/order_amount.yaml new file mode 100644 index 000000000..b2e94475b --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/order_amount.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT SUM({fact/price}*{fact/quantity}) +id: order_amount +title: Order Amount diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue.yaml new file mode 100644 index 000000000..9622e37de --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / {metric/total_revenue} +id: percent_revenue +title: '% Revenue' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_customers.yaml new file mode 100644 index 000000000..314490f19 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_customers.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +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_customers +title: '% Revenue from Top 10 Customers' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_percent_customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_percent_customers.yaml new file mode 100644 index 000000000..873625bcd --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_percent_customers.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +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_customers +title: '% Revenue from Top 10% Customers' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_percent_products.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_percent_products.yaml new file mode 100644 index 000000000..73c0f8ca6 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_percent_products.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +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_percent_products +title: '% Revenue from Top 10% Products' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_products.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_products.yaml new file mode 100644 index 000000000..121b620d1 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_from_top_10_products.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +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_from_top_10_products +title: '% Revenue from Top 10 Products' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_in_category.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_in_category.yaml new file mode 100644 index 000000000..89cf193f7 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_in_category.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, + ALL OTHER) +id: percent_revenue_in_category +title: '% Revenue in Category' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_per_product.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_per_product.yaml new file mode 100644 index 000000000..9a6adb926 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/percent_revenue_per_product.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) +id: percent_revenue_per_product +title: '% Revenue per Product' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-clothing.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-clothing.yaml new file mode 100644 index 000000000..8c47ed9c7 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-clothing.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") +id: revenue-clothing +title: Revenue (Clothing) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-electronic.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-electronic.yaml new file mode 100644 index 000000000..9b8c4aff2 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-electronic.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") +id: revenue-electronic +title: Revenue (Electronic) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-home.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-home.yaml new file mode 100644 index 000000000..5b0194c00 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-home.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") +id: revenue-home +title: Revenue (Home) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-outdoor.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-outdoor.yaml new file mode 100644 index 000000000..dd70790dc --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue-outdoor.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") +id: revenue-outdoor +title: Revenue (Outdoor) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue.yaml new file mode 100644 index 000000000..02bf52514 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue.yaml @@ -0,0 +1,8 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", + "Canceled")) +description: '' +id: revenue +title: Revenue diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_per_customer.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_per_customer.yaml new file mode 100644 index 000000000..76449bd10 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_per_customer.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0.0 + maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) +id: revenue_per_customer +title: Revenue per Customer diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_per_dollar_spent.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_per_dollar_spent.yaml new file mode 100644 index 000000000..da0f499c6 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_per_dollar_spent.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0.0 + maql: SELECT {metric/revenue} / {metric/campaign_spend} +id: revenue_per_dollar_spent +title: Revenue per Dollar Spent diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_top_10.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_top_10.yaml new file mode 100644 index 000000000..5b2972707 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_top_10.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) +id: revenue_top_10 +title: Revenue / Top 10 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_top_10_percent.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_top_10_percent.yaml new file mode 100644 index 000000000..467283c90 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/revenue_top_10_percent.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) +id: revenue_top_10_percent +title: Revenue / Top 10% diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/total_revenue-no_filters.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/total_revenue-no_filters.yaml new file mode 100644 index 000000000..158e1495f --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/total_revenue-no_filters.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER +id: total_revenue-no_filters +title: Total Revenue (No Filters) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/total_revenue.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/total_revenue.yaml new file mode 100644 index 000000000..e1690466b --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/metrics/total_revenue.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} BY ALL OTHER +id: total_revenue +title: Total Revenue diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/campaign_spend.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/campaign_spend.yaml new file mode 100644 index 000000000..a60ecb270 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/campaign_spend.yaml @@ -0,0 +1,61 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: campaign_spend + type: metric + localIdentifier: d319bcb2d8c04442a684e3b3cd063381 + title: Campaign Spend + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: campaign_channels.category + type: label + localIdentifier: 291c085e7df8420db84117ca49f59c49 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: campaign_name + type: label + localIdentifier: d9dd143d647d4d148405a60ec2cf59bc + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: type + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_channels.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_name + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:treemap +id: campaign_spend +title: Campaign Spend diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/customers_trend.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/customers_trend.yaml new file mode 100644 index 000000000..0630281c4 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/customers_trend.yaml @@ -0,0 +1,73 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + alias: Active Customers + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: amount_of_active_customers + type: metric + localIdentifier: 2ba0b87b59ca41a4b1530e81a5c1d081 + title: '# of Active Customers' + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_per_customer + type: metric + localIdentifier: ec0606894b9f4897b7beaf1550608928 + title: Revenue per Customer + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 0de7d7f08af7480aa636857a26be72b6 + localIdentifier: view + filters: + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -11 + granularity: GDC.time.month + to: 0 + properties: + controls: + colorMapping: + - color: + type: guid + value: '20' + id: 2ba0b87b59ca41a4b1530e81a5c1d081 + - color: + type: guid + value: '4' + id: ec0606894b9f4897b7beaf1550608928 + dualAxis: true + legend: + position: bottom + primaryChartType: column + secondaryChartType: line + secondary_yaxis: + measures: + - ec0606894b9f4897b7beaf1550608928 + xaxis: + name: + visible: false + rotation: auto + version: '2' + visualizationUrl: local:combo2 +id: customers_trend +title: Customers Trend diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/percent_revenue_per_product_by_customer_and_category.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/percent_revenue_per_product_by_customer_and_category.yaml new file mode 100644 index 000000000..369e9674a --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/percent_revenue_per_product_by_customer_and_category.yaml @@ -0,0 +1,76 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: percent_revenue_per_product + type: metric + localIdentifier: 08d8346c1ce7438994b251991c0fbf65 + title: '% Revenue per Product' + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: b2350c06688b4da9b3833ebcce65527f + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: customer_name + type: label + localIdentifier: 7a4045fd00ac44579f52406df679435f + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 6a003ffd14994237ba64c4a02c488429 + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 75ea396d0c8b48098e31dccf8b5801d3 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: {} + sorts: + - attributeSortItem: + attributeIdentifier: 7a4045fd00ac44579f52406df679435f + direction: asc + version: '2' + visualizationUrl: local:table +id: percent_revenue_per_product_by_customer_and_category +title: '% Revenue per Product by Customer and Category' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/percentage_of_customers_by_region.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/percentage_of_customers_by_region.yaml new file mode 100644 index 000000000..1f266d114 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/percentage_of_customers_by_region.yaml @@ -0,0 +1,56 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: amount_of_active_customers + type: metric + localIdentifier: 1a14cdc1293c46e89a2e25d3e741d235 + title: '# of Active Customers' + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: c1feca1864244ec2ace7a9b9d7fda231 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: region + type: label + localIdentifier: 530cddbd7ca04d039e73462d81ed44d5 + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: region + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -11 + granularity: GDC.time.month + to: 0 + properties: + controls: + legend: + position: bottom + stackMeasuresToPercent: true + version: '2' + visualizationUrl: local:area +id: percentage_of_customers_by_region +title: Percentage of Customers by Region diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_breakdown.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_breakdown.yaml new file mode 100644 index 000000000..08c9ec345 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_breakdown.yaml @@ -0,0 +1,54 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 590d332ef686468b8878ae41b23341c6 + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: b166c71091864312a14c7ae8ff886ffe + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: e920a50e0bbb49788df0aac53634c1cd + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:treemap +id: product_breakdown +title: Product Breakdown diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_categories_pie_chart.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_categories_pie_chart.yaml new file mode 100644 index 000000000..d1e7d73c5 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_categories_pie_chart.yaml @@ -0,0 +1,50 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + computeRatio: true + filters: [] + item: + identifier: + id: revenue + type: metric + format: '#,##0.00%' + localIdentifier: 162b857af49d45769bc12604a5c192b9 + title: '% Revenue' + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: fe513cef1c6244a5ac21c5f49c56b108 + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + dataLabels: + visible: auto + legend: + position: bottom + version: '2' + visualizationUrl: local:donut +id: product_categories_pie_chart +title: Product Categories Pie Chart diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_revenue_comparison-over_previous_period.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_revenue_comparison-over_previous_period.yaml new file mode 100644 index 000000000..591f2eb3d --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_revenue_comparison-over_previous_period.yaml @@ -0,0 +1,72 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + alias: Previous Period + definition: + popMeasureDefinition: + measureIdentifier: c82e025fa2db4afea9a600a424591dbe + popAttribute: + identifier: + id: date.year + type: attribute + localIdentifier: c82e025fa2db4afea9a600a424591dbe_pop + - measure: + alias: This Period + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: c82e025fa2db4afea9a600a424591dbe + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: c804ef5ba7944a5a9f360c86a9e95e9a + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -11 + granularity: GDC.time.month + to: 0 + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + stackMeasures: false + xaxis: + name: + visible: false + yaxis: + name: + visible: false + version: '2' + visualizationUrl: local:column +id: product_revenue_comparison-over_previous_period +title: Product Revenue Comparison (over previous period) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_saleability.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_saleability.yaml new file mode 100644 index 000000000..d759bf506 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/product_saleability.yaml @@ -0,0 +1,54 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + alias: Number of Orders + definition: + measureDefinition: + filters: [] + item: + identifier: + id: amount_of_orders + type: metric + localIdentifier: aeb5d51a162d4b59aba3bd6ddebcc780 + title: '# of Orders' + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 94b3edd3a73c4a48a4d13bbe9442cc98 + title: Revenue + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: d2a991bdd123448eb2be73d79f1180c4 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: + controls: + dataLabels: + visible: auto + grid: + enabled: true + version: '2' + visualizationUrl: local:scatter +id: product_saleability +title: Product Saleability diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_and_quantity_by_product_and_category.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_and_quantity_by_product_and_category.yaml new file mode 100644 index 000000000..f0cc61f00 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_and_quantity_by_product_and_category.yaml @@ -0,0 +1,96 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + alias: Items Sold + definition: + measureDefinition: + aggregation: sum + filters: [] + item: + identifier: + id: quantity + type: fact + format: '#,##0.00' + localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 + title: Sum of Quantity + - measure: + definition: + measureDefinition: + aggregation: avg + filters: [] + item: + identifier: + id: price + type: fact + format: '#,##0.00' + localIdentifier: aa6391acccf1452f8011201aef9af492 + title: Avg Price + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: percent_revenue_in_category + type: metric + localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 + title: '% Revenue in Category' + - measure: + alias: Total Revenue + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 06bc6b3b9949466494e4f594c11f1bff + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: {} + sorts: + - attributeSortItem: + attributeIdentifier: 06bc6b3b9949466494e4f594c11f1bff + direction: asc + version: '2' + visualizationUrl: local:table +id: revenue_and_quantity_by_product_and_category +title: Revenue and Quantity by Product and Category diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_by_category_trend.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_by_category_trend.yaml new file mode 100644 index 000000000..90b0316c4 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_by_category_trend.yaml @@ -0,0 +1,53 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 7df6c34387744d69b23ec92e1a5cf543 + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 4bb4fc1986c546de9ad976e6ec23fed4 + localIdentifier: trend + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 34bddcb1cd024902a82396216b0fa9d8 + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + granularity: GDC.time.year + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:line +id: revenue_by_category_trend +title: Revenue by Category Trend diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_by_product.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_by_product.yaml new file mode 100644 index 000000000..e51c4fa75 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_by_product.yaml @@ -0,0 +1,36 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 4ae3401bdbba4938afe983df4ba04e1c + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 1c8ba72dbfc84ddd913bf81dc355c427 + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: {} + version: '2' + visualizationUrl: local:bar +id: revenue_by_product +title: Revenue by Product diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_per_usd_vs_spend_by_campaign.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_per_usd_vs_spend_by_campaign.yaml new file mode 100644 index 000000000..cfc9e47f4 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_per_usd_vs_spend_by_campaign.yaml @@ -0,0 +1,53 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: campaign_spend + type: metric + localIdentifier: 13a50d811e474ac6808d8da7f4673b35 + title: Campaign Spend + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_per_dollar_spent + type: metric + localIdentifier: a0f15e82e6334280a44dbedc7d086e7c + title: Revenue per Dollar Spent + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: campaign_name + type: label + localIdentifier: 1d9fa968bafb423eb29c938dfb1207ff + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_name + type: label + notIn: + values: [] + properties: + controls: + xaxis: + min: '0' + yaxis: + min: '0' + version: '2' + visualizationUrl: local:scatter +id: revenue_per_usd_vs_spend_by_campaign +title: Revenue per $ vs Spend by Campaign diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_trend.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_trend.yaml new file mode 100644 index 000000000..a6c113ac1 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/revenue_trend.yaml @@ -0,0 +1,65 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 60c854969a9c4c278ab596d99c222e92 + title: Revenue + localIdentifier: measures + - items: + - measure: + alias: Number of Orders + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: amount_of_orders + type: metric + localIdentifier: c2fa7ef48cc54af99f8c280eb451e051 + title: '# of Orders' + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 413ac374b65648fa96826ca01d47bdda + localIdentifier: view + filters: + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -3 + granularity: GDC.time.quarter + to: 0 + properties: + controls: + dualAxis: true + legend: + position: bottom + primaryChartType: column + secondaryChartType: line + secondary_yaxis: + measures: + - c2fa7ef48cc54af99f8c280eb451e051 + xaxis: + name: + visible: false + rotation: auto + version: '2' + visualizationUrl: local:combo2 +id: revenue_trend +title: Revenue Trend diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/top_10_customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/top_10_customers.yaml new file mode 100644 index 000000000..67a40f29b --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/top_10_customers.yaml @@ -0,0 +1,54 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_top_10 + type: metric + localIdentifier: 3f127ccfe57a40399e23f9ae2a4ad810 + title: Revenue / Top 10 + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: customer_name + type: label + localIdentifier: f4e39e24f11e4827a191c30d65c89d2c + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: state + type: label + localIdentifier: bbccd430176d428caed54c99afc9589e + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: state + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:bar +id: top_10_customers +title: Top 10 Customers diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/top_10_products.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/top_10_products.yaml new file mode 100644 index 000000000..2c9b84538 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/analytics_model/visualization_objects/top_10_products.yaml @@ -0,0 +1,54 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + 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 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/demo.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/demo.yaml new file mode 100644 index 000000000..ae962d04c --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/demo.yaml @@ -0,0 +1,22 @@ +# (C) 2022 GoodData Corporation +hierarchyPermissions: + - assignee: + id: demo2 + type: user + name: MANAGE + - assignee: + id: demoGroup + type: userGroup + name: ANALYZE +id: demo +name: Demo +permissions: + - assignee: + id: demo2 + type: user + name: ANALYZE + - assignee: + id: demoGroup + type: userGroup + name: VIEW +settings: [] diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaign_channels.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaign_channels.yaml new file mode 100644 index 000000000..3f1b3a936 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaign_channels.yaml @@ -0,0 +1,68 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: [] +attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type +dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + path: + - demo + - campaign_channels + type: dataSource +description: Campaign channels +facts: + - description: Budget + id: budget + sourceColumn: budget + sourceColumnDataType: NUMERIC + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + sourceColumnDataType: NUMERIC + tags: + - Campaign channels + title: Spend +grain: + - id: campaign_channel_id + type: attribute +id: campaign_channels +references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sources: + - column: campaign_id + dataType: INT + target: + id: campaign_id + type: attribute +tags: + - Campaign channels +title: Campaign channels diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaign_channels_per_category.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaign_channels_per_category.yaml new file mode 100644 index 000000000..b25714c19 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaign_channels_per_category.yaml @@ -0,0 +1,36 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: + - description: Budget Agg + id: budget_agg + sourceColumn: budget + sourceColumnDataType: INT + sourceFactReference: + operation: SUM + reference: + id: budget + type: fact + tags: + - Campaign channels per category +attributes: [] +description: Campaign channels per categories +facts: [] +grain: [] +id: campaign_channels_per_category +precedence: 1 +references: + - identifier: + id: campaign_channels + type: dataset + multivalue: false + sources: + - column: campaign_channel_id + dataType: STRING + target: + id: campaign_channel_id + type: attribute +sql: + dataSourceId: demo-test-ds + statement: SELECT category, SUM(budget) FROM campaign_channels GROUP BY category +tags: + - Campaign channels per category +title: Campaign channels per category diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaigns.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaigns.yaml new file mode 100644 index 000000000..6146ae4fb --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/campaigns.yaml @@ -0,0 +1,36 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: [] +attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name +dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + path: + - demo + - campaigns + type: dataSource +description: Campaigns +facts: [] +grain: + - id: campaign_id + type: attribute +id: campaigns +references: [] +tags: + - Campaigns +title: Campaigns diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/customers.yaml new file mode 100644 index 000000000..a587920a6 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/customers.yaml @@ -0,0 +1,64 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: [] +attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + sourceColumnDataType: INT + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + sourceColumnDataType: STRING + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + sourceColumnDataType: STRING + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + sourceColumnDataType: STRING + locale: en-US + translations: + - locale: cs-CZ + sourceColumn: geo__state__location_cz + tags: + - Customers + title: Location + valueType: GEO + sourceColumn: state + sourceColumnDataType: STRING + tags: + - Customers + title: State +dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + path: + - demo + - customers + type: dataSource +description: Customers +facts: [] +grain: + - id: customer_id + type: attribute +id: customers +references: [] +tags: + - Customers +title: Customers diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/order_lines.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/order_lines.yaml new file mode 100644 index 000000000..3b039c5b4 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/order_lines.yaml @@ -0,0 +1,109 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: [] +attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + sourceColumnDataType: STRING + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + sourceColumnDataType: STRING + tags: + - Order lines + title: Order status +dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + path: + - demo + - order_lines + type: dataSource +description: Order lines +facts: + - description: Price + id: price + sourceColumn: price + sourceColumnDataType: NUMERIC + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + sourceColumnDataType: NUMERIC + tags: + - Order lines + title: Quantity +grain: + - id: order_line_id + type: attribute +id: order_lines +references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sources: + - column: campaign_id + dataType: INT + target: + id: campaign_id + type: attribute + - identifier: + id: customers + type: dataset + multivalue: false + sources: + - column: customer_id + dataType: INT + target: + id: customer_id + type: attribute + - identifier: + id: date + type: dataset + multivalue: false + sources: + - column: date + dataType: DATE + target: + id: date + type: date + - identifier: + id: products + type: dataset + multivalue: false + sources: + - column: product_id + dataType: INT + target: + id: product_id + type: attribute +tags: + - Order lines +title: Order lines +workspaceDataFilterColumns: + - dataType: STRING + name: wdf__region + - dataType: STRING + name: wdf__state +workspaceDataFilterReferences: + - filterColumn: wdf__region + filterColumnDataType: STRING + filterId: + id: wdf__region + type: workspaceDataFilter diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/products.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/products.yaml new file mode 100644 index 000000000..906618d68 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/datasets/products.yaml @@ -0,0 +1,44 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: [] +attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + sourceColumnDataType: INT + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + sourceColumnDataType: STRING + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + sourceColumnDataType: STRING + tags: + - Products + title: Category +dataSourceTableId: + dataSourceId: demo-test-ds + id: products + path: + - demo + - products + type: dataSource +description: Products +facts: [] +grain: + - id: product_id + type: attribute +id: products +references: [] +tags: + - Products +title: Products diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/date_instances/date.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/date_instances/date.yaml new file mode 100644 index 000000000..7167131aa --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo/ldm/date_instances/date.yaml @@ -0,0 +1,15 @@ +# (C) 2022 GoodData Corporation +description: '' +granularities: + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR +granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' +id: date +tags: + - Date +title: Date diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/analytics_model/analytical_dashboard_extensions/campaign.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/analytics_model/analytical_dashboard_extensions/campaign.yaml new file mode 100644 index 000000000..39569ec73 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/analytics_model/analytical_dashboard_extensions/campaign.yaml @@ -0,0 +1,6 @@ +# (C) 2023 GoodData Corporation +permissions: + - assigneeRule: + type: allWorkspaceUsers + name: VIEW +id: campaign diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/demo_west.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/demo_west.yaml new file mode 100644 index 000000000..1b659dd0f --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/demo_west.yaml @@ -0,0 +1,9 @@ +# (C) 2022 GoodData Corporation +hierarchyPermissions: [] +id: demo_west +name: Demo West +parent: + id: demo + type: workspace +permissions: [] +settings: [] diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/ldm/dataset_extensions/order_lines.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/ldm/dataset_extensions/order_lines.yaml new file mode 100644 index 000000000..dae937ba8 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west/ldm/dataset_extensions/order_lines.yaml @@ -0,0 +1,8 @@ +# (C) 2023 GoodData Corporation +id: order_lines +workspaceDataFilterReferences: + - filterColumn: wdf__state + filterColumnDataType: STRING + filterId: + id: wdf__state + type: workspaceDataFilter diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west_california/demo_west_california.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west_california/demo_west_california.yaml new file mode 100644 index 000000000..06b095f48 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces/demo_west_california/demo_west_california.yaml @@ -0,0 +1,9 @@ +# (C) 2022 GoodData Corporation +hierarchyPermissions: [] +id: demo_west_california +name: Demo West California +parent: + id: demo_west + type: workspace +permissions: [] +settings: [] diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces_data_filters/wdf__region.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces_data_filters/wdf__region.yaml new file mode 100644 index 000000000..c16c885fb --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces_data_filters/wdf__region.yaml @@ -0,0 +1,15 @@ +# (C) 2022 GoodData Corporation +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 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces_data_filters/wdf__state.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces_data_filters/wdf__state.yaml new file mode 100644 index 000000000..e1b2e7641 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/gooddata_layouts/default/workspaces_data_filters/wdf__state.yaml @@ -0,0 +1,15 @@ +# (C) 2022 GoodData Corporation +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 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/campaign.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/campaign.yaml new file mode 100644 index 000000000..b469aaec1 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/campaign.yaml @@ -0,0 +1,54 @@ +# (C) 2025 GoodData Corporation +content: + filterContextRef: + identifier: + id: campaign_name_filter + type: filterContext + layout: + sections: + - header: + description: The first insight shows a breakdown of spend by category and + campaign. The second shows revenue per $ spend, for each campaign, to + demonstrate, how campaigns are successful. + title: Spend breakdown and Revenue + items: + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: campaign_spend + type: visualizationObject + properties: {} + title: Campaign Spend + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: revenue_per_usd_vs_spend_by_campaign + type: visualizationObject + properties: {} + title: Revenue per $ vs Spend by Campaign + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout + version: '2' +description: '' +id: campaign +permissions: + - assigneeRule: + type: allWorkspaceUsers + name: VIEW +title: Campaign diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/dashboard_plugin.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/dashboard_plugin.yaml new file mode 100644 index 000000000..ebe374b58 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/dashboard_plugin.yaml @@ -0,0 +1,35 @@ +# (C) 2025 GoodData Corporation +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 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/product_and_category.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/product_and_category.yaml new file mode 100644 index 000000000..81d890fd9 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/analytical_dashboards/product_and_category.yaml @@ -0,0 +1,148 @@ +# (C) 2025 GoodData Corporation +content: + filterContextRef: + identifier: + id: region_filter + type: filterContext + layout: + sections: + - items: + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: top_10_products + type: visualizationObject + properties: {} + title: Top 10 Products + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: revenue_trend + type: visualizationObject + properties: {} + title: Revenue Trend + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: customers_trend + type: visualizationObject + properties: {} + title: Customers Trend + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: product_categories_pie_chart + type: visualizationObject + properties: {} + title: Product Categories Pie Chart + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: product_breakdown + type: visualizationObject + properties: {} + title: Product Breakdown + type: insight + - size: + xl: + gridWidth: 6 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: product_saleability + type: visualizationObject + properties: {} + title: Product Saleability + type: insight + - size: + xl: + gridWidth: 12 + type: IDashboardLayoutItem + widget: + dateDataSet: + identifier: + id: date + type: dataset + description: '' + drills: [] + ignoreDashboardFilters: [] + insight: + identifier: + id: percent_revenue_per_product_by_customer_and_category + type: visualizationObject + properties: {} + title: '% Revenue per Product by Customer and Category' + type: insight + type: IDashboardLayoutSection + type: IDashboardLayout + version: '2' +description: '' +id: product_and_category +title: Product & Category diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/dashboard_plugins/dashboard_plugin_1.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/dashboard_plugins/dashboard_plugin_1.yaml new file mode 100644 index 000000000..8b07f1130 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/dashboard_plugins/dashboard_plugin_1.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +content: + url: https://www.example.com + version: '2' +description: Testing record dashboard_plugin_1 +id: dashboard_plugin_1 +title: dashboard_plugin_1 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/dashboard_plugins/dashboard_plugin_2.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/dashboard_plugins/dashboard_plugin_2.yaml new file mode 100644 index 000000000..144c58ba6 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/dashboard_plugins/dashboard_plugin_2.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +content: + url: https://www.example.com + version: '2' +description: Testing record dashboard_plugin_2 +id: dashboard_plugin_2 +title: dashboard_plugin_2 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/filter_contexts/campaign_name_filter.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/filter_contexts/campaign_name_filter.yaml new file mode 100644 index 000000000..181084c8d --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/filter_contexts/campaign_name_filter.yaml @@ -0,0 +1,22 @@ +# (C) 2022 GoodData Corporation +content: + filters: + - dateFilter: + from: '0' + granularity: GDC.time.month + to: '0' + type: relative + - attributeFilter: + attributeElements: + uris: [] + displayForm: + identifier: + id: campaign_name + type: label + filterElementsBy: [] + localIdentifier: 14b0807447ef4bc28f43e4fc5c337d1d + negativeSelection: true + version: '2' +description: '' +id: campaign_name_filter +title: filterContext diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/filter_contexts/region_filter.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/filter_contexts/region_filter.yaml new file mode 100644 index 000000000..0f52e0e6c --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/filter_contexts/region_filter.yaml @@ -0,0 +1,17 @@ +# (C) 2022 GoodData Corporation +content: + filters: + - attributeFilter: + attributeElements: + uris: [] + displayForm: + identifier: + id: region + type: label + filterElementsBy: [] + localIdentifier: 2d5ef8df82444f6ba27b45f0990ee6af + negativeSelection: true + version: '2' +description: '' +id: region_filter +title: filterContext diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_active_customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_active_customers.yaml new file mode 100644 index 000000000..00dee088c --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_active_customers.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0' + maql: SELECT COUNT({attribute/customer_id},{attribute/order_line_id}) +id: amount_of_active_customers +title: '# of Active Customers' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_orders.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_orders.yaml new file mode 100644 index 000000000..44728cdd6 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_orders.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0' + maql: SELECT COUNT({attribute/order_id}) +id: amount_of_orders +title: '# of Orders' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_top_customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_top_customers.yaml new file mode 100644 index 000000000..cbc241929 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_top_customers.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0' + maql: 'SELECT {metric/amount_of_active_customers} WHERE (SELECT {metric/revenue} + BY {attribute/customer_id}) > 10000 ' +id: amount_of_top_customers +title: '# of Top Customers' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_valid_orders.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_valid_orders.yaml new file mode 100644 index 000000000..85cd4b401 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/amount_of_valid_orders.yaml @@ -0,0 +1,8 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0.00' + maql: SELECT {metric/amount_of_orders} WHERE NOT ({label/order_status} IN ("Returned", + "Canceled")) +description: '' +id: amount_of_valid_orders +title: '# of Valid Orders' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/campaign_spend.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/campaign_spend.yaml new file mode 100644 index 000000000..51f3a69d7 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/campaign_spend.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT SUM({fact/spend}) +id: campaign_spend +title: Campaign Spend diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/order_amount.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/order_amount.yaml new file mode 100644 index 000000000..b2e94475b --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/order_amount.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT SUM({fact/price}*{fact/quantity}) +id: order_amount +title: Order Amount diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue.yaml new file mode 100644 index 000000000..9622e37de --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / {metric/total_revenue} +id: percent_revenue +title: '% Revenue' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_customers.yaml new file mode 100644 index 000000000..314490f19 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_customers.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +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_customers +title: '% Revenue from Top 10 Customers' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_percent_customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_percent_customers.yaml new file mode 100644 index 000000000..873625bcd --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_percent_customers.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +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_customers +title: '% Revenue from Top 10% Customers' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_percent_products.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_percent_products.yaml new file mode 100644 index 000000000..73c0f8ca6 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_percent_products.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +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_percent_products +title: '% Revenue from Top 10% Products' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_products.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_products.yaml new file mode 100644 index 000000000..121b620d1 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_from_top_10_products.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +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_from_top_10_products +title: '% Revenue from Top 10 Products' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_in_category.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_in_category.yaml new file mode 100644 index 000000000..89cf193f7 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_in_category.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY {attribute/products.category}, + ALL OTHER) +id: percent_revenue_in_category +title: '% Revenue in Category' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_per_product.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_per_product.yaml new file mode 100644 index 000000000..9a6adb926 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/percent_revenue_per_product.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: '#,##0.0%' + maql: SELECT {metric/revenue} / (SELECT {metric/revenue} BY ALL {attribute/product_id}) +id: percent_revenue_per_product +title: '% Revenue per Product' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-clothing.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-clothing.yaml new file mode 100644 index 000000000..8c47ed9c7 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-clothing.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Clothing") +id: revenue-clothing +title: Revenue (Clothing) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-electronic.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-electronic.yaml new file mode 100644 index 000000000..9b8c4aff2 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-electronic.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ( "Electronics") +id: revenue-electronic +title: Revenue (Electronic) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-home.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-home.yaml new file mode 100644 index 000000000..5b0194c00 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-home.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Home") +id: revenue-home +title: Revenue (Home) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-outdoor.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-outdoor.yaml new file mode 100644 index 000000000..dd70790dc --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue-outdoor.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE {label/products.category} IN ("Outdoor") +id: revenue-outdoor +title: Revenue (Outdoor) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue.yaml new file mode 100644 index 000000000..02bf52514 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue.yaml @@ -0,0 +1,8 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/order_amount} WHERE NOT ({label/order_status} IN ("Returned", + "Canceled")) +description: '' +id: revenue +title: Revenue diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_per_customer.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_per_customer.yaml new file mode 100644 index 000000000..76449bd10 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_per_customer.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0.0 + maql: SELECT AVG(SELECT {metric/revenue} BY {attribute/customer_id}) +id: revenue_per_customer +title: Revenue per Customer diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_per_dollar_spent.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_per_dollar_spent.yaml new file mode 100644 index 000000000..da0f499c6 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_per_dollar_spent.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0.0 + maql: SELECT {metric/revenue} / {metric/campaign_spend} +id: revenue_per_dollar_spent +title: Revenue per Dollar Spent diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_top_10.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_top_10.yaml new file mode 100644 index 000000000..5b2972707 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_top_10.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10) OF ({metric/revenue}) +id: revenue_top_10 +title: Revenue / Top 10 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_top_10_percent.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_top_10_percent.yaml new file mode 100644 index 000000000..467283c90 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/revenue_top_10_percent.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} WHERE TOP(10%) OF ({metric/revenue}) +id: revenue_top_10_percent +title: Revenue / Top 10% diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/total_revenue-no_filters.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/total_revenue-no_filters.yaml new file mode 100644 index 000000000..158e1495f --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/total_revenue-no_filters.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/total_revenue} WITHOUT PARENT FILTER +id: total_revenue-no_filters +title: Total Revenue (No Filters) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/total_revenue.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/total_revenue.yaml new file mode 100644 index 000000000..e1690466b --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/metrics/total_revenue.yaml @@ -0,0 +1,6 @@ +# (C) 2022 GoodData Corporation +content: + format: $#,##0 + maql: SELECT {metric/revenue} BY ALL OTHER +id: total_revenue +title: Total Revenue diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/campaign_spend.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/campaign_spend.yaml new file mode 100644 index 000000000..a60ecb270 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/campaign_spend.yaml @@ -0,0 +1,61 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: campaign_spend + type: metric + localIdentifier: d319bcb2d8c04442a684e3b3cd063381 + title: Campaign Spend + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: campaign_channels.category + type: label + localIdentifier: 291c085e7df8420db84117ca49f59c49 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: campaign_name + type: label + localIdentifier: d9dd143d647d4d148405a60ec2cf59bc + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: type + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_channels.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_name + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:treemap +id: campaign_spend +title: Campaign Spend diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/customers_trend.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/customers_trend.yaml new file mode 100644 index 000000000..0630281c4 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/customers_trend.yaml @@ -0,0 +1,73 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + alias: Active Customers + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: amount_of_active_customers + type: metric + localIdentifier: 2ba0b87b59ca41a4b1530e81a5c1d081 + title: '# of Active Customers' + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_per_customer + type: metric + localIdentifier: ec0606894b9f4897b7beaf1550608928 + title: Revenue per Customer + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 0de7d7f08af7480aa636857a26be72b6 + localIdentifier: view + filters: + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -11 + granularity: GDC.time.month + to: 0 + properties: + controls: + colorMapping: + - color: + type: guid + value: '20' + id: 2ba0b87b59ca41a4b1530e81a5c1d081 + - color: + type: guid + value: '4' + id: ec0606894b9f4897b7beaf1550608928 + dualAxis: true + legend: + position: bottom + primaryChartType: column + secondaryChartType: line + secondary_yaxis: + measures: + - ec0606894b9f4897b7beaf1550608928 + xaxis: + name: + visible: false + rotation: auto + version: '2' + visualizationUrl: local:combo2 +id: customers_trend +title: Customers Trend diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/percent_revenue_per_product_by_customer_and_category.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/percent_revenue_per_product_by_customer_and_category.yaml new file mode 100644 index 000000000..369e9674a --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/percent_revenue_per_product_by_customer_and_category.yaml @@ -0,0 +1,76 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: percent_revenue_per_product + type: metric + localIdentifier: 08d8346c1ce7438994b251991c0fbf65 + title: '% Revenue per Product' + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: b2350c06688b4da9b3833ebcce65527f + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: customer_name + type: label + localIdentifier: 7a4045fd00ac44579f52406df679435f + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 6a003ffd14994237ba64c4a02c488429 + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 75ea396d0c8b48098e31dccf8b5801d3 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: {} + sorts: + - attributeSortItem: + attributeIdentifier: 7a4045fd00ac44579f52406df679435f + direction: asc + version: '2' + visualizationUrl: local:table +id: percent_revenue_per_product_by_customer_and_category +title: '% Revenue per Product by Customer and Category' diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/percentage_of_customers_by_region.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/percentage_of_customers_by_region.yaml new file mode 100644 index 000000000..1f266d114 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/percentage_of_customers_by_region.yaml @@ -0,0 +1,56 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: amount_of_active_customers + type: metric + localIdentifier: 1a14cdc1293c46e89a2e25d3e741d235 + title: '# of Active Customers' + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: c1feca1864244ec2ace7a9b9d7fda231 + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: region + type: label + localIdentifier: 530cddbd7ca04d039e73462d81ed44d5 + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: region + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -11 + granularity: GDC.time.month + to: 0 + properties: + controls: + legend: + position: bottom + stackMeasuresToPercent: true + version: '2' + visualizationUrl: local:area +id: percentage_of_customers_by_region +title: Percentage of Customers by Region diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_breakdown.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_breakdown.yaml new file mode 100644 index 000000000..08c9ec345 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_breakdown.yaml @@ -0,0 +1,54 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 590d332ef686468b8878ae41b23341c6 + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: b166c71091864312a14c7ae8ff886ffe + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: e920a50e0bbb49788df0aac53634c1cd + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:treemap +id: product_breakdown +title: Product Breakdown diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_categories_pie_chart.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_categories_pie_chart.yaml new file mode 100644 index 000000000..d1e7d73c5 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_categories_pie_chart.yaml @@ -0,0 +1,50 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + computeRatio: true + filters: [] + item: + identifier: + id: revenue + type: metric + format: '#,##0.00%' + localIdentifier: 162b857af49d45769bc12604a5c192b9 + title: '% Revenue' + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: fe513cef1c6244a5ac21c5f49c56b108 + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + dataLabels: + visible: auto + legend: + position: bottom + version: '2' + visualizationUrl: local:donut +id: product_categories_pie_chart +title: Product Categories Pie Chart diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_revenue_comparison-over_previous_period.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_revenue_comparison-over_previous_period.yaml new file mode 100644 index 000000000..591f2eb3d --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_revenue_comparison-over_previous_period.yaml @@ -0,0 +1,72 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + alias: Previous Period + definition: + popMeasureDefinition: + measureIdentifier: c82e025fa2db4afea9a600a424591dbe + popAttribute: + identifier: + id: date.year + type: attribute + localIdentifier: c82e025fa2db4afea9a600a424591dbe_pop + - measure: + alias: This Period + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: c82e025fa2db4afea9a600a424591dbe + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: c804ef5ba7944a5a9f360c86a9e95e9a + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -11 + granularity: GDC.time.month + to: 0 + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + stackMeasures: false + xaxis: + name: + visible: false + yaxis: + name: + visible: false + version: '2' + visualizationUrl: local:column +id: product_revenue_comparison-over_previous_period +title: Product Revenue Comparison (over previous period) diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_saleability.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_saleability.yaml new file mode 100644 index 000000000..d759bf506 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/product_saleability.yaml @@ -0,0 +1,54 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + alias: Number of Orders + definition: + measureDefinition: + filters: [] + item: + identifier: + id: amount_of_orders + type: metric + localIdentifier: aeb5d51a162d4b59aba3bd6ddebcc780 + title: '# of Orders' + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 94b3edd3a73c4a48a4d13bbe9442cc98 + title: Revenue + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: d2a991bdd123448eb2be73d79f1180c4 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: + controls: + dataLabels: + visible: auto + grid: + enabled: true + version: '2' + visualizationUrl: local:scatter +id: product_saleability +title: Product Saleability diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_and_quantity_by_product_and_category.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_and_quantity_by_product_and_category.yaml new file mode 100644 index 000000000..f0cc61f00 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_and_quantity_by_product_and_category.yaml @@ -0,0 +1,96 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + alias: Items Sold + definition: + measureDefinition: + aggregation: sum + filters: [] + item: + identifier: + id: quantity + type: fact + format: '#,##0.00' + localIdentifier: 29486504dd0e4a36a18b0b2f792d3a46 + title: Sum of Quantity + - measure: + definition: + measureDefinition: + aggregation: avg + filters: [] + item: + identifier: + id: price + type: fact + format: '#,##0.00' + localIdentifier: aa6391acccf1452f8011201aef9af492 + title: Avg Price + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: percent_revenue_in_category + type: metric + localIdentifier: 2cd39539d8da46c9883e63caa3ba7cc0 + title: '% Revenue in Category' + - measure: + alias: Total Revenue + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 9a0f08331c094c7facf2a0b4f418de0a + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 06bc6b3b9949466494e4f594c11f1bff + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 192668bfb6a74e9ab7b5d1ce7cb68ea3 + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + properties: {} + sorts: + - attributeSortItem: + attributeIdentifier: 06bc6b3b9949466494e4f594c11f1bff + direction: asc + version: '2' + visualizationUrl: local:table +id: revenue_and_quantity_by_product_and_category +title: Revenue and Quantity by Product and Category diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_by_category_trend.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_by_category_trend.yaml new file mode 100644 index 000000000..90b0316c4 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_by_category_trend.yaml @@ -0,0 +1,53 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 7df6c34387744d69b23ec92e1a5cf543 + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 4bb4fc1986c546de9ad976e6ec23fed4 + localIdentifier: trend + - items: + - attribute: + displayForm: + identifier: + id: products.category + type: label + localIdentifier: 34bddcb1cd024902a82396216b0fa9d8 + localIdentifier: segment + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: products.category + type: label + notIn: + values: [] + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + granularity: GDC.time.year + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:line +id: revenue_by_category_trend +title: Revenue by Category Trend diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_by_product.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_by_product.yaml new file mode 100644 index 000000000..e51c4fa75 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_by_product.yaml @@ -0,0 +1,36 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 4ae3401bdbba4938afe983df4ba04e1c + title: Revenue + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: product_name + type: label + localIdentifier: 1c8ba72dbfc84ddd913bf81dc355c427 + localIdentifier: view + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: product_name + type: label + notIn: + values: [] + properties: {} + version: '2' + visualizationUrl: local:bar +id: revenue_by_product +title: Revenue by Product diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_per_usd_vs_spend_by_campaign.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_per_usd_vs_spend_by_campaign.yaml new file mode 100644 index 000000000..cfc9e47f4 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_per_usd_vs_spend_by_campaign.yaml @@ -0,0 +1,53 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: campaign_spend + type: metric + localIdentifier: 13a50d811e474ac6808d8da7f4673b35 + title: Campaign Spend + localIdentifier: measures + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_per_dollar_spent + type: metric + localIdentifier: a0f15e82e6334280a44dbedc7d086e7c + title: Revenue per Dollar Spent + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: campaign_name + type: label + localIdentifier: 1d9fa968bafb423eb29c938dfb1207ff + localIdentifier: attribute + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: campaign_name + type: label + notIn: + values: [] + properties: + controls: + xaxis: + min: '0' + yaxis: + min: '0' + version: '2' + visualizationUrl: local:scatter +id: revenue_per_usd_vs_spend_by_campaign +title: Revenue per $ vs Spend by Campaign diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_trend.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_trend.yaml new file mode 100644 index 000000000..a6c113ac1 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/revenue_trend.yaml @@ -0,0 +1,65 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: revenue + type: metric + localIdentifier: 60c854969a9c4c278ab596d99c222e92 + title: Revenue + localIdentifier: measures + - items: + - measure: + alias: Number of Orders + definition: + measureDefinition: + computeRatio: false + filters: [] + item: + identifier: + id: amount_of_orders + type: metric + localIdentifier: c2fa7ef48cc54af99f8c280eb451e051 + title: '# of Orders' + localIdentifier: secondary_measures + - items: + - attribute: + displayForm: + identifier: + id: date.month + type: label + localIdentifier: 413ac374b65648fa96826ca01d47bdda + localIdentifier: view + filters: + - relativeDateFilter: + dataSet: + identifier: + id: date + type: dataset + from: -3 + granularity: GDC.time.quarter + to: 0 + properties: + controls: + dualAxis: true + legend: + position: bottom + primaryChartType: column + secondaryChartType: line + secondary_yaxis: + measures: + - c2fa7ef48cc54af99f8c280eb451e051 + xaxis: + name: + visible: false + rotation: auto + version: '2' + visualizationUrl: local:combo2 +id: revenue_trend +title: Revenue Trend diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/top_10_customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/top_10_customers.yaml new file mode 100644 index 000000000..67a40f29b --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/top_10_customers.yaml @@ -0,0 +1,54 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + filters: [] + item: + identifier: + id: revenue_top_10 + type: metric + localIdentifier: 3f127ccfe57a40399e23f9ae2a4ad810 + title: Revenue / Top 10 + localIdentifier: measures + - items: + - attribute: + displayForm: + identifier: + id: customer_name + type: label + localIdentifier: f4e39e24f11e4827a191c30d65c89d2c + localIdentifier: view + - items: + - attribute: + displayForm: + identifier: + id: state + type: label + localIdentifier: bbccd430176d428caed54c99afc9589e + localIdentifier: stack + filters: + - negativeAttributeFilter: + displayForm: + identifier: + id: customer_name + type: label + notIn: + values: [] + - negativeAttributeFilter: + displayForm: + identifier: + id: state + type: label + notIn: + values: [] + properties: + controls: + legend: + position: bottom + version: '2' + visualizationUrl: local:bar +id: top_10_customers +title: Top 10 Customers diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/top_10_products.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/top_10_products.yaml new file mode 100644 index 000000000..2c9b84538 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/analytics_model/visualization_objects/top_10_products.yaml @@ -0,0 +1,54 @@ +# (C) 2022 GoodData Corporation +content: + buckets: + - items: + - measure: + definition: + measureDefinition: + 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 diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/demo_testing.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/demo_testing.yaml new file mode 100644 index 000000000..84fcb12c5 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/demo_testing.yaml @@ -0,0 +1,7 @@ +# (C) 2022 GoodData Corporation +hierarchyPermissions: [] +id: demo_testing +name: demo_testing +parent: [] +permissions: [] +settings: [] diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaign_channels.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaign_channels.yaml new file mode 100644 index 000000000..3f1b3a936 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaign_channels.yaml @@ -0,0 +1,68 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: [] +attributes: + - description: Campaign channel id + id: campaign_channel_id + labels: [] + sourceColumn: campaign_channel_id + sourceColumnDataType: STRING + tags: + - Campaign channels + title: Campaign channel id + - description: Category + id: campaign_channels.category + labels: [] + sourceColumn: category + sourceColumnDataType: STRING + tags: + - Campaign channels + title: Category + - description: Type + id: type + labels: [] + sourceColumn: type + sourceColumnDataType: STRING + tags: + - Campaign channels + title: Type +dataSourceTableId: + dataSourceId: demo-test-ds + id: campaign_channels + path: + - demo + - campaign_channels + type: dataSource +description: Campaign channels +facts: + - description: Budget + id: budget + sourceColumn: budget + sourceColumnDataType: NUMERIC + tags: + - Campaign channels + title: Budget + - description: Spend + id: spend + sourceColumn: spend + sourceColumnDataType: NUMERIC + tags: + - Campaign channels + title: Spend +grain: + - id: campaign_channel_id + type: attribute +id: campaign_channels +references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sources: + - column: campaign_id + dataType: INT + target: + id: campaign_id + type: attribute +tags: + - Campaign channels +title: Campaign channels diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaign_channels_per_category.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaign_channels_per_category.yaml new file mode 100644 index 000000000..b25714c19 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaign_channels_per_category.yaml @@ -0,0 +1,36 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: + - description: Budget Agg + id: budget_agg + sourceColumn: budget + sourceColumnDataType: INT + sourceFactReference: + operation: SUM + reference: + id: budget + type: fact + tags: + - Campaign channels per category +attributes: [] +description: Campaign channels per categories +facts: [] +grain: [] +id: campaign_channels_per_category +precedence: 1 +references: + - identifier: + id: campaign_channels + type: dataset + multivalue: false + sources: + - column: campaign_channel_id + dataType: STRING + target: + id: campaign_channel_id + type: attribute +sql: + dataSourceId: demo-test-ds + statement: SELECT category, SUM(budget) FROM campaign_channels GROUP BY category +tags: + - Campaign channels per category +title: Campaign channels per category diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaigns.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaigns.yaml new file mode 100644 index 000000000..6146ae4fb --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/campaigns.yaml @@ -0,0 +1,36 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: [] +attributes: + - description: Campaign id + id: campaign_id + labels: [] + sourceColumn: campaign_id + sourceColumnDataType: INT + tags: + - Campaigns + title: Campaign id + - description: Campaign name + id: campaign_name + labels: [] + sourceColumn: campaign_name + sourceColumnDataType: STRING + tags: + - Campaigns + title: Campaign name +dataSourceTableId: + dataSourceId: demo-test-ds + id: campaigns + path: + - demo + - campaigns + type: dataSource +description: Campaigns +facts: [] +grain: + - id: campaign_id + type: attribute +id: campaigns +references: [] +tags: + - Campaigns +title: Campaigns diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/customers.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/customers.yaml new file mode 100644 index 000000000..72f273e29 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/customers.yaml @@ -0,0 +1,60 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: [] +attributes: + - description: Customer id + id: customer_id + labels: [] + sourceColumn: customer_id + sourceColumnDataType: INT + tags: + - Customers + title: Customer id + - description: Customer name + id: customer_name + labels: [] + sourceColumn: customer_name + sourceColumnDataType: STRING + tags: + - Customers + title: Customer name + - description: Region + id: region + labels: [] + sourceColumn: region + sourceColumnDataType: STRING + tags: + - Customers + title: Region + - description: State + id: state + labels: + - description: Location + id: geo__state__location + sourceColumn: geo__state__location + sourceColumnDataType: STRING + tags: + - Customers + title: Location + valueType: GEO + sourceColumn: state + sourceColumnDataType: STRING + tags: + - Customers + title: State +dataSourceTableId: + dataSourceId: demo-test-ds + id: customers + path: + - demo + - customers + type: dataSource +description: Customers +facts: [] +grain: + - id: customer_id + type: attribute +id: customers +references: [] +tags: + - Customers +title: Customers diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/order_lines.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/order_lines.yaml new file mode 100644 index 000000000..3b039c5b4 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/order_lines.yaml @@ -0,0 +1,109 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: [] +attributes: + - description: Order id + id: order_id + labels: [] + sourceColumn: order_id + sourceColumnDataType: STRING + tags: + - Order lines + title: Order id + - description: Order line id + id: order_line_id + labels: [] + sourceColumn: order_line_id + sourceColumnDataType: STRING + tags: + - Order lines + title: Order line id + - description: Order status + id: order_status + labels: [] + sourceColumn: order_status + sourceColumnDataType: STRING + tags: + - Order lines + title: Order status +dataSourceTableId: + dataSourceId: demo-test-ds + id: order_lines + path: + - demo + - order_lines + type: dataSource +description: Order lines +facts: + - description: Price + id: price + sourceColumn: price + sourceColumnDataType: NUMERIC + tags: + - Order lines + title: Price + - description: Quantity + id: quantity + sourceColumn: quantity + sourceColumnDataType: NUMERIC + tags: + - Order lines + title: Quantity +grain: + - id: order_line_id + type: attribute +id: order_lines +references: + - identifier: + id: campaigns + type: dataset + multivalue: false + sources: + - column: campaign_id + dataType: INT + target: + id: campaign_id + type: attribute + - identifier: + id: customers + type: dataset + multivalue: false + sources: + - column: customer_id + dataType: INT + target: + id: customer_id + type: attribute + - identifier: + id: date + type: dataset + multivalue: false + sources: + - column: date + dataType: DATE + target: + id: date + type: date + - identifier: + id: products + type: dataset + multivalue: false + sources: + - column: product_id + dataType: INT + target: + id: product_id + type: attribute +tags: + - Order lines +title: Order lines +workspaceDataFilterColumns: + - dataType: STRING + name: wdf__region + - dataType: STRING + name: wdf__state +workspaceDataFilterReferences: + - filterColumn: wdf__region + filterColumnDataType: STRING + filterId: + id: wdf__region + type: workspaceDataFilter diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/products.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/products.yaml new file mode 100644 index 000000000..906618d68 --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/datasets/products.yaml @@ -0,0 +1,44 @@ +# (C) 2025 GoodData Corporation +aggregatedFacts: [] +attributes: + - description: Product id + id: product_id + labels: [] + sourceColumn: product_id + sourceColumnDataType: INT + tags: + - Products + title: Product id + - description: Product name + id: product_name + labels: [] + sourceColumn: product_name + sourceColumnDataType: STRING + tags: + - Products + title: Product name + - description: Category + id: products.category + labels: [] + sourceColumn: category + sourceColumnDataType: STRING + tags: + - Products + title: Category +dataSourceTableId: + dataSourceId: demo-test-ds + id: products + path: + - demo + - products + type: dataSource +description: Products +facts: [] +grain: + - id: product_id + type: attribute +id: products +references: [] +tags: + - Products +title: Products diff --git a/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/date_instances/date.yaml b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/date_instances/date.yaml new file mode 100644 index 000000000..7167131aa --- /dev/null +++ b/packages/gooddata-sdk/tests/catalog/load_with_locale/workspace_content/gooddata_layouts/default/workspaces/demo_testing/ldm/date_instances/date.yaml @@ -0,0 +1,15 @@ +# (C) 2022 GoodData Corporation +description: '' +granularities: + - DAY + - WEEK + - MONTH + - QUARTER + - YEAR +granularitiesFormatting: + titleBase: '' + titlePattern: '%titleBase - %granularityTitle' +id: date +tags: + - Date +title: Date diff --git a/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py b/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py index 8e5410e51..d0eff5401 100644 --- a/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py +++ b/packages/gooddata-sdk/tests/catalog/test_catalog_workspace.py @@ -93,8 +93,9 @@ def _are_user_data_filters_empty(sdk: GoodDataSdk, workspace_id: str) -> None: @gd_vcr.use_cassette(str(_fixtures_dir / "demo_load_and_put_declarative_workspaces.yaml")) def test_load_and_put_declarative_workspaces(test_config): + # This test includes testing locales! sdk = GoodDataSdk.create(host_=test_config["host"], token_=test_config["token"]) - path = _current_dir / "load" + path = _current_dir / "load_with_locale" with open(_current_dir / "expected" / "declarative_workspaces.json") as f: data = json.load(f) workspaces_e = CatalogDeclarativeWorkspaces.from_dict(data) From db8c1ee8c308ae4b5f7601d8a5bc0c99ec6c3fd2 Mon Sep 17 00:00:00 2001 From: Adam Fiedler Date: Tue, 10 Feb 2026 17:06:12 +0100 Subject: [PATCH 3/3] fix: Start adding stuff for nulls risk: low --- .../catalog/expected/declarative_ldm_with_sql_dataset.json | 3 ++- .../tests/catalog/expected/declarative_pdm_ldm_request.json | 3 ++- .../default/workspaces/demo/ldm/datasets/customers.yaml | 4 ---- .../tests-support/fixtures/demo_declarative_hierarchy.json | 1 + 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/gooddata-sdk/tests/catalog/expected/declarative_ldm_with_sql_dataset.json b/packages/gooddata-sdk/tests/catalog/expected/declarative_ldm_with_sql_dataset.json index 230eb75ac..50a10d3eb 100644 --- a/packages/gooddata-sdk/tests/catalog/expected/declarative_ldm_with_sql_dataset.json +++ b/packages/gooddata-sdk/tests/catalog/expected/declarative_ldm_with_sql_dataset.json @@ -40,7 +40,8 @@ "description": "Campaign channel id", "tags": [ "Campaign channels" - ] + ], + "isNullable": false }, { "id": "campaign_channels.category", diff --git a/packages/gooddata-sdk/tests/catalog/expected/declarative_pdm_ldm_request.json b/packages/gooddata-sdk/tests/catalog/expected/declarative_pdm_ldm_request.json index 9d8a1a0ff..19ccfccb5 100644 --- a/packages/gooddata-sdk/tests/catalog/expected/declarative_pdm_ldm_request.json +++ b/packages/gooddata-sdk/tests/catalog/expected/declarative_pdm_ldm_request.json @@ -10,7 +10,8 @@ { "data_type": "STRING", "isPrimaryKey": true, - "name": "campaign_channel_id" + "name": "campaign_channel_id", + "isNullable": false }, { "data_type": "INT", diff --git a/packages/gooddata-sdk/tests/catalog/load/gooddata_layouts/default/workspaces/demo/ldm/datasets/customers.yaml b/packages/gooddata-sdk/tests/catalog/load/gooddata_layouts/default/workspaces/demo/ldm/datasets/customers.yaml index a587920a6..72f273e29 100644 --- a/packages/gooddata-sdk/tests/catalog/load/gooddata_layouts/default/workspaces/demo/ldm/datasets/customers.yaml +++ b/packages/gooddata-sdk/tests/catalog/load/gooddata_layouts/default/workspaces/demo/ldm/datasets/customers.yaml @@ -32,10 +32,6 @@ attributes: id: geo__state__location sourceColumn: geo__state__location sourceColumnDataType: STRING - locale: en-US - translations: - - locale: cs-CZ - sourceColumn: geo__state__location_cz tags: - Customers title: Location diff --git a/packages/tests-support/fixtures/demo_declarative_hierarchy.json b/packages/tests-support/fixtures/demo_declarative_hierarchy.json index b8c0c1821..d0ca6914b 100644 --- a/packages/tests-support/fixtures/demo_declarative_hierarchy.json +++ b/packages/tests-support/fixtures/demo_declarative_hierarchy.json @@ -2519,6 +2519,7 @@ "labels": [], "sourceColumn": "campaign_channel_id", "sourceColumnDataType": "STRING", + "isNullable": false, "tags": [ "Campaign channels" ],